如果我写 char * p = "Welcome"。我可以看到 p 的地址。但是字符串的地址是什么,即 Welcome 存储在哪个地址?
如果我再写一次 char *s = "Welcome"。p 和 s 会指向同一个地址吗?
如果我写 char * p = "Welcome"。我可以看到 p 的地址。但是字符串的地址是什么,即 Welcome 存储在哪个地址?
如果我再写一次 char *s = "Welcome"。p 和 s 会指向同一个地址吗?
在调试器中,如果您检查p
,您将看到字符串的地址。
&p
是p
它自己的地址。
不,p
也s
不能保证指向同一个地址,但它们可能。
字符串常量“Welcome”通常放在内存的“只读数据”部分。这里有很好的解释:字符串文字他们去哪里和数据段
您可以通过以下方式找到字符串常量“Welcome”的地址
printf("%p",p);
如果我再写一次 char *s = "Welcome"。p 和 s 会指向同一个地址吗?
也许相同的字符串常量被放在同一个地址,也许不是。
“欢迎”是字符串常量,它存储在内存的只读数据部分中,但指针 p 在指向该字符串文字的堆栈中创建