स्टैटिक स्टोरेज क्लास कंपाइलर को निर्देश देता है कि लोकल वेरिएबल को प्रोग्राम के जीवनकाल के दौरान अस्तित्व में रखे, बजाय इसे हर बार बनाने और नष्ट करने के जब यह स्कोप में आता है और जाता है। इसलिए, लोकल वेरिएबल्स को स्टैटिक बनाने से वे फंक्शन कॉल्स के बीच अपने मान बनाए रखते हैं।
स्टैटिक मॉडिफायर को ग्लोबल वेरिएबल्स पर भी लागू किया जा सकता है। जब यह किया जाता है, तो यह उस वेरिएबल के स्कोप को उस फाइल तक सीमित कर देता है जिसमें इसे घोषित किया गया है।
C++ में, जब किसी क्लास डेटा मेंबर पर static का उपयोग किया जाता है, तो यह उस मेंबर की केवल एक कॉपी का कारण बनता है जिसे उसके क्लास के सभी ऑब्जेक्ट्स द्वारा साझा किया जाता है।
उदाहरण
#include <iostream>
void func(void) {
static int i = 10; // लोकल स्टैटिक वेरिएबल
i++;
std::cout << "i is " << i;
std::cout << " and count is " << count << std::endl;
}
static int count = 6; /* ग्लोबल वेरिएबल */
int main() {
while(count--) {
func();
}
}
आउटपुट
i is 10 and count is 5 i is 11 and count is 4 i is 12 and count is 3 i is 13 and count is 2 i is 14 and count is 1 i is 15 and count is 0