मुझे सी ++ में स्ट्रिंग अक्षर के बारे में कुछ संदेह हैं।स्ट्रिंग लिटल
char *strPtr ="Hello" ;
char strArray[] ="Hello";
अब strPtr और strArray स्ट्रिंग अक्षर माना जाता है।
मेरी समझ स्ट्रिंग अक्षर के अनुसार केवल स्मृति में पढ़ा जाता है ताकि हम उनके मूल्यों को संशोधित नहीं कर सकें।
हम ऐसा नहीं कर सकते
strPtr[2] ='a';
and strArray[2]='a';
दोनों ऊपर बयान अवैध होना चाहिए। कंपाइलर दोनों मामलों में त्रुटियों को फेंक देना चाहिए।
कंपाइलर स्ट्रिंग अक्षर को केवल स्मृति में रखता है, इसलिए यदि हम उन्हें संकलित करने की कोशिश करते हैं तो संकलक त्रुटियों को फेंकता है।
इसके अलावा कॉन्स्ट डेटा को केवल पढ़ने के रूप में भी माना जाता है।
क्या यह है कि दोनों स्ट्रिंग अक्षर और कॉन्स्ट डेटा का इलाज समान तरीके से किया जाता है? क्या स्ट्रिंग अक्षर से const_cast का उपयोग करके निरंतरता को हटाया जा सकता है, इसका मूल्य बदल सकता है?
स्ट्रिंग अक्षर वास्तव में कहां संग्रहीत किया जाता है? (कार्यक्रम के डेटा खंड में)
"घोषित प्रकार का strPtr है", क्या आपका मतलब strArray है? – 4pie0