我对C++中的字符串文字有几个疑问。
char *strPtr ="Hello" ;
char strArray[] ="Hello";
现在 strPtr 和 strArray 被认为是字符串常量。
据我理解,字符串常量存储在只读内存中,因此我们无法修改它们的值。
我们不能这样做:
strPtr[2] ='a';
and strArray[2]='a';
以上两个语句都应该是非法的。 编译器应该在这两种情况下抛出错误。
编译器将字符串文字存储在只读内存中,因此如果我们尝试修改它们,编译器会抛出错误。
此外,const数据也被视为只读。
是不是字符串字面量和const数据都被以同样的方式处理? 我可以使用const_cast从字符串字面值中删除常量性并更改其值吗?
字符串字面量存储在哪里?(程序的数据部分)