ग्लोबल और स्टेटिक वेरिएबल उनके डिफ़ॉल्ट मानों से आरंभ किए जाते हैं क्योंकि यह C या C++ मानकों में है और कंपाइल समय पर शून्य से मान असाइन करना मुफ़्त है। दोनों स्टेटिक और ग्लोबल वेरिएबल जनरेटेड ऑब्जेक्ट कोड के लिए समान व्यवहार करते हैं। ये वेरिएबल .bss फाइल में आवंटित होते हैं और लोडिंग के समय यह वेरिएबल को आवंटित कॉन्स्टेंट प्राप्त करके मेमोरी आवंटित करता है।
ग्लोबल और स्टेटिक वेरिएबल का एक उदाहरण निम्नलिखित है।
उदाहरण
#include <stdio.h>
int a;
static int b;
int main()
{
int x;
static int y;
int z = 28;
printf("The default value of global variable a : %d", a);
printf("\nThe default value of global static variable b : %d", b);
printf("\nThe default value of local variable x : %d", x);
printf("\nThe default value of local static variable y : %d", y);
printf("\nThe value of local variable z : %d", z);
return 0;
}
आउटपुट
The default value of global variable a : 0 The default value of global static variable b : 0 The default value of local variable x : 0 The default value of local static variable y : 0 The value of local variable z : 28
उपरोक्त प्रोग्राम में, ग्लोबल वेरिएबल main() फंक्शन के बाहर घोषित किए जाते हैं और उनमें से एक स्टेटिक वेरिएबल है। तीन लोकल वेरिएबल घोषित किए जाते हैं और वेरिएबल z को आरंभ भी किया जाता है।
int a; static int b; ... int x; static int y; int z = 28;
उनके डिफ़ॉल्ट मान प्रिंट किए जाते हैं।
printf("The default value of global variable a : %d", a);
printf("\nThe default value of global static variable b : %d", b);
printf("\nThe default value of local variable x : %d", x);
printf("\nThe default value of local static variable y : %d", y);
printf("\nThe value of local variable z : %d", z);