स्टेटिक वेरिएबल्स को static कीवर्ड का उपयोग करके परिभाषित किया जा सकता है। वे वेरिएबल्स हैं जो प्रोग्राम चलने तक मेमोरी में रहते हैं यानी उनका जीवनकाल पूरे प्रोग्राम रन का होता है। यह ऑटोमैटिक वेरिएबल्स से अलग है क्योंकि वे केवल तब मेमोरी में रहते हैं जब उनका फंक्शन चल रहा होता है और फंक्शन खत्म होने पर नष्ट हो जाते हैं।
फंक्शन-लेवल स्टेटिक वेरिएबल्स पहली बार उपयोग किए जाने पर बनाए और इनिशियलाइज़ किए जाते हैं हालांकि उनके लिए मेमोरी प्रोग्राम लोड टाइम पर आवंटित की जाती है।
एक प्रोग्राम जो C में फंक्शन-लेवल स्टेटिक वेरिएबल्स को प्रदर्शित करता है वह इस प्रकार है −
उदाहरण
#include <stdio.h>
int func() {
static int num = 0;
num += 5;
return num;
}
int main() {
for(int i = 0; i < 5; i++) {
printf("%d\n", func());
}
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम का आउटपुट इस प्रकार है।
5 10 15 20 25
अब आइए उपरोक्त प्रोग्राम को समझते हैं।
फंक्शन func() में एक स्टेटिक वेरिएबल num है जिसे 0 से इनिशियलाइज़ किया गया है। फिर num को 5 से बढ़ाया जाता है और इसका मान लौटाया जाता है। वह कोड स्निपेट जो इसे दिखाता है वह इस प्रकार है।
int func() {
static int num = 0;
num += 5;
return num;
}
फंक्शन main() में, फंक्शन func() को फॉर लूप का उपयोग करके 5 बार कॉल किया जाता है और यह num का मान लौटाता है जिसे प्रिंट किया जाता है। चूंकि num एक स्टेटिक वेरिएबल है, यह प्रोग्राम चलने तक मेमोरी में रहता है और सुसंगत मान प्रदान करता है। वह कोड स्निपेट जो इसे दिखाता है वह इस प्रकार है।
int main() {
for(int i = 0; i < 5; i++) {
printf("%d\n", func());
}
return 0;
}