एक लोकल स्टैटिक वेरिएबल वह वेरिएबल है जिसका जीवनकाल उस फंक्शन कॉल के साथ समाप्त नहीं होता जहां इसे घोषित किया गया है। यह पूरे प्रोग्राम के जीवनकाल तक फैला होता है। सभी फंक्शन कॉल लोकल स्टैटिक वेरिएबल्स की एक ही कॉपी साझा करते हैं।
इन वेरिएबल्स का उपयोग यह गिनने के लिए किया जाता है कि कोई फंक्शन कितनी बार कॉल किया गया है। स्टैटिक वेरिएबल का डिफ़ॉल्ट मान 0 होता है। जबकि, सामान्य लोकल स्कोप निर्दिष्ट करता है कि ब्लॉक के भीतर परिभाषित वेरिएबल्स केवल उस ब्लॉक में विजिबल होते हैं और ब्लॉक के बाहर इनविजिबल होते हैं।
ब्लॉक के बाहर ग्लोबल वेरिएबल्स प्रोग्राम के अंत तक विजिबल होते हैं।
उदाहरण: लोकल वेरिएबल
#include <stdio.h>
main() {
int a = 40, b = 30, sum; // लोकल वेरिएबल्स का जीवनकाल ब्लॉक के भीतर
printf("sum = %d", a + b);
}
आउटपुट
sum = 70
उदाहरण: ग्लोबल वेरिएबल
int c = 30; /* ग्लोबल एरिया */
main() {
int a = 10; // लोकल एरिया
printf("a = %d, c = %d", a, c);
fun();
}
fun() {
printf("c = %d", c);
}
आउटपुट
a = 10, c = 30 c = 30
उदाहरण: लोकल स्टैटिक वेरिएबल
#include <stdio.h>
void fun() {
static int x; // स्टैटिक वेरिएबल का डिफ़ॉल्ट मान 0 होता है
printf("%d ", x);
x = x + 1;
}
int main() {
fun(); // लोकल स्टैटिक वेरिएबल जिसका जीवनकाल उस फंक्शन के साथ समाप्त नहीं होता जहां इसे घोषित किया गया है।
fun();
return 0;
}
आउटपुट
0 1