const
क्वालीफायर का अर्थ है कि const
के रूप में परिभाषित एक परिवर्तनीय/सूचक आपके प्रोग्राम द्वारा बदला नहीं जा सकता है और इसे या तो एक स्पष्ट प्रारंभिकरण या हार्डवेयर-निर्भर साधनों से इसका मान प्राप्त होगा।
पैरामीटर घोषणाओं में const
के रूप में परिभाषित एक पॉइंटर, फ़ंक्शन कोड जो इंगित करता है उसे संशोधित नहीं करेगा। असल में, आप पॉइंटर का उपयोग कर सकते हैं और यह "केवल पढ़ने के लिए" के रूप में बहुत अधिक कार्य करता है।
उदाहरण के लिए: -
void foo(const char *x)
{
while(*x)
{
if(*x==' ') cout << '-'; //printing - when a space is encountered
else cout << *x;
x++;
}
}
ऊपर समारोह ठीक है और किसी भी त्रुटि नहीं दिखाया जाएगा। लेकिन अगर foo में कोई चीज थी जो पारित स्ट्रिंग को बदल सकती है। एक समारोह कहें जो $ के साथ रिक्त स्थान को प्रतिस्थापित करता है। $ प्रिंट नहीं करें लेकिन इसे $ में बदल रहा है। कुछ इस तरह: -
void foo(const char *x)
{
while(*x)
{
if(*x==' ') *x = '$'; //printing - when a space is encountered
else cout << *x;
x++;
}
}
तो यह केवल पढ़ने के लिए स्मृति स्थान को अर्थात एक काम त्रुटि संकलन नहीं होगा।
स्रोत
2017-07-04 17:03:30
"स्थिर चर": यह कुछ हद तक विरोधाभासी है! ;) – Flinsch
Obligatory C++ अक्सर पूछे जाने वाले प्रश्न लिंक: http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.10 –
संभावित डुप्लिकेट [कैसे कॉन्स कीवर्ड सी में काम करता है] (http: // stackoverflow.com/questions/2812875/how-const-keyword-works-in-c) –