Local And Global Variable in C [With Examples – in Hindi]

हेलो फ्रेंड्स आज के इस आर्टिकल में हम Local Variable और Global Variable के बारे में बात करने वाले है मगर Local Variable और Global Variable के बारे में अच्छे से जानने के लिए आपको बेसिक कुछ चीजों के बारे में पहले से पता होना जरुरी है तो चलिए सबसे पहले उन बेसिक चीजों के बारे में बात करते है |

Local And Global Variable in C
Local And Global Variable in C

जैसे की हम जानते है, Variable मेमरी में उस स्थान का नाम है जिस स्थान में हम डेटा या इनफार्मेशन को स्टोर करते है | और सी लैंग्वेज में हम किसी वेरिएबल को डिक्लेअर किये बिना उपयोग नहीं कर सकते |

यदि हमे किसी वेरिएबल का उपयोग अपने प्रोग्राम में करना है तो हम सबसे पहले उसे डिक्लेअर करना पड़ता है | 

वेरिएबल के डिक्लेरेशन के आधार पर हम वेरिएबल को दो भागो में बाँट सकते है – Local Variable और Global Variable

वेरिएबल का डिक्लेरेशन कहा हुवा है इसके आधार पर हम बता सकते है कि कौन सा वेरिएबल लोकल वेरिएबल है और कौन सा वेरिएबल ग्लोबल वेरिएबल है?

लोकल वेरिएबल और ग्लोबल वेरिएबल के बारे में अच्छे से समझने के लिए आपको वेरिएबल के स्कोप के बारे में जानना जरुरी है तो चलिए बिना समय गवाए जानते है कि सी लैंग्वेज में वेरिएबल का स्कोप क्या होता है | 

वेरिएबल स्कोप क्या होता है?

किसी वेरिएबल के स्कोप का अर्थ उस वेरिएबल के लाइफटाइम से है कोई भी केवल उस ब्लॉक या फंक्शन में एक्सेस हो सकता है जिसमे वह डिक्लेअर होता है | 

आइये इस बात को हम इस एक उदारहण से समझते है -:

#include<stdio.h>
void func()
{
int z = 5;
}

ऊपर दिए गए उदाहरण को एक बार अच्छे से देखे! इस उदाहरण में हमने fan() फंक्शन के अंदर  एक x नाम का वेरिएबल डिक्लेअर किया है जिसके स्कोप केवल fan() फंक्शन तक ही रहेगा इसका उपयोग हम किसी दूसरे फंक्शन में नहीं कर सकते और यदि हम ऐसा करने का प्रयाश करते है तो कम्पाइलर error देता है | 

Example -:

#include<stdio.h>
void func()
{
int z = 5;
}
void main()
{
 printf(" %d", x);
}

Output -:

error: 'x' undeclared (first use in this function)

तो आपने देखा कि जैसे ही हमे ऊपर दिए गए प्रोग्राम में fun() फंक्शन में डिक्लेअर वेरिएबल को main() फंक्शन में एक्सेस करके उसकी वैल्यू को प्रिंट करना चाहा तो प्रोग्राम नहीं चला और  कम्पाइलर ने एरर दे दिया | 

इससे साफ स्पस्ट है कि किसी भी वेरिएबल का स्कोप केवल उसी फंक्शन या ब्लॉक तक सीमित होता है जिस फंक्शन या ब्लॉक में वह डिक्लेअर होता है | 

वेरिएबल का स्कोप उसके डिक्लेअर पर निर्भर करता है और सी लैंग्वेज में हम वेरिएबल को तीन स्थानों पर डिक्लेअर कर सकते है | 

  • किसी फंक्शन या ब्लॉक के अंदर 
  • फंक्शन या ब्लॉक के बहार 
  • फंक्शन डेफिनिशन के समय फंक्शन पैरामीटर के अंदर

आइये अब हम विस्तार से जानते है कि कि किसी वेरिएबल को किस स्थान में डिक्लेअर पर क्या कहा जाता है | 

Local Variable In C

जब हम किसी वेरिएबल को फंक्शन या ब्लॉक के अंदर डिक्लेअर करते है तो उसे Local Variable कहा जाता है | 

इस वेरिएबल को हम केवल उसी ब्लॉक या फंक्शन में उपयोग कर सकते है जिस ब्लॉक या फंक्शन में वह वेरिएबल डिक्लेअर होता है | 

लोकल वेरिएबल का लाइफटाइम केवल उस फंक्शन या ब्लॉक के लाइफटाइम के बराबर होता है जिस फंक्शन या ब्लॉक में वो डिक्लेअर होता है जैसे ही वो फंक्शन या ब्लॉक नस्ट हो जाता है लोकल वेरिएबल भी नस्ट हो जाता है और मेमोरी में उसको मिला स्थान भी रिलीज़ हो जाता है |

#include <stdio.h>
void main ()
 {
  int a, b;    //local variable declaration 
  int c;
 
  a = 10;     // actual initialization 
  b = 20;
  c = a + b;
 
  printf ("sum of %d, and %d is : %d\n", a, b, c);
 }

Output

sum of 10 and 20 is : 30  

इस example में हमे main() फंक्शन के अंदर तीन वेरिएबल a ,b  और c नाम से बनाया है जिसका स्कोप इसी main() फंक्शन तक सीमित है इसका उपयोग हम किसी दूसरे फंक्शन में नहीं कर सकते | 

 यदि हम  main() फंक्शन के अंदर डिक्लेअर वेरिएबल का उपयोग प्रोग्राम में बने दूसरे फंक्शन में करने की कोशिस करते है तो कम्पाइलर एरर देता है | 

Advantages of Local Variable In C

  • किसी फंक्शन के अंदर जब हम कोई वेरिएबल डिक्लेअर करते है तो उसका स्कोप उस वेरिएबल तक ही सीमित होता है जिससे हम चाहे तो दो अलग अलग फंक्शन में एक ही नाम से वेरिएबल बना सकते हैं इससे प्रोग्राम में कोई प्रॉब्लम नहीं होगी क्योकि दोनों का स्कोप केवल उस फंक्शन तक सीमित होगा | 
  • लोकल वेरिएबल को जो मेमोरी मिलती है वो केवल उस फंक्शन जिसमे वो लोकल वेरिएबल डिक्लेअर है उसके कंप्यूटर में रन होने तक ही मिलती है जैसे ही फंक्शन एन्ड होता वैरिएबल की मेमोरी में रिलीज़ हो जाती है और उस मेमोरी को कोई प्रोग्राम का कोई दूसरा वेरिएबल उपयोग कर सकता है | 
  • लोकल वेरिएबल की प्रायिकता ग्लोबल वेरिएबल से ज्यादा होती है | 

Disadvantages of Local Variables In C

  • वेरिएबल का स्कोप सीमित होता है जिससे  किसी फंक्शन में डिक्लेअर एक वेरिएबल को कोई दूसरा फंक्शन उपयोग नहीं कर सकता | 
  • डिबगिंग प्रक्रिया थोड़ी मुश्किल हो जाती है | 
  • लोकल वेरिएबल में डेटा शेयरिंग पॉसिबल नहीं है | 

Global Variable In C

ग्लोबल वेरिएबल, फंक्शन या ब्लॉक के बाहर डिक्लेअर होते है | सामान्यतः Global Variable को प्रोग्राम के शुरुवात में सबसे ऊपर डिक्लेअर किया जाता है | 

ग्लोबल वेरिएबल को हम प्रोग्राम के किसी भी ब्लॉक या फंक्शन में उपयोग कर सकते | इस वेरिएबल की वैल्यू को कोई भी function उपयोग और चेंज कर सकता है | 

चूँकि ग्लोबल वेरिएबल किसी भी ब्लॉक या फंक्शन में डिक्लेअर नहीं होता है इसलिए  इसका स्कोप ग्लोबल होता है | जिससे इन वेरिएबल को हम किसी भी ब्लॉक या फंक्शन में उपयोग कर सकते है | 

ग्लोबल वेरिएबल की लाइफटाइम पुरे प्रोग्राम की लाइफटाइम के बराबर होता है और जैसे ही प्रोग्राम END होता है ग्लोबल वेरिएबल भी नस्ट हो जाता है और मेमोरी में उसको मिला स्थान भी रिलीज़ हो जाता है |

इस वेरिएबल को उपयोग करने से पहले डिक्लेअर करना आवश्यक होता है | 

#include <stdio.h>
 int g;          // global variable declaration 
void main () 
{
  int a, b;    // local variable declaration

  /* actual initialization */
  a = 10;
  b = 20;
  g = a + b;
 
  printf("value of a = %d, b = %d and g = %d\n", a, b, g);
 }

Output -:

value of a = 10, b = 20 and  c = 30

इस example मे हमने g नाम से एक वेरिएबल प्रोग्राम के सबसे शुरुवात में डिक्लेअर किया है | चूँकि यह किसी भी फंक्शन या ब्लॉक के अंदर डिक्लेअर नहीं है इसलिए  वेरिएबल g  एक ग्लोबल वेरिएबल है | 

जैसे ही हमे पता है, ग्लोबल वेरिएबल का उपयोग हम किसी भी ब्लॉक या फंक्शन के अंदर कर सकते है इसलिए हमने ग्लोबल वेरिएबल g का उपयोग main() फंक्शन में किया है | 

नोट -: यदि ग्लोबल वेरिएबल का नाम लोकल वेरिएबल के सामान होता है तो इस स्थिति में हम लोकल वेरिएबल को प्राथिमकता देते है | 

Example -:

#include <stdio.h>
int g = 20;  // global variable declaration
void main ()
{
  int g = 10;     // local variable declaration 

  printf ("value of g = %d\n",  g);
}

इस उदाहरण को देखे इसमें एक वेरिएबल जो प्रोग्राम के सबसे ऊपर डिक्लेअर है और एक दूसरा वेरिएबल जो main() फंक्शन के अंदर डिक्लेअर है दोनों का नाम सामान है |

इस स्थिति में जब हमे main () फंक्शन में g वेरिएबल की वैल्यू को प्रिंट करते है तो main() फंक्शन के अंदर बने लोकल वेरिएबल g की वैल्यू प्रिंट होती है क्योकि जब बात लोकल और ग्लोबल वेरिएबल में प्राथमिकता की आती है तब लोकल वेरिएबल को सबसे ज्यादा प्राथमिकता दी जाती है | 

Output -:

value of g = 20

Advantages of Global Variable

  • ग्लोबल वेरिएबल प्रोग्राम में किसी भी फंक्शन द्वारा एक्सेस किया जा सकता है | 
  • ग्लोबल  वेरिएबल को प्रोग्राम में केवल एक बार डिक्लेअर करने की आवश्यकता होती है | 
  • यह काफी उपयोगी होता है जब प्रोग्राम के सारे फंक्शन एक ही डेटा को एक्सेस कर रहे होते है | 

Disadvantages of Global Variable

  • ग्लोबल वेरिएबल की वैल्यू कभी भी , किसी भी फंक्शन द्वारा बदला जा सकता है | 
  • यदि हम आपने प्रोग्राम में काफी सारे ग्लोबल वेरिएबल का उपयोग करते है तो प्रोग्राम में एरर आने की सम्भावना बढ़ जाती है | 
  • ग्लोबल वेरिएबल की लाइफ प्रोग्राम की लाइफ के बादराब होती है जब तक प्रोग्राम मेमोरी में रहेगा तब तक ग्लोबल वेरिएबल भी रहेगा ऐसे में जब कभी हमे बलाबल वरिएबला का उपयोग करना नहीं होता तब भी ऐसे मेमोरी मिली होती है जो मेमोरी का नुकशान है | 

Formal parameters

फंक्शन डिफाइन करते समय जब हम फंक्शन पैरेंथेसिस के अंदर कोई वेरिएबल डिक्लेअर करते है तो इसे Formal Parameters कहते है और ऐसे वेरिएबल का स्कोप लोकल होता है | 

फंक्शन पैरेंथेसिस के अंदर हम जो वेरिएबल डिक्लेअर करते है तो वो भी लोकल वेरिएबल की तरह होता है जिसका लाइफटाइम केवल उस फंक्शन के चलने तक ही सीमित होता है जैसे ही फंक्शन नस्ट होता है वेरिएबल भी नस्ट हो जाता है |

#include <stdio.h>
 int a = 20;    // global variable declaration

void main ()
 {

  // local variable declaration
  int a = 10;
  int b = 20;
  int c = 0;

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);
}

int sum(int a, int b)  // function to add two integers
{

   printf ("value of a in sum() = %d\n",  a);
   printf ("value of b in sum() = %d\n",  b);

   return a + b;
}

Difference Between Local Variable and Global Variable

Local VariableGlobal Variable 
लोकल वेरिएबल फंक्शन या ब्लॉक के अंदर डिक्लेअर किया जाता है | ग्लोबल वेरिएबल फंक्शन या ब्लॉक के बाहर डिक्लेअर किया जाता है |
लोकल वेरिएबल का स्कोप केवल उस फंक्शन तक सीमित होता है जिस फंक्शन में वह डिक्लेअर होता है |  ग्लोबल वेरिएबल का स्कोप किसी फंक्शन तक सीमित नहीं होता है इसका उपयोग कोई भी फंक्शन कभी भी जब भी जरुरत हो उपयोग कर सकता है | 
लोकल वेरिएबल में कोई भी बदलाव करने पर इसका प्रभाव किसी दूसरे फंक्शन पर नहीं पड़ता |ग्लोबल वेरिएबल में कोई भी बदलाव करने पर ऐसे सभी फंक्शन जो इस ग्लोबल वेरिएबल का उपयोग कर रहे है उन सभी पर  इसका प्रभाव पड़ता है | 
लोकल वेरिएबल को मेमोरी तब मिलती है जब फंक्शन को प्रोग्राम में आता है और रन होना स्टार्ट करता है | ग्लोबल वेरिएबल को मेमोरी तब मिलती है जब प्रोग्रम मेमोरी में आता है और रन होना स्टार्ट करता है | 
लोकल वेरिएबल को मिली मेमोरी तब रिलीज़ हो जाती है जब फंक्शन end होता है जैसे ही फंक्शन एन्ड हो जाता है उसके अंदर बने सभी वेरिएबल भी नस्ट हो जाते है | ग्लोबल वेरिएबल को मिली मेमोरी तब रिलीज़ हो जाती है जब प्रोग्राम end होता है जैसे ही प्रोग्राम एन्ड हो जाता है उसके अंदर बने सभी ग्लोबल वेरिएबल भी नस्ट हो जाते है | 
यदि लोकल वेरिएबल को डिक्लेअर करते समय initlize नहीं किया गया  होता तो यह initlily गार्बेज वैल्यू स्टोर करता है | यदि ग्लोबल वेरिएबल को डिक्लेअर करते समय initlize नहीं किया गया होता तो यह जीरो वैल्यू स्टोर करता है | 
इसमें डाटा शेयरिंग संभव नहीं है इस वेरिएबल में स्टोर डेटा को केवल वही फंक्शन उपयोग कर सकते है जिसमे वह डिक्लेअर होता है | इसमें डाटा शेयरिंग संभव है इस वेरिएबल में स्टोर डेटा को सभी फंक्शन उपयोग कर सकते है | 
एक प्रोग्राम में अलग अलग फंक्शन के अंदर एक ही नाम से दो लोकल वेरिएबल बना सकते है | एक प्रोग्राम में एक ही नाम से दो ग्लोबल वेरिएबल नहीं बना सकते 

What is More useful?

एक प्रोग्राम में लोकल और ग्लोबल दोनों ही टाइप के वेरिएबल का अपना अपना  महत्त्व है | हालाँकि, एक प्रोग्राम में काफी ज्यादा ग्लोबल वेरिएबल बनाने से प्रोग्राम को काफी ज्यादा मेमोरी की जरूरत पड़ती है क्योकि ग्लोबल वैरिएबल यदि प्रोग्राम में उपयोग भी न हो रहे हो तो भी उन्हें प्रोग्राम के end तक मेमोरी मिलती है |

ऐसे में हमे कोशिस करनी चाहिए कि हम अपने प्रोग्राम में अनुपयोगी ग्लोबल वेरिएबल न बनाये | क्योकि इससे कभी कभी वेरिएबल को पहचानना मुश्किल हो जाता है कि कौन सा वेरिएबल ग्लोबल है और कौन सा लोकल है | 

Conclusion

दोस्तों आशा करता हु कि आज के इस आर्टिकल को पढ़ने के बाद आपको लोकल वेरिएबल क्या है? (What is Local Variable in C in Hindi) ग्लोबल ग्लोबल वेरिएबल क्या है? (What is Global Variable in C in Hindi) तथा लोकल और ग्लोबल वेरिएबल में क्या अंतर है? से संबंधित सभी जानकारी मिल गई होगी |

अगर आप सी लैंग्वेज का Complete Tutorial चाहते है तो मेरे इस पोस्ट C Language Tutorial In Hindi को देखे यहाँ आपको C Programming Language के सभी टॉपिक्स step by step मिल जाएगी |

दोस्तों आशा करता हु कि आपको ये पोस्ट पसंद आई होगी और आपको लोकल वेरिएबल क्या है? (What is Local Variable in C in Hindi) ग्लोबल ग्लोबल वेरिएबल क्या है? (What is Global Variable in C in Hindi) तथा लोकल और ग्लोबल वेरिएबल में क्या अंतर है के बारे में काफी जानकरी हुई होगी |

अगर आपको ये पोस्ट पसंद आया है तो इस पोस्ट को अपने अपने दोस्तों को शेयर करना न भूलिएगा ताकि उनको भी ये जानकारी प्राप्त हो सके |

अगर आपको अभी भी Local and Global Variable in C से संबंधित कोई भी प्रश्न या Doubt है तो आप जरूर बताये मैं आपके सभी सवालों का जवाब दूँगा और ज्यादा जानकारी के लिए आप हमसे संपर्क कर सकते है |

एसी ही नया टेक्नोलॉजी ,Programming Language, Coding , C Language, C++, Python Course , Java Tutorial से रिलेटेड जानकारियाँ पाने के लिए हमारे इस वेबसाइट को सब्सक्राइब कर दीजिए | जिससे हमारी आने वाली नई पोस्ट की सूचनाएं जल्दी प्राप्त होगी |

Jeetu Sahu is A Web Developer | Computer Engineer | Passionate about Coding, Competitive Programming and Blogging

Leave a Comment