常量字符串将存储在内存中的哪个位置?

Jee*_*tel 8 c

有时我们在c编程中使用这种类型的代码.

char *p = "Sam";
Run Code Online (Sandbox Code Playgroud)

这里,常量字符串"Sam"的地址将存储在char指针p中.现在
我想问一下Sam将要存放在哪里?

cni*_*tar 9

该标准没有具体说明.通常,字符串文字("Sam")将存储在数据部分的只读页面中.

至于p它本身,它取决于它是自动的还是静态的.

  • @ Mr.32自动变量存储在堆栈中."全局"或静态变量存储在"data"(或者可能是"bss")中. (2认同)

Mys*_*ial 9

字符串"Sam"通常将存储在与全局常量相同的区域中的全局内存中.

但是,如果你这样做:

char p[] = "Sam";
Run Code Online (Sandbox Code Playgroud)

然后它将在堆栈上.(作为数组初始化器)