Scope of variable in C Language

किसी भी प्रोग्रामिंग लैंग्वेज में स्कोप यह बताता है की कोई वेरिएबल कहाँ तक read कर सकते हैं या access कर सकते हैं | उस एरिया या बॉउंड्री के बाद उस वेरिएबल को हम नहीं एक्सेस कर सकते हैं  | C में हम वेरिएबल तीन जगह डिफाइन कर सकते हैं  |

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

Global Variable – सारे फंक्शन के बाहर जिस वेरिएबल को डिफाइन करते हैं उनको Global variable  कहते हैं | ऐसे वेरिएबल को हम पूरे प्रोग्राम में कहीं भी access कर सकते हैं |

Formal Parameter –  जब हम फंक्शन को डिफाइन करते समय उसके function signature  में किसी वेरिएबल को डिफाइन करते हैं तो उसे Formal Parameter कहते हैं

Local Variable example 

#include <stdio.h>
 
int main () {

  /* यहां पर लोकल वेरिएबल को डिक्लेअर किया गया है  */
  int a, b;
  int c;
 
  /* यहां पर वैल्यू वेरिएबल में असाइन की गयी है  */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("value of a = %d, b = %d and c = %d\n", a, b, c);
 
  return 0;
}

Global Variable example 

#include <stdio.h>

 /* यहां पर लोकल वेरिएबल को डिक्लेअर किया गया है */ 
int a, b; int c;
int d = 50;
int main () {

 
  /* यहां पर वैल्यू वेरिएबल में असाइन की गयी है  */
  a = 10;
  b = 20;
  c = a + b;
  int d = 80;
  printf ("value of a = %d, b = %d,c = %d and d = %d\n", a, b, c,d);
 
  return 0;
}

यहाँ पर ध्यान देने वाली बात ये है की हम ग्लोबल वेरिएबल के नाम का लोकल वेरिएबल अपने फंक्शन में भी बना सकते हैं जैसा की यहाँ पर int d है उसको main function के अंदर प्रिंट करेंगे तो उसकी वैल्यू लोकल वैल्यू तो शो करेगा जो कि यहां पर 8० है |

जब हम उसको main  function के बाहर या किसी और function में प्रिंट करेंगे तो उसकी वैल्यू ग्लोबल वैल्यू होगी जो कि यहां पर 5० है |

इसका अर्थ ये हुआ की जब एक ही नाम के Global variable और local variable होते हैं तो वैल्यू लोकल वैल्यू को ही  शो करता है

Formal Parameter example 

#include <stdio.h>
 
/* global variable declaration */
int a = 20;
 
int main () {

  /* local variable declaration in main function */
  int x = 10;
  int y = 20;
  int z = 0;

  printf ("value of x in main() = %d\n",  x);
  z = sum( x, y);
  printf ("value of z in main() = %d\n",  z);
  //printf ("value of m in main() = %d\n", m);
  /* ये m को प्रिंट करने में error हमें मिलेगी क्योंकि m को sum function  में डिफाइन किया है न की main function  में  */
  return 0;
}

/* यहाँ पर k और l दोनों वेरिएबल Formal Parameter हैं  */

int sum(int k, int l) {
   
   int m=0; 

 /* a चूँकि ग्लोबल वेरिएबल है इस लिए उसकी वैल्यू यहां प्रिंट हो जाएगी */
   printf ("value of a  in sum() = %d\n", a);

   /* m वेरिएबल यहाँ के लिए लोकल वेरिएबल है इसका स्कोप या लाइफ सिर्फ इस sum फंक्शन के भीतर ही है  */
   printf ("value of k in sum() = %d\n",  k);
   printf ("value of l in sum() = %d\n",  l);

   m = k + l;
   return m;
}
 
इस प्रोग्राम का आउटपुट कुछ इस प्रकार का होगा 
value of x in main() = 10
value of a in sum() = 20
value of k in sum() = 10
value of l in sum() = 20
value of z in main() = 30


अच्छी प्रोग्रामिंग के लिए किसी वेरिएबल तो define करने के बाद उसमें कोई वैल्यू देकर initialize जरूर करें
Global variable को C automatically डिफाइन कर देता है पर लोकल वेरिएबल को तो खुद डिफाइन करना पड़ता है

 

Data Type Initial Default Value
int 0
char  ‘\0’
float 0
double 0
pointer 0

वेरिएबल को initialize  करना इसलिए भी जरुरी क्योंकि अगर हम वेरिएबल डिफाइन करने के बाद बिना initialize किये उसको use करने लगें तो वहाँ उस memory location पर पहले से मौजूद वैल्यू प्रिंट होने लगेगी जिसे garbage value कहते हैं  |

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

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Type in
Details available only for Indian languages
Settings
Help
Indian language typing help
View Detailed Help