2013-03-10 4 views
5

कोड:कैसे वैश्विक चर का उपयोग करने की है जब वहाँ एक स्थानीय और वैश्विक संघर्ष है

int a = 33; 
int main() 
{ 
    int a = 40; // local variables always win when there is a conflict between local and global. 
    // Here how can i access global variable 'a' having value '33'. 
} 

तो आप से पूछना: क्यों किसी को ऊपर बात करने के लिए चाहेगा? क्यों [ए-जेए-जेड] *?

मेरा उत्तर होगा: बस यह जानना कि 'ऐसा करना संभव है'।

धन्यवाद।

+0

http://stackoverflow.com/questions/5827447/how-refer-to-a-local-variable-share-same-name-of-a-global-variable-in-c –

+0

अपने वास्तव में अच्छा सवाल है लेकिन '[ए-जेए-जेड] *' क्या है? –

+2

इसका मतलब है 'क्यों' से शुरू होने वाला कोई प्रश्न और '?' पर समाप्त होना जैसे आप यहां वैश्विक क्यों पहुंचना चाहते हैं? या क्यों ब्ला ब्ला ब्ला ब्लाह? – VishalDevgire

उत्तर

12

कैसे इस पुरानी चाल के बारे में:

int main() 
{ 
    int a = 40; // local variables always win when there is a conflict between local and global. 

    { 
     extern int a; 
     printf("%d\n", a); 
    } 
} 
+1

+1 मुझे 30 सेकंड तक मारने के लिए +1। –

+1

+1: अच्छी चाल .. इसके बारे में पता नहीं था। – Heisenbug

+3

@ आर .. निष्पक्ष होने के लिए, मुझे लगता है कि मैंने इसे पहली बार आपकी पुरानी पोस्ट में से एक में देखा था। – cnicutar

8
int a = 33; 
int main() 
{ 
    int a = 40; 
    int b; 
    { 
    extern int a; 
    b = a; 
    } 
    /* now b contains the value of the global a */ 
} 

एक कठिन समस्या a हो रही है अगर यह फ़ाइल गुंजाइश के साथ static है, लेकिन वह भी व्याख्या करने योग्य है:

static int a = 33; 
static int *get_a() { return &a; } 
int main() 
{ 
    int a = 40; 
    int b = *get_a(); 
    /* now b contains the value of the global a */ 
} 
+0

क्यों न केवल int int = a; int एक = 40; '? या, संकलक इस मामले में लाइनों को फिर से व्यवस्थित कर सकता है .... –

+0

वास्तव में आप ऐसा कर सकते हैं। –

4

आईटी C++ है, मैंने C टैग को ओवरलेक्ड किया, सोरी!

int a = 100; 

int main() 
{ 
    int a = 20; 

    int x = a; // Local, x is 20 

    int y = ::a; // Global, y is 100 

    return 0; 
} 
संबंधित मुद्दे