当我们将变量声明为时
char arr[] = "Hello";
则上面的字符串"Hello"位于堆栈中。
但是当我们将变量声明为时
char* arr = "Hello";
那么字符串"Hello"是在堆栈还是代码段中声明的?如果是代码段,为什么代码段不在堆栈中?
否。字符串文字未在任何段中声明。
它有静态存储持续时间,并且是只读的。
因为它是只读的,所以将其地址分配给char*
是不正确的。将其更改为char const* arr = "...";