Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में स्थिर, ऑटो, वैश्विक और स्थानीय चर के बीच अंतर

यहां दो अलग-अलग अवधारणाएं हैं -

  • स्कोप, जो निर्धारित करता है कि किसी नाम को कहां एक्सेस किया जा सकता है - वैश्विक और स्थानीय
  • संग्रहण अवधि, जो निर्धारित करती है कि कब एक चर बनाया और नष्ट किया गया - स्थिर और स्वचालित

दायरा

स्थानीय चर का उपयोग केवल उन कथनों द्वारा किया जा सकता है जो उस फ़ंक्शन या कोड के ब्लॉक के अंदर हैं। स्थानीय चर अपने आप कार्य करने के लिए ज्ञात नहीं हैं।

उदाहरण

#include <iostream>
using namespace std;

int main () {
   // Local variable declaration:
   int a, b;
   int c;

   // actual initialization
   a = 10;
   b = 20;
   c = a + b;

   cout << c;
   return 0;
}

यह आउटपुट देगा -

आउटपुट

30

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

उदाहरण

#include <iostream>
using namespace std;

// Global variable declaration:
int g;

int main () {
   // Local variable declaration:
   int a, b;

   // actual initialization
   a = 10;
   b = 20;
   g = a + b;

   cout << g;
   return 0;
}

यह आउटपुट देगा -

आउटपुट

30

संग्रहण अवधि

स्वचालित चर स्थानीय चर होते हैं जिनका जीवनकाल समाप्त हो जाता है जब निष्पादन अपना दायरा छोड़ देता है, और जब दायरा फिर से दर्ज किया जाता है तो फिर से बनाया जाता है।

उदाहरण

for (int i =0 0; i < 5; ++i) {
   int n = 0;
   printf("%d ", ++n); // prints 1 1 1 1 1 - the previous value is lost
}

स्थैतिक चर का जीवनकाल होता है जो कार्यक्रम के अंत तक रहता है। यदि वे स्थानीय चर हैं, तो उनका मान तब बना रहता है जब निष्पादन उनके दायरे को छोड़ देता है।

for (int i = 0; i < 5; ++i) {
   static int n = 0;
   printf("%d ", ++n); // prints 1 2 3 4 5 - the value persists
}

ध्यान दें कि स्थिर भंडारण अवधि के अलावा स्थिर कीवर्ड के विभिन्न अर्थ हैं। साथ ही, C++ में auto कीवर्ड का अर्थ अब स्वचालित संग्रहण अवधि नहीं है; अब इसका अर्थ है स्वचालित प्रकार, चर के प्रारंभकर्ता से घटाया गया।


  1. सी ++ में परिभाषा और घोषणा के बीच क्या अंतर है?

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

  1. C++ में #define और const कीवर्ड में क्या अंतर है?

    #define निर्देश एक प्रीप्रोसेसर निर्देश है; प्रीप्रोसेसर उन मैक्रोज़ को उनके शरीर से बदल देता है इससे पहले कि कंपाइलर इसे देखे। इसे एक स्वचालित खोज के रूप में सोचें और अपने स्रोत कोड की जगह लें। एक const चर घोषणा भाषा में एक वास्तविक चर घोषित करती है, जिसे आप एक वास्तविक चर की तरह उपयोग कर सकते हैं:

  1. पायथन में वैश्विक और स्थानीय चर के बीच क्या अंतर है?

    वैश्विक चर एक ऐसा चर है जो विश्व स्तर पर पहुंच योग्य है। एक स्थानीय चर वह है जो केवल वर्तमान दायरे तक ही पहुंच योग्य है, जैसे कि किसी एकल फ़ंक्शन परिभाषा में उपयोग किए जाने वाले अस्थायी चर। उदाहरण दिए गए कोड में q = "I love coffee" # global variable def f():     p = "Me Tarz