0

如果我写 char * p = "Welcome"。我可以看到 p 的地址。但是字符串的地址是什么,即 Welcome 存储在哪个地址?

如果我再写一次 char *s = "Welcome"。p 和 s 会指向同一个地址吗?

4

3 回答 3

2

在调试器中,如果您检查p,您将看到字符串的地址。

&pp它自己的地址。

不,ps不能保证指向同一个地址,但它们可能。

于 2012-09-14T11:55:15.037 回答
0

字符串常量“Welcome”通常放在内存的“只读数据”部分。这里有很好的解释:字符串文字他们去哪里数据段

您可以通过以下方式找到字符串常量“Welcome”的地址

 printf("%p",p);

如果我再写一次 char *s = "Welcome"。p 和 s 会指向同一个地址吗?

也许相同的字符串常量被放在同一个地址,也许不是。

于 2012-09-15T04:46:53.890 回答
0

“欢迎”是字符串常量,它存储在内存的只读数据部分中,但指针 p 在指向该字符串文字的堆栈中创建

于 2012-09-14T11:55:58.687 回答