सी ++ में अंतर क्या है
char const *ptr=&ch;
तथा
const char *ptr=&ch;
उत्तर:
जवाब के लिए 32 № 1वे वही हैं, यानी pointer to const char
.
तथापि char * const ptr
है अलग, एक होने के नाते const pointer to (non-const) char
.
और बस सेट को पूरा करने के लिए, const char * const ptr
एक है const pointer to const char
.
उत्तर के लिए 7 № 2
सी ++ में कोई फर्क नहीं पड़ता।
क्या यह महत्वपूर्ण है const
पहले है *
या के बाद *
.
जवाब के लिए 6 № 3
कॉन्स्ट जो कुछ भी तत्काल बायीं ओर है उस पर लागू होता है (अगर वहां कुछ भी नहीं है, तो यह किस मामले में लागू होता है जो इसके तत्काल अधिकार पर लागू होता है)। तो कोई फर्क नहीं पड़ता है।
char * const ptr
हालांकि वैरिएबल वैल्यू के लिए एक कॉन्स पॉइंटर होगा।
जवाब के लिए 2 № 4
अन्य उत्तरों में तकनीकी समाधान शामिल है - आपके दो उदाहरण समान हैं।
कई लोग निपटने के दौरान दाएं से बाएं पढ़ने के लिए पसंद करते हैं const
सी ++ में। अंग्रेजी में, हम निरंतर एक्स के बारे में सोचना पसंद करते हैं, जबकि सी ++ एक्स एक्स कॉन्स को पार्स करना पसंद करता है। बाएं उपज को पढ़ने के लिए एक और अंग्रेजी परिणाम पैदा होता है।
बल्कि एक चरम उदाहरण:
C const * bar(A * const, B const * const) const;
दाएं से बाएं से यह "निरंतर कार्य" के रूप में पढ़ता है bar
मानकों को एक स्थिर सूचक के रूप में लेना A
और स्थिर के लिए एक स्थिर सूचक B
, एक सूचक को स्थिर करने के लिए लौट रहा है C
"ध्यान दें कि सभी तीन प्रकार के पॉइंटर्स अलग हैं।
जवाब के लिए 0 № 5
char const *ptr=&ch;
तथा const char *ptr=&ch;
का मतलब है char char const है, जहां पॉइंटर परिवर्तनीय है (या इसे बदला जा सकता है)।
लेकिन मामले में char * const ptr
, आप इसे सेट करने के बाद पॉइंटर को फिर से असाइन नहीं कर सकते हैं। तो यह एक चार स्ट्रिंग के लिए एक कॉन्स सूचक है।