एक स्थानीय स्थिर चर एक चर है, जिसका जीवनकाल फ़ंक्शन कॉल के साथ नहीं रुकता है जहां इसे घोषित किया जाता है। यह एक पूर्ण कार्यक्रम के जीवनकाल तक विस्तारित होता है। सभी फ़ंक्शन कॉल स्थानीय स्थिर चर की एक ही प्रति साझा करते हैं।
किसी फ़ंक्शन को कितनी बार कॉल किया जाता है, इसकी गणना करने के लिए इन चरों का उपयोग किया जाता है। स्थिर चर का डिफ़ॉल्ट मान 0 है। जबकि, सामान्य स्थानीय दायरा निर्दिष्ट करता है कि ब्लॉक के भीतर परिभाषित चर केवल उस ब्लॉक में दिखाई दे रहे हैं और ब्लॉक के बाहर अदृश्य हैं।
वैश्विक चर जो ब्लॉक के बाहर हैं, कार्यक्रम के अंत तक दिखाई दे रहे हैं।
उदाहरण
स्थानीय चर के लिए सी कार्यक्रम निम्नलिखित है -
#include<stdio.h>
main ( ){
int a=40 ,b=30,sum; //local variables life is within the block
printf ("sum=%d" ,a+b);
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
sum=70
उदाहरण
वैश्विक चर के लिए सी कार्यक्रम निम्नलिखित है -
int c= 30; /* global area */
main ( ){
int a = 10; //local area
printf ("a=%d, c=%d", a,c);
fun ( );
}
fun ( ){
printf ("c=%d",c);
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
a =10, c = 30
उदाहरण
स्थानीय स्थिर चर के लिए सी कार्यक्रम निम्नलिखित है -
#include <stdio.h>
void fun(){
static int x; //default value of static variable is 0
printf("%d ", a);
a = a + 1;
}
int main(){
fun(); //local static variable whose lifetime doesn’t stop with a function
call, where it is declared.
fun();
return 0;
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
0 1