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

सी/सी++ में स्थिर चर कहाँ संग्रहीत हैं?


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

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

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

इसका एक उदाहरण इस प्रकार दिया गया है -

static int x = 5;
static int y;

The static variable x is stored in the initialized data segment and the static variable y is stored in the BSS segment.

एक प्रोग्राम जो 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;
}

फ़ंक्शन मुख्य () में, फ़ंक्शन 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. मैक पर iBooks कहाँ संग्रहीत हैं?

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

  1. Microsoft टीम रिकॉर्डिंग कहाँ संग्रहीत की जाती हैं?

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

  1. Apple फ़ोटो कहाँ संग्रहीत हैं?

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