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);
请说明其工作原理,谢谢。