【发布时间】:2011-08-24 08:25:06
【问题描述】:
在 C 中,如果我们有一个像 a[10] 这样的数组,那么 a 和 &a 具有相同的指针值(但类型不同)。我想知道为什么 C 是这样设计的?
这是为了节省存储&a 所需的额外空间吗? ...当您想到 a 永远不能指向任何其他位置这一事实时,这是有道理的,因此存储 &a 是没有意义的。
【问题讨论】:
-
C 实际上已经对代码中 &a 的含义进行了多次迭代。至于 dmr 最初的意图 - 问他。
-
a 是一个地址。数组第0个元素的地址和数组的地址是一样的。这有帮助吗?
-
@Scott:
a不是地址。a是一个数组。数组变量可以隐式转换为其初始元素的地址,并且这种隐式转换在大多数情况下都会发生,但这并不意味着a是一个指针。 -
@nbt:唉,这已经不可能了。 :-(