【发布时间】:2017-10-10 21:56:10
【问题描述】:
char str[] = 'hello';
printf("%x, %x", str, &str)
在C语言中,数组的值和数组的内存地址是一样的。
C 如何保证地址可用? 如果被拿走会怎样? 如果有两个具有相同值的数组怎么办?
【问题讨论】:
-
C 确实给你这个保证的假设来自哪里?
-
我投票结束这个问题作为题外话,因为你的前提不正确,你的问题是基于一个巨大的误解。试图填补你的知识空白可能会导致长时间的开放式讨论。请参阅C FAQ 中的Arrays and Pointers。
-
您误解了“数组的值”这个术语。
-
"在 C 中,数组的值和数组的内存地址是相同的。"是假的。因此,一旦您重新检查该信息,您的问题就会改变。
-
顺便说一句:你想要
char str[] = "hello";"而不是'?