可变存储位置

Variable storage location

本文关键字:位置 存储      更新时间:2023-10-16

当我们将变量声明为时

char arr[] = "Hello";

则上面的字符串"Hello"位于堆栈中。

但是当我们将变量声明为时

char* arr = "Hello";

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

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

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

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