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

Rac*_*hit 0 c

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

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

还有为什么*c=0呢?

Fre*_*Foo 11

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

您应该在将它们转换为之后打印指针%p,而不是打印指针.%dvoid*

  • +1.另外,在打印之前将指针转换为`void*`. (5认同)