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

时间:2011-10-30 06:41:18

标签: c

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

char *p = "Sam";

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

2 个答案:

答案 0 :(得分:9)

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

对于p本身,它取决于它是自动的还是静态的。

答案 1 :(得分:9)

字符串“Sam”通常存储在与全局常量相同的区域中的全局存储器中。

但是,如果你这样做了:

char p[] = "Sam";

然后它会在堆栈上。 (作为数组初始值设定项)

相关问题