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

C/C++ में स्टेटिक वेरिएबल कहाँ स्टोर होते हैं?

स्टेटिक वेरिएबल वे वेरिएबल होते हैं जो प्रोग्राम चलने तक मेमोरी में रहते हैं यानी उनका जीवनकाल पूरे प्रोग्राम रन का होता है। यह ऑटोमेटिक वेरिएबल से अलग है क्योंकि वे केवल तभी मेमोरी में रहते हैं जब उनका फंक्शन चल रहा होता है और फंक्शन खत्म होने पर नष्ट हो जाते हैं।

स्टेटिक वेरिएबल मेमोरी के डेटा सेगमेंट में स्टोर होते हैं। डेटा सेगमेंट एक प्रोग्राम के वर्चुअल एड्रेस स्पेस का एक हिस्सा है।

वे सभी स्टेटिक वेरिएबल जिनमें कोई स्पष्ट आरंभीकरण नहीं होता या जो शून्य से आरंभ होते हैं, अनारंभिक डेटा सेगमेंट में स्टोर होते हैं (इसे BSS सेगमेंट के रूप में भी जाना जाता है)। इसकी तुलना में, जो स्टेटिक वेरिएबल आरंभ किए जाते हैं, वे आरंभिक डेटा सेगमेंट में स्टोर होते हैं।

इसका एक उदाहरण निम्नलिखित है -

static int x = 5;
static int y;
स्टेटिक वेरिएबल x आरंभिक डेटा सेगमेंट में स्टोर होता है और स्टेटिक वेरिएबल y BSS सेगमेंट में स्टोर होता है।

C में स्टेटिक वेरिएबल को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है -

उदाहरण

#include <stdio.h>
int func()
{
    static int i = 4;
    i++;
    return i;
}
int main()
{
    printf("%d\n", func());
    printf("%d\n", func());
    printf("%d\n", func());
    printf("%d\n", func());
    printf("%d\n", func());
    printf("%d\n", func());
    return 0;
}

उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है -

5
6
7
8
9
10

अब आइए उपरोक्त प्रोग्राम को समझते हैं।

फंक्शन func() में, i एक स्टेटिक वेरिएबल है जिसे 4 से आरंभ किया गया है। इसलिए यह आरंभिक डेटा सेगमेंट में स्टोर होता है। फिर i को बढ़ाया जाता है और इसका मान वापस किया जाता है। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है -

int func()
{
    static int i = 4;
    i++;
    return i;
}

फंक्शन main() में, फंक्शन func() को 6 बार कॉल किया जाता है और यह i का मान वापस करता है जिसे प्रिंट किया जाता है। चूंकि i एक स्टेटिक वेरिएबल है, यह प्रोग्राम चलने तक मेमोरी में रहता है और सुसंगत मान प्रदान करता है। इसे दिखाने वाला कोड स्निपेट निम्नलिखित है -

printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
printf("%d\n", func());
  1. अपने मैक पर Apple Books फ़ाइलों का पता कैसे लगाएं अपने मैक पर Apple Books फ़ाइलों का पता कैसे लगाएं

    मैक पर iBooks कहाँ संग्रहीत हैं? iTunes के विपरीत, iBooks या Apple Books का रास्ता, जिससे आप कई उपकरणों पर अपनी जानकारी के भंडार तक पहुंच सकते हैं, एक अलग ही रंग का घोड़ा है। मैक के लिए iBooks ऐप का उपयोग करके आप आइटम शीर्षक, लेखक पुस्तकें और PDF फ़ाइलें देख सकते हैं। ऐप सामग्री को आपके सभी उपकरणों

  1. Microsoft Teams रिकॉर्डिंग: वे कहाँ स्टोर होती हैं और उन्हें कैसे प्रबंधित करें Microsoft Teams रिकॉर्डिंग: वे कहाँ स्टोर होती हैं और उन्हें कैसे प्रबंधित करें

    वर्क-फ्रॉम-होम लचीलेपन या ऑफिस में संचार के लिए मैसेजिंग ऐप्स की अत्यधिक आवश्यकता के कारण, कई मैसेजिंग ऐप्स ने अपनी लोकप्रियता में नई ऊंचाइयों को छुआ है। ऐसा ही एक ऐप है Microsoft Teams। हाल ही में, Microsoft Teams ने OneDrive में सेव की गई Teams रिकॉर्डिंग को ऑटोमैटिकली डिलीट करने की सुविधा पेश की

  1. एप्पल आपकी तस्वीरें कहां स्टोर करता है? एक व्यापक गाइड एप्पल आपकी तस्वीरें कहां स्टोर करता है? एक व्यापक गाइड

    क्या आपने कभी सोचा है कि एप्पल फोटोज आपके मैक पर तस्वीरें कहां स्टोर करता है? आपने सबसे अधिक संभावना है, क्योंकि ये तस्वीरें आपके सिस्टम पर सामान्य फाइलों के रूप में कहीं नहीं मिलतीं। इसका कारण यह है कि फोटोज ऐप की तस्वीरें एक लाइब्रेरी फाइल के अंदर स्टोर होती हैं। ये फाइलें सामान्य फोल्डर की तरह का