我在我的书中读到了这一点(以及互联网上的许多来源):
数组变量points到数组中的第一个元素。
如果为真,则数组变量和第一个元素是不同的. Right?
这意味着通过下面的代码,它将产生两种不同的结果:
int main(){
char msg[] = "stack over flow";
printf("the store string is store at :%p\n",&msg);
printf("First element: %p\n",&msg[0]);
}
但我在这两个案例中得到了相同的结果。所以,通过这个例子,我认为我们应该说:数组变量is第一个元素。 (因为它有相同的地址)
我不知道这是对还是错。请教我。
数组变量表示数组占用的整个内存块,而不仅仅是数组的第一个元素。所以array
is not与array[0]
(cf. sizeof array / sizeof array[0]
)。但数组的第一个元素与数组本身位于同一内存地址。
说数组指向第一个元素也是不正确的,在大多数情况下,数组表达式会衰减为指向其第一个元素的指针,但它们是不同的东西(再次参见sizeof
例如)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)