अभियस-15

आगे बढ़ाते हुए हम function के कुछ examples के द्वारा variable के scope के बारे में जानेंगे. अगर आपको C function और C variables का ज्ञान नहीं है तो पहले इन्हें पढ़ लें.What is scope
C में किसी variable के scope का मतलब यह है कि उस variable को declare या define करने के बाद कहाँ कहाँ पर उसकी value पढ़ सकते हैं. अगर हमने किसी function के अंदर कोई variable x define किया है तो उस function के अंदर कहीं भी उस variable को read/write कर सकते हैं परन्तु किसी अन्य function के अंदर नहीं. अगर किसी loop के अंदर कोई variable define किया है तो उस loop के अंदर कहीं भी उस variable को read/write कर सकते हैं परन्तु उसके बाहर नहीं.
इसे समझना बहुत आसान है. किसी भी {...} के अंदर define किया गया variable उसके अंदर कहीं भी read/write किया जा सकता है परन्तु उसके बाहर नहीं. इसे हम नीचे दिए गए example से समझेंगे.
नीचे दिए गए program में हम एक register बनायेंगे जिसमेकोई भी नाम add कर सकते हैं और सभी नामों को print कर सकते हैं. program को run करने पर एक Menu आयेगा जिसके द्वारा हम उस register में name add कर सकते हैं या register के सभी नामो को print कर सकते हैं!
 ऊपर दिए गए program को run करने पर शुरू में एक menu print होगा जो यह बताएगा कि क्या enter करने पर क्या होगा. List में नाम add करने के लिए 1 press करके enter करें, इसके बाद या पूछेगा कि कौन सा नाम add करना है. नाम type करके enter करें. फिर से दूसरा नाम add करना हो तो फिर से 1 enter करें. List print करने के लिए 2 Enter करें. पहले इस program को run करके देखें फिर इसे समझते हैं कि यह कैसे काम करता है.

अब देखते हैं कि यह कैसे काम करता है. शुरू में हमने 2 variable list और length declare किया है. चूंकि ये दोनों variable किसी function के अंदर नहीं बल्कि सबसे बाहर हैं इसलिए इन्हें किसी भी function या loop के अंदर से read/write कर सकते हैं. नियम यह है कि variable जिस {} के अंदर declare किये गए हैं उससे बाहर कहीं भी access नहीं किये जा सकते, उसके अंदर कहीं भी access किये जा सकते हैं.

अब आते हैं char list[10][20]; पर. अगर सिर्फ char list[10]; होता तो इसका मतलब यह होता कि list एक array है जिसमे 10 char आ सकते हैं. पर यहाँ char list[10][20]; है इसका मतलब है कि list एक array है जिसमे 20 char वाली 10 array आ सकती हैं. यहाँ 10 char की जगह 10 array आएँगी और हर एक array 20 char वाली होगी.
अगर int a[2][3] होता तो इस तरीके से देख सकते हैं.

a = {  {1,2,3} ,   {4,5,6}   };

यहाँ पर a के अंदर 2 array आ सकती हैं एक array a[0] में और एक a[1] में. उन दोनों array में 3 3 int आ सकते हैं.
char list[10][20]; का use नाम store करने के लिए करेंगे. हम देख चुके हैं कि नाम string है जिसे char array में store करते हैं. यहाँ list में 10 char array आ सकती हैं इसलिए इसमें हम 10 नाम store कर सकते हैं. हर एक array में 20 char आ सकते हैं इसलिए हम वही नाम store कर सकते हैं जिसमे 20 या उससे कम letter हो. दूसरा variable length या बताता है कि currently list में कितने नाम हैं, जोकि शुरू में 0 है.
इसके बाद add_name function है जिसे call करने पर यह list में एक नाम add कर देगा. पहले हम check करते हैं अगर list में 10 नाम आ चुके हैं तो return का use करके function को वहीँ समाप्त कर देते हैं, अन्यथा scanf का use करके list variable में सीधे नाम read कर लेते हैं. ध्यान दें कि scanf का पहला argument "%s" है जो कि string read करता है इसलिए दूसरा argument char array होना चाहिए. list[0], list[1], list[2] ... list[19] सभी 20 char वाली array हैं.
list में नाम add होने के बाद हम length 1 बढ़ा देते हैं. list[length] हमें list में हमेशा अगली खाली जगह दे देगा क्योंकि शुरू में list खाली है इसलिए list[length] (length=0) वाली char array खाली है. एक नाम list[0] में add होने के बाद length = 1 हो जायेगा, अब list[length] (length = 1) वाली array खाली है.
इसके बाद print_list function define किया है, जिसे length से यह पता चल जाता है कि list में कितने नाम हैं उतना ही for loop से print कर लेते हैं. यहाँ for loop के अंदर एक variable serial_no define किया है जो उस loop के बाहर से access नहीं होगा.

अंत में main function है जहाँ program run होना start होता है. जिसमे if-else statement का use करके input variable की value के according list में नाम add करते हैं, list print करते हैं, menu print करते हैं. इस पुरे if-else को while loop के अंदर लिखा गया है, जो कि तब तक run होगा जब तक input की value 3 नहीं हो जाती. while loop खत्म होने से पहले input variable में scanf का use करके input read करते हैं, अगर input 3 है तो while loop खत्म होके program finish हो जायेगा otherwise while loop के अंदर फिर से आकर input value के according if-else का use करके list में नाम add करते हैं, list print करते हैं, menu print करते हैं और फिर से input variable में scanf का use करके input read करते हैं.


इस blog को बेहतर बनाने के लिए आपके सुझावों का सदैव स्वागत रहेगा. सुझाव देने के लिए अपना Reply यहाँ पर दें. अगले लेख में हम function के बारे में जानेंगे जो कि बहुत important है.

अगर आपको यह लेख पसंद आया हो तो अपने दोस्तों को भी बताएं क्योंकि ये उनके लिए भी उपयोगी सिद्ध हो सकता है !!


.

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें