0

据我所知,数组名称就像指向第一个元素的指针。但是:

int c[]={0,1,2};
printf("%d \t %d",c,&c[0]); //Different values,Why?

还有为什么*c=0

4

1 回答 1

11

只是一个猜测:您在一个具有 64 位指针和 32 位int. 您的代码将两个指针值传递给printf,然后将它们解释为int值;这可能会将 64 位指针的两半打印为两个单独的整数。

在将指针转换为 之后,您应该使用%p而不是打印指针。%dvoid*

于 2012-05-05T19:17:28.197 回答