相关疑难解决方法(0)

char*和char []之间的区别

我知道这是一个非常基本的问题.我很困惑为什么以及如何以下不同.

char str[] = "Test";
char *str = "Test";
Run Code Online (Sandbox Code Playgroud)

c++

30
推荐指数
6
解决办法
2万
查看次数

字符串文字

我对c ++中的字符串文字几乎没有疑问.

char *strPtr ="Hello" ;
char strArray[] ="Hello";
Run Code Online (Sandbox Code Playgroud)

现在strPtr和strArray被认为是字符串文字.

根据我的理解,字符串文字存储在只读存储器中,因此我们无法修改它们的值.

我们做不到

strPtr[2] ='a';
and strArray[2]='a';
Run Code Online (Sandbox Code Playgroud)

以上陈述都应该是非法的.编译器应该在两种情况下抛出错误.

编译器将字符串文字保留在只读内存中,因此如果我们尝试修改它们,编译器会抛出错误.

const数据也被认为是只读的.

是否同样处理字符串文字和const数据?我可以使用const_cast从字符串文字中删除常量可以更改其值吗?

字符串文字到底存储在哪里?(在程序的数据部分)

c++

9
推荐指数
2
解决办法
4083
查看次数

标签 统计

c++ ×2