当前位置: 代码迷 >> C语言 >> c的指针问题
  详细解决方案

c的指针问题

热度:98   发布时间:2007-04-20 12:14:59.0
c的指针问题

请试着运行下面的代码:
#include<stdio.h>
int main(void)
{
int zippo[4][2]={1};
printf("zippo=%p\n&zippo=%p\n&zippo[0]=%p\n&zippo[0][0]=%p",
zippo,&zippo,&zippo[0],&zippo[0][0]);
return 0;
}
为什么以上的几个地址会相同?如zippo的值是数组首元素的地址,而&zippo是不是该指针的指针?若改用指针变量值就不同了如:
int *p=zippo[0];
printf("\np=%p,&p=%p",p,&p);
请说明其工作原理,谢谢。

搜索更多相关的解决方案: 指针  zippo  int  void  

----------------解决方案--------------------------------------------------------
当然相同了,这四个都是指数组元素的首地址,其实在c语言中根本就没有多维数组的概念,都是一维的,只是层层嵌套而已;
用int(*zippo)[2]可能会更好理解一些;
----------------解决方案--------------------------------------------------------
不太清楚,高手指教下啊 %p 做何解?
----------------解决方案--------------------------------------------------------
zippo是数组的首元素的地址,是个常量.
应该不可以再用&zippo来取它的地址吧....
----------------解决方案--------------------------------------------------------
  相关解决方案