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

C में const int*, const int * const, और int const * के बीच अंतर


पॉइंटर (Pointer)

C प्रोग्रामिंग भाषा में, *p पॉइंटर में संग्रहीत मान को दर्शाता है और p मान के पते को दर्शाता है, जिसे पॉइंटर कहा जाता है।

const int* और int const* का अर्थ है कि पॉइंटर एक कॉन्स्टेंट int को इंगित कर सकता है और इस पॉइंटर द्वारा इंगित int का मान नहीं बदला जा सकता। लेकिन हम पॉइंटर के मान को बदल सकते हैं क्योंकि यह कॉन्स्टेंट नहीं है और यह किसी अन्य कॉन्स्टेंट int को इंगित कर सकता है।

const int* const का अर्थ है कि पॉइंटर एक कॉन्स्टेंट int को इंगित कर सकता है और इस पॉइंटर द्वारा इंगित int का मान नहीं बदला जा सकता। और हम पॉइंटर के मान को भी नहीं बदल सकते क्योंकि यह अब कॉन्स्टेंट है और यह किसी अन्य कॉन्स्टेंट int को इंगित नहीं कर सकता।

अंगूठे का नियम नामकरण सिंटैक्स को दाएं से बाएं पढ़ना है।

// कॉन्स्टेंट पॉइंटर टू कॉन्स्टेंट int
const int * const

// पॉइंटर टू कॉन्स्टेंट int
const int *

उदाहरण (C)

कमेंट किए गए त्रुटिपूर्ण कोड को अनकमेंट करें और त्रुटि देखें।

#include <stdio.h>

int main() {
    // उदाहरण: int const*
    // नोट: int const* वही है जो const int*
    const int p = 5;
    // q एक पॉइंटर टू कॉन्स्टेंट int है
    int const* q = &p;
    // अमान्य असाइनमेंट
    // p का मान नहीं बदला जा सकता
    // error: assignment of read-only location '*q'
    //*q = 7;
    
    const int r = 7;
    // q किसी अन्य कॉन्स्टेंट int को इंगित कर सकता है
    q = &r;
    printf("%d", *q);
    
    // उदाहरण: int const* const
    int const* const s = &p;
    // अमान्य असाइनमेंट
    // s का मान नहीं बदला जा सकता
    // error: assignment of read-only location '*s'
    // *s = 7;
    // अमान्य असाइनमेंट
    // s नहीं बदला जा सकता
    // error: assignment of read-only variable 's'
    // s = &r;
    
    return 0;
}

आउटपुट

7
  1. C++ में const int*, const int * const, और int const * में क्या अंतर है? C++ में const int*, const int * const, और int const * में क्या अंतर है?

    यहां हम पूर्णांक पॉइंटर्स, पूर्णांक स्थिरांक और पूर्णांक स्थिरांक पॉइंटर्स के आधार पर वेरिएबल घोषणा के कुछ अलग प्रकार देखेंगे। उन्हें निर्धारित करने के लिए हम क्लॉकवाइज/स्पाइरल नियम का उपयोग करेंगे। शर्तों पर चर्चा करके, हम नियमों को भी समझ सकते हैं। const int *. यह कंपाइलर को बताने के लिए उपयोग कि

  1. - C# और .Net में अंतर

    C# एक Programming Language है और .NET एक Framework है। .NET में Common Language Runtime (CLR) होता है, जो .NET Framework का एक Virtual Component है। .NET में न केवल C#, बल्कि इसके माध्यम से आप VB, F# आदि के साथ काम कर सकते हैं। C# .NET का हिस्सा है और इसमें निम्न Features हैं: Boolean Conditions Au

  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व