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

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


पॉइंटर (Pointer)

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

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

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

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

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

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

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

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

उदाहरण (C)

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

#include <stdio.h>

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

आउटपुट

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

    C# और Visual C# दोनों Same हैं। जब आप C# Development के लिए Visual Studio का उपयोग करते हैं, तो इसे Visual C# कहा जाता है। Visual C# को C# का Implementation Consider करें। Microsoft Visual Studio, Programs, Web Apps, Web Services आदि Develop करने के लिए Microsoft का एक IDE है। Visual Studio का Curre

  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 काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व