Avatar ·

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

सभी को नमस्ते! मैंने अभी-अभी C++ सीखना शुरू किया है और पॉइंटर्स के संदर्भ में `const` कीवर्ड को समझ नहीं पा रहा हूँ। मैं तीन अलग-अलग घोषणाओं को देखता हूँ और पूरी तरह से भ्रमित हो जाता हूँ: 1. `const int* ptr;` 2. `int* const ptr;` 3. `const int* const ptr;` ये अलग-अलग क्यों हैं? इनमें से कौन सा उस मान को बदलने की अनुमति देता है जिस पर पॉइंटर इंगित करता है, और कौन सा पॉइंटर को ही बदलने की अनुमति देता है? मैंने एक छोटा उदाहरण लिखा है: ```cpp int a = 10; int b = 20; const int* p1 = &a; // *p1 = 30; // त्रुटि, यदि अनकमेंट किया जाए p1 = &b; // काम करता है int* const p2 = &a; *p2 = 30; // काम करता है // p2 = &b; // त्रुटि, यदि अनकमेंट किया जाए const int* const p3 = &a; // *p3 = 30; // त्रुटि // p3 = &b; // त्रुटि ``` क्या मैं सही समझ रहा हूँ कि तारे के बाईं ओर `const` डेटा की रक्षा करता है, और दाईं ओर पॉइंटर की? या याद रखने का कोई आसान नियम है? कृपया समझाएँ कि यह कैसे काम करता है और किन मामलों में किस विकल्प का उपयोग करना चाहिए। पहले से धन्यवाद! <<>>

कैसे पढ़ें