数组名称与指向c中第一个元素的指针之间的差异

时间:2012-05-05 19:13:17

标签: c

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

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

那么为什么*c=0

1 个答案:

答案 0 :(得分:11)

只是一个猜测:你在64位指针和32位int的平台上。您的代码将两个指针值传递给printf,然后将其解释为int值;这可能会将64位指针的两半打印为两个独立的整数。

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