Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में लोकल और ग्लोबल स्कोप नियम

ग्लोबल स्कोप

ब्लॉक के बाहर परिभाषित वेरिएबल्स प्रोग्राम के अंत तक विजिबल होते हैं।

उदाहरण

#include <stdio.h>

int c = 30; // ग्लोबल

int main() {
    int a = 10;
    printf("a=%d, c=%d\n", a, c);
    fun();
    return 0;
}

void fun() {
    printf("c=%d\n", c);
}

आउटपुट

a=10, c=30
c=30

लोकल स्कोप

ब्लॉक या फंक्शन के भीतर घोषित वेरिएबल्स केवल उसी ब्लॉक में एक्सेसिबल होते हैं, बाहर अस्तित्व नहीं रखते।

उदाहरण: अलग ब्लॉक्स

#include <stdio.h>

int main() {
    int i = 1; // लोकल टू main
    printf("%d ", i);
    {
        int j = 2; // लोकल टू इस ब्लॉक
        printf("%d ", j);
    }
    // j यहां एक्सेसिबल नहीं
    return 0;
}

आउटपुट

1 2

उदाहरण: समान नाम, अलग ब्लॉक्स

#include <stdio.h>

int main() {
    {
        int i = 1;
        printf("%d ", i);
    }
    {
        int i = 2; // अलग वेरिएबल
        printf("%d ", i);
    }
    return 0;
}

आउटपुट

1 2

वेरिएबल शैडोइंग (मास्किंग)

आउटर ब्लॉक के वेरिएबल को इनर ब्लॉक में समान नाम से पुनः घोषित करने पर आउटर वेरिएबल मास्क हो जाता है।

उदाहरण

#include <stdio.h>

int main() {
    int i = 1;
    {
        int i = 2; // आउटर i को मास्क करता है
        printf("%d ", i); // 2 प्रिंट करता है
    }
    // आउटर i फिर से विजिबल
    return 0;
}

आउटपुट

2

नेस्टेड ब्लॉक्स में एक्सेस

आउटर ब्लॉक के वेरिएबल नेस्टेड ब्लॉक्स में एक्सेसिबल हैं, यदि इनर ब्लॉक में समान नाम से घोषित न हों।

उदाहरण

#include <stdio.h>

int main() {
    int i = 1;
    {
        int j = 2;
        printf("%d ", j); // 2
        printf("%d ", i); // 1 (आउटर से एक्सेस)
    }
    return 0;
}

आउटपुट

2 1

सारांश

स्कोपघोषणा स्थानविजिबिलिटीलाइफटाइम
ग्लोबलसभी फंक्शन्स के बाहरपूरा प्रोग्रामप्रोग्राम अवधि
लोकल (फंक्शन)फंक्शन के अंदरकेवल वह फंक्शनफंक्शन कॉल अवधि
ब्लॉक{ } के अंदरकेवल वह ब्लॉकब्लॉक निष्पादन अवधि
  1. C भाषा में विभिन्न ऑपरेटर और एक्सप्रेशन C भाषा में विभिन्न ऑपरेटर और एक्सप्रेशन

    C भाषा में ऑपरेटर्स का परिचय ऑपरेटर डेटा पर ऑपरेशन करते हैं। इन्हें निम्न श्रेणियों में वर्गीकृत किया गया है: अंकगणितीय ऑपरेटर्स (Arithmetic Operators) संबंधपरक ऑपरेटर्स (Relational Operators) तार्किक ऑपरेटर्स (Logical Operators) असाइनमेंट ऑपरेटर्स (Assignment Operators) इन्क्रीमेंट और डिक्रीमेंट ऑ

  1. C भाषा में शिफ्ट ऑपरेशन क्या हैं? C भाषा में शिफ्ट ऑपरेशन क्या हैं?

    समस्या C भाषा का उपयोग करके किसी संख्या के बाएं शिफ्ट, दाएं शिफ्ट और कॉम्प्लीमेंट को दिखाने का सरल प्रोग्राम क्या है? समाधान बाएं शिफ्ट (Left Shift) यदि किसी वेरिएबल का मान एक बार बाएं शिफ्ट किया जाता है, तो उसका मान दोगुना हो जाता है। उदाहरण के लिए, a = 10, तो a<<1 = 20 दाएं शिफ्ट (Right Sh

  1. C भाषा में मूल्यांकन (Evaluation), प्रीसिडेंस (Precedence) और एसोसिएटिविटी (Association) C भाषा में मूल्यांकन (Evaluation), प्रीसिडेंस (Precedence) और एसोसिएटिविटी (Association)

    एक्सप्रेशन्स का मूल्यांकन C कंपाइलर द्वारा प्रीसिडेंस (प्राथमिकता) और एसोसिएटिविटी (साहचर्य) नियमों के आधार पर किया जाता है। यदि एक एक्सप्रेशन में अलग-अलग प्राथमिकता के ऑपरेटर्स हैं, तो प्रीसिडेंस नियमों पर विचार किया जाता है। उदाहरण: a = 10 - 2 * 5 यहां, 2 * 5 पहले मूल्यांकित होता है क्योंकि * की