भंडारण वर्ग चर के दायरे, जीवनकाल और बंधन को निर्दिष्ट करते हैं।
एक चर को पूरी तरह से परिभाषित करने के लिए, किसी को न केवल इसके 'प्रकार' बल्कि इसके भंडारण वर्ग का भी उल्लेख करना होगा।
एक चर नाम कंप्यूटर मेमोरी के भीतर कुछ भौतिक स्थान की पहचान करता है, जहां चर के मूल्यों को संग्रहीत करने के लिए बिट्स का संग्रह आवंटित किया जाता है।
भंडारण वर्ग हमें निम्नलिखित कारक बताता है -
- वेरिएबल कहाँ संग्रहीत किया जाता है (मेमोरी या सीपीयू रजिस्टर में)?
- अगर कुछ भी इनिशियलाइज़ नहीं किया गया है, तो वेरिएबल का प्रारंभिक मान क्या होगा?
- चर का दायरा क्या है (जहां इसे एक्सेस किया जा सकता है)?
- चर का जीवन काल क्या है?
आजीवन
एक चर का जीवनकाल उस अवधि को परिभाषित करता है जिसके लिए कंप्यूटर इसके लिए मेमोरी आवंटित करता है (मेमोरी के आवंटन और डीलोकेशन के बीच की अवधि)।
सी भाषा में, एक चर में स्वचालित, स्थिर या गतिशील जीवनकाल हो सकता है।
- स्वचालित - स्वचालित जीवनकाल वाला एक चर बनाया जाता है। हर बार, उनकी घोषणा का सामना करना पड़ता है और नष्ट कर दिया जाता है। साथ ही, उनके ब्लॉक निकल गए हैं।
- स्थिर - जब डिक्लेरेशन पहली बार निष्पादित किया जाता है तो एक वेरिएबल बनाया जाता है। निष्पादन रुकने/समाप्त होने पर इसे नष्ट कर दिया जाता है।
- गतिशील - चर स्मृति आवंटित और स्मृति प्रबंधन कार्यों के माध्यम से हटा दी जाती है।
भंडारण कक्षाएं
C भाषा में चार स्टोरेज क्लास हैं -
Storage Class | स्टोरेज एरिया | डिफ़ॉल्ट प्रारंभिक मान | लाइफटाइम | स्कोप | कीवर्ड |
---|---|---|---|---|---|
स्वचालित | स्मृति | जब तक नियंत्रण ब्लॉक में रहता है | जब तक नियंत्रण ब्लॉक में रहता है | स्थानीय | स्वतः |
पंजीकरण करें | CPU रजिस्टर | कचरा मूल्य | जब तक नियंत्रण ब्लॉक में रहता है | स्थानीय | पंजीकरण करें |
स्थिर | स्मृति | शून्य | फ़ंक्शन कॉल के बीच मान | स्थानीय | स्थिर |
बाहरी | स्मृति | कचरा मूल्य | कार्यक्रम निष्पादन के दौरान | वैश्विक | बाहरी |
उदाहरण
स्वचालित भंडारण वर्ग के लिए सी कार्यक्रम निम्नलिखित है -
#include<stdio.h> main ( ){ auto int i=1;{ auto int i=2;{ auto int i=3; printf ("%d",i) } printf("%d", i); } printf("%d", i); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
3 2 1
उदाहरण
बाह्य भंडारण वर्ग के लिए सी कार्यक्रम निम्नलिखित है -
#include<stdio.h> extern int i =1; /* this ‘i’ is available throughout program */ main ( ){ int i = 3; /* this ‘i' available only in main */ printf ("%d", i); fun ( ); } fun ( ) { printf ("%d", i); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्न आउटपुट उत्पन्न करता है -
3 1