स्टोरेज क्लासेस वेरिएबल्स के स्कोप, लाइफटाइम और बाइंडिंग को निर्दिष्ट करते हैं।
एक वेरिएबल को पूरी तरह से परिभाषित करने के लिए, न केवल उसका 'टाइप' बल्कि उसका स्टोरेज क्लास भी बताना आवश्यक है।
एक वेरिएबल नाम कंप्यूटर मेमोरी में कुछ भौतिक स्थान की पहचान करता है, जहां वेरिएबल के मानों को स्टोर करने के लिए बिट्स का संग्रह आवंटित किया जाता है।
स्टोरेज क्लास हमें निम्नलिखित कारक बताता है:
- वेरिएबल कहां स्टोर होता है (मेमोरी या CPU रजिस्टर में)?
- यदि कुछ इनिशियलाइज़ नहीं किया गया तो वेरिएबल का प्रारंभिक मान क्या होगा?
- वेरिएबल का स्कोप क्या है (इसे कहां एक्सेस किया जा सकता है)?
- वेरिएबल का जीवन क्या है?
स्कोप (गुंजाइश)
स्कोप किसी ऑब्जेक्ट की विजिबिलिटी को परिभाषित करता है। यह परिभाषित करता है कि ऑब्जेक्ट को कहां एक्सेस किया जा सकता है।
स्कोप वेरिएबल लोकल या ग्लोबल होता है।
- ब्लॉक के भीतर परिभाषित वेरिएबल का लोकल स्कोप होता है। वे केवल उसी ब्लॉक में विजिबल होते हैं जिसमें वे परिभाषित होते हैं।
- ग्लोबल एरिया में परिभाषित वेरिएबल उनकी परिभाषा से लेकर प्रोग्राम के अंत तक विजिबल होता है। यह प्रोग्राम में हर जगह विजिबल होता है।
उदाहरण
वेरिएबल के स्कोप के लिए C प्रोग्राम:
#include <stdio.h>
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
उदाहरण
लोकल और ग्लोबल वेरिएबल्स के लिए C प्रोग्राम:
#include <stdio.h>
int a, b;
a = 1, b = 2;
main() {
int c, d;
printf("c और d मान दर्ज करें: ");
scanf("%d%d", &c, &d);
c = c + d; // लोकल वेरिएबल्स
b = a * b; // ग्लोबल वेरिएबल्स
printf("c मान है: %d\n", c);
printf("b मान है: %d\n", b);
}
आउटपुट
c और d मान दर्ज करें: 4 7 c मान है: 11 b मान है: 2