चर को आगे 'स्थानीय' और 'वैश्विक' चर में वर्गीकृत किया गया है, जो हमारी चर्चा का मुख्य विषय है। यहां एक स्थानीय और वैश्विक चर के बीच मुख्य अंतर यह है कि, एक स्थानीय चर को एक फ़ंक्शन ब्लॉक के अंदर घोषित किया जाता है, जहां कार्यक्रम में कार्यों के बाहर वैश्विक चर घोषित किया जाता है।
आइए एक तुलना चार्ट के साथ स्थानीय और वैश्विक चर के बीच कुछ और अंतरों का अध्ययन करें।
तुलना चार्ट:
तुलना के लिए आधार | स्थानीय चर | वैश्विक चर |
---|---|---|
घोषणा | चर एक फ़ंक्शन के अंदर घोषित किए जाते हैं। | किसी भी फ़ंक्शन के बाहर चर घोषित किए जाते हैं। |
क्षेत्र | एक फ़ंक्शन के भीतर, जिसके अंदर उन्हें घोषित किया गया है। | पूरे कार्यक्रम के दौरान। |
पहुंच | केवल एक बयान के अंदर, एक समारोह के अंदर, जिसमें वे घोषित किए जाते हैं। | पूरे कार्यक्रम में किसी भी बयान से पहुँचा। |
जिंदगी | जब फ़ंक्शन ब्लॉक में प्रवेश किया जाता है और बाहर निकलने पर नष्ट हो जाता है। | पूरे समय आपके कार्यक्रम के क्रियान्वयन के लिए अस्तित्व में रहें। |
भंडारण | जब तक निर्दिष्ट नहीं किया जाता है, स्थानीय चर स्टैक पर संग्रहीत होते हैं। | एक संकलक द्वारा तय किए गए निश्चित स्थान पर संग्रहीत। |
स्थानीय चर की परिभाषा
एक फ़ंक्शन चर के अंदर एक स्थानीय चर हमेशा घोषित किया जाता है। सी में, एक कोड ब्लॉक की शुरुआत में एक स्थानीय चर घोषित किया जाता है। C ++ में, उन्हें कोड ब्लॉक में कहीं भी उनके उपयोग से पहले घोषित किया जा सकता है। स्थानीय चर केवल एक फ़ंक्शन के अंदर लिखे गए बयानों द्वारा पहुँचा जा सकता है जिसमें स्थानीय चर घोषित किए जाते हैं। वे इस अर्थ में सुरक्षित हैं कि, उन्हें उसी कार्यक्रम के किसी अन्य कार्य द्वारा पहुँचा नहीं जा सकता है।
फ़ंक्शन के ब्लॉक के निष्पादन तक स्थानीय चर मौजूद होता है, और इस तरह ब्लॉक के बाहर निकलने के बाद नष्ट हो जाता है। स्थानीय चर अपनी सामग्री खो देते हैं जैसे ही निष्पादन ब्लॉक को छोड़ दिया जाता है जिसमें वे घोषित होते हैं।
इसके पीछे कारण यह है कि जब तक कि उनके विशेष भंडारण को निर्दिष्ट नहीं किया जाता है तब तक स्थानीय चर स्टैक पर संग्रहीत किए जाते हैं। स्टैक प्रकृति में गतिशील है, और स्मृति स्थान में परिवर्तन इस कारण होता है कि जैसे ही एक फ़ंक्शन का ब्लॉक मौजूद होता है, स्थानीय वैरिएबल उनका मान नहीं रखता।
ध्यान दें:
हालांकि, 'स्थिर' संशोधक का उपयोग करके स्थानीय चर के मूल्य को बनाए रखने का एक तरीका है।
ग्लोबल वेरिएबल की परिभाषा
एक कार्यक्रम में मौजूद सभी कार्यों के बाहर एक वैश्विक चर घोषित किया जाता है। स्थानीय चर के विपरीत, वैश्विक चर को किसी कार्यक्रम में मौजूद किसी भी फ़ंक्शन द्वारा एक्सेस किया जा सकता है। वैश्विक चर बहुत विश्वसनीय नहीं हैं क्योंकि कार्यक्रम में मौजूद किसी भी फ़ंक्शन द्वारा उनके मूल्य को बदला जा सकता है।
वैश्विक चर अस्तित्व में रहते हैं जब तक कि पूरे कार्यक्रम को पूरी तरह से निष्पादित नहीं किया जाता है। वैश्विक चर अपने मूल्यों को बनाए रखते हैं जब तक कि कार्यक्रम निष्पादन में न हो। कारण यह है कि वे मेमोरी के एक निश्चित क्षेत्र पर संकलित करके तय किए गए हैं।
एक ग्लोबल वैरिएबल उन स्थितियों में मददगार होता है, जहां एक ही डेटा पर कई फंक्शंस पहुंच रहे हैं। बड़ी संख्या में वैश्विक चर का उपयोग करना समस्याग्रस्त हो सकता है, क्योंकि वैश्विक चर के मूल्य में अवांछित परिवर्तन हो सकते हैं।
स्थानीय और वैश्विक चर के बीच महत्वपूर्ण अंतर।
- स्थानीय चर को 'स्थानीय' कहा जाता है क्योंकि वे केवल एक फ़ंक्शन में लिखे गए बयानों के लिए जाने जाते हैं, जिसके अंदर उन्हें घोषित किया जाता है और उस फ़ंक्शन ब्लॉक के बाहर मौजूद किसी अन्य फ़ंक्शन के लिए नहीं जाना जाता है। वैश्विक चर के मामले में वे एक कार्यक्रम में मौजूद प्रत्येक फ़ंक्शन के लिए जाने जाते हैं; इसलिए, उन्हें 'वैश्विक' कहा जाता है।
- जब तक वे संकलक द्वारा तय किए गए एक निश्चित स्थान पर संग्रहीत होते हैं, तब तक वैश्विक चर अपने मूल्य को बनाए रखते हैं, जब तक कि कार्यक्रम निष्पादन चरण में नहीं होता है। स्थानीय चर स्टैक पर संग्रहीत होते हैं; इसलिए, वे अपने मूल्य को बनाए नहीं रखते हैं क्योंकि 'स्टैक' प्रकृति में गतिशील है, लेकिन संकलक को 'स्थिर' संशोधक का उपयोग करके उनके मूल्य को बनाए रखने के लिए निर्देशित किया जा सकता है।
- यदि एक वैश्विक और एक स्थानीय चर एक ही नाम के साथ घोषित किए जाते हैं, तो एक कोड ब्लॉक के सभी बयान जिसमें स्थानीय चर घोषित किया जाता है, केवल एक स्थानीय चर को संदर्भित करेगा और एक वैश्विक चर के लिए कोई प्रभाव नहीं पड़ेगा।
- एक स्थानीय चर को नष्ट कर दिया जाता है जब कार्यक्रम का नियंत्रण उस ब्लॉक से बाहर निकल जाता है जिसमें स्थानीय चर घोषित किया जाता है। हालाँकि, एक वैश्विक चर नष्ट हो जाता है जब पूरे कार्यक्रम को समाप्त कर दिया जाता है।
निष्कर्ष:
कार्यक्रम लिखते समय स्थानीय और वैश्विक चर दोनों समान रूप से आवश्यक हैं। लेकिन, बड़ी संख्या में वैश्विक चरों की घोषणा करना एक बड़े कार्यक्रम में समस्याग्रस्त हो सकता है, क्योंकि इससे वैश्विक चर के अवांछित परिवर्तन हो सकते हैं; और यह पहचानना कठिन हो जाएगा कि किसी कार्यक्रम के किस हिस्से में यह बदलाव किया गया है। इसलिए, किसी को अनावश्यक वैश्विक चर घोषित करने से बचना चाहिए।