关于二维数组的问题
&p[0][0]=*(*(p+0)+0)=**p我想问,*(p+0)为什么是p的地址,加个*号不是应该取(p+0)这个地址中的值吗
为什么*p=p
程序代码:
#include <stdio.h>
void main() {
int p[4][4] = {0};
printf("p value is 0x%x\n", (int)p);
printf("&p value is 0x%x\n", (int)&p);
printf("&p + 1 value is 0x%x\n", (int)(&p + 1));
printf("p + 1 value is 0x%x\n", (int)(p + 1));
printf("p[0] + 1 value is 0x%x\n", (int)(p[0] + 1));
printf("p[1] value is 0x%x\n", (int)(p[1]));
printf("&p[0] + 1 value is 0x%x\n", (int)(&p[0] + 1));
printf("&p[0][0] + 1 value is 0x%x\n", (int)(&p[0][0] + 1));
}
