0

当我们将变量声明为

char arr[] = "Hello";

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

但是当我们将变量声明为

char* arr = "Hello";

那么字符串“Hello”是在堆栈还是代码段中声明的?如果代码段那么为什么代码段而不是在堆栈中?

4

1 回答 1

1

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

它具有静态存储持续时间并且是只读的。

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

于 2018-07-25T10:42:30.317 回答