स्कोप नियम निम्नलिखित कारकों से संबंधित हैं:
- वेरिएबल की पहुंच।
- वेरिएबल के अस्तित्व की अवधि।
- वेरिएबल्स के उपयोग की सीमा।
स्टेटमेंट ब्लॉक्स से संबंधित स्कोप नियम नीचे दिए गए हैं:
ब्लॉक कर्ली ब्रेसेस में संलग्न होता है जिसमें स्टेटमेंट्स का सेट होता है।
एक ब्लॉक में घोषित वेरिएबल्स उस ब्लॉक के भीतर पहुंच योग्य और उपयोग योग्य होते हैं और उसके बाहर मौजूद नहीं होते।
उदाहरण 1
निम्नलिखित C प्रोग्राम स्टेटमेंट ब्लॉक्स से संबंधित स्कोप नियमों के लिए है:
#include <stdio.h>
int main() {
{
int i = 1;
printf("%d", i);
}
{
int j = 2;
printf("%d", j);
}
return 0;
}
आउटपुट
आउटपुट नीचे दिया गया है:
1 2
यहां तक कि यदि वेरिएबल्स को उनके संबंधित ब्लॉक्स में समान नाम से पुनः घोषित किया जाता है, तो उन्हें अलग माना जाता है।
उदाहरण 2
यहां स्टेटमेंट ब्लॉक्स से संबंधित स्कोप नियमों के लिए एक और C प्रोग्राम है:
#include <stdio.h>
int main() {
{
int i = 1;
printf("%d", i);
}
{
int i = 2;
printf("%d", i);
}
return 0;
}
आउटपुट
आउटपुट नीचे दिया गया है:
1 2
ब्लॉक्स के भीतर वेरिएबल्स की पुनः घोषणा जो बाहरी ब्लॉक में वेरिएबल्स के समान नाम रखते हैं, आंतरिक ब्लॉक्स को निष्पादित करते समय बाहरी ब्लॉक वेरिएबल्स को मास्क कर देती है।
उदाहरण 3
यहां स्टेटमेंट ब्लॉक्स से संबंधित स्कोप नियमों के लिए एक और C प्रोग्राम है:
#include <stdio.h>
int main() {
int i = 1;
{
int i = 2;
printf("%d", i);
}
return 0;
}
आउटपुट
आउटपुट नीचे दिया गया है:
2
आंतरिक ब्लॉक्स के बाहर घोषित वेरिएबल्स नेस्टेड ब्लॉक्स के लिए पहुंच योग्य होते हैं, बशर्ते ये वेरिएबल्स आंतरिक ब्लॉक के भीतर घोषित न हों।
उदाहरण 4
स्टेटमेंट ब्लॉक्स से संबंधित स्कोप नियमों के लिए एक और प्रोग्राम पर विचार करें:
#include <stdio.h>
int main() {
int i = 1;
{
int j = 2;
printf("%d", j);
printf("%d", i);
}
return 0;
}
आउटपुट
आउटपुट नीचे दिया गया है:
2 1