常量字符串将存储在内存中的哪个位置?
有时我们在c编程中使用这种类型的代码。
char *p = "Sam";
这里,常量字符串“Sam”的地址将存储在char指针p中。 现在在这里
我想问一下Sam将要存放在哪里?
该标准没有具体说明。 通常,字符串文字( "Sam"
)将存储在数据部分的只读页面中。
至于p
本身,它取决于它是自动的还是静态的。
字符串“Sam”通常存储在与全局常量相同的区域中的全局存储器中。
但是,如果你这样做:
char p[] = "Sam";
然后它将在堆栈上。 (作为数组初始化器)