可变的存储位置

时间:2018-07-25 10:39:45

标签: c++ storage-class-specifier

当我们将变量声明为

char arr[] = "Hello";

然后上面的字符串“ Hello”位于堆栈中。

但是当我们将变量声明为

char* arr = "Hello";

然后在堆栈或代码段中声明字符串“ Hello”? 如果是代码段,那么为什么要代码段而不是堆栈?

1 个答案:

答案 0 :(得分:1)

不。没有在任何段中声明字符串文字。

具有静态存储期限,并且它是只读的。

由于它是只读的,因此将其地址分配给char*是不正确的。将其更改为char const* arr = "...";