Pointers and Strings

Characters के समूह को Computer Science में String कहा जाता है। Strings के बिना कोई भी Application Software नहीं बन सकता। यानी सभी Software में String का प्रयोग जरूर होता है। Characters के समूह को हम सामान्‍यतया एक One-Dimensional Array में Store करते हैं।

हम जानते हैं कि Strings को एक Array के रूप में Memory में Store किया जाता है और ये String तब Terminate होती है जब “C” Compiler को Null Character ‘\0’ मिलता है। जिस प्रकार से हम किसी int प्रकार के Array का Base Address किसी Pointer को देकर उस Array के हर Element को Access कर सकते हैं, उसी प्रकार से किसी String के Array का भी Base Address किसी Pointer को दिया जा सकता है और उस Pointer के प्रयोग द्वारा String के सभी Characters को भी उसी तरह से Access किया जा सकता है जिस तरह से हम किसी Integer प्रकार के मानों वाले Array के सभी Elements को Access कर सकते हैं। इस Concept को समझने के लिए निम्न Program देखिए:

Pointers and String

इस प्रोग्राम में *cp एक Character Pointer है व name नाम का एक Character Array है जिसमें RAM Stored है। cp = &name द्वारा Array का Base Address Pointer cp को दिया गया है। फिर एक While Loop चलाया गया है। ये Loop तब तक चलता है जब तक कि Program Control को Null Character नहीं मिल जाता।

printf() Function इस cp के Address पर Stored Character को Output में Print कर देता है। पहली बार ये Address 65522 होता है। cp को Increment करने पर ये Address 65523 हो जाता है। इस Address पर Character A Stored है इसलिए Output में A print हो जाता है। वापस cp Increment होकर 66524 हो जाता है। इस Location पर M Stored है इसलिए Output में M Print हो जाता है। cp एक char प्रकार का Pointer है इसलिए cp का Scale Factor के अनुसार एक-एक Byte का Increment होता है जो कि Output में देखा जा सकता है।

हम जानते हैं कि यदि हमें किसी नाम को Computer में Store व Access करना हो, तो हमें एक One–Dimensional Array में Name की Size को Define करना होता है कि हम अधिकतम कितने Characters तक का नाम Store करना चाहते हैं।

कई बार हम हमारी आवश्‍यकता से कम Size लेते हैं तो कई बार हम हमारी आवश्‍यकता से अधिक Size ले लेते हैं। इन दोनों ही स्थितियों में एक समस्या है। यदि हम आवश्‍यकता से कम Size का Array Declare करते हैं तो Program के Crash होने की सम्भावना रहती है। जबकि यदि हम आवश्‍यकता से अधिक Size का Array लेते हैं तो बाकी बची हुई Memory भी Array के लिए Reserved रहती है, जिसे कोई भी अन्‍य Program तब तक Use नहीं कर सकता जब तक कि उस Program को Terminate ना कर दिया जाए।

इस समस्या से बचने के लिए हम एक Character प्रकार के Pointer Array का प्रयोग कर सकते हैं। जब हम किसी नाम को किसी Pointer द्वारा Memory में Store करते हैं, तो वह नाम Memory में उतनी ही जगह लेता है जितनी उसे जरूरत होती है। किसी String के लिए इस प्रकार का Memory Allocation Dynamic Memory Allocation कहलाता है।

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS