const int*, const int * const और int * const के बीच अंतर C++ में
नमस्ते! मैंने अभी-अभी C++ सीखना शुरू किया है और पॉइंटर्स और const क्वालिफायर को समझने की कोशिश कर रहा हूँ। मैंने कुछ लेख पढ़े, लेकिन फिर भी इन तीन कंस्ट्रक्शनों में भ्रमित हूँ: `const int*`, `int * const` और `const int * const`।
उदाहरण के लिए, मैंने यह कोड लिखा:
```cpp
int value = 5;
const int* ptr1 = &value;
int * const ptr2 = &value;
const int * const ptr3 = &value;
```
मैं समझता हूँ कि ये सभी किसी न किसी तरह से संबंधित हैं कि डेटा या पॉइंटर को बदला नहीं जा सकता, लेकिन मैं अंतर स्पष्ट रूप से नहीं बता सकता। जब मैं `*ptr1 = 10;` के माध्यम से नया मान असाइन करने की कोशिश करता हूँ, तो कंपाइलर त्रुटि देता है। और अगर मैं `ptr2` को बदलने की कोशिश करता हूँ, जैसे `ptr2 = &otherValue;`, तो भी त्रुटि होती है। लेकिन `ptr1` को मैं दूसरे वेरिएबल पर रीडायरेक्ट कर सकता हूँ, जबकि `ptr2` को नहीं। क्यों?
मैं यह भी समझना चाहता हूँ कि किस स्थिति में किस विकल्प का उपयोग करना चाहिए। शायद याद रखने के लिए कोई मनेमोनिक नियम हो? उदाहरणों के साथ विस्तृत स्पष्टीकरण के लिए आभारी रहूँगा।
<<>>