请教大神为什么*p占用空间大小为8个字节,而*p+1 指向数组中第二个元素3
int b[3][2]={1,3,5,7,9,11};
int i,j,(*p)[2];//定义一个指向有四个元素的一维数组的指针
for(p=b,i=0;i<3;i++,p++) //i用于计算行数
{
for(j=0;j<2;j++)
{
printf("%3d ",*(*p+j));//!!尤其注意,这里的p存储的是a行整体的地址,指向一维数组a[0]整体,而不是指向一个具体的值!
//*p的值取出来的值就是a[0][0]的地址,*p+j就是存储a[0][j]行的地址,
// *(*p+j)就是该地址指向的元素的值!!
}
printf("p=%x ",p);
printf("*p=%x ",*p);
printf("p占用空间大小为:%d ",sizeof(p));
printf("*p占用空间大小为:%d",sizeof(*p));
printf("\n");
}
printf("b占用空间大小为:%d\n",sizeof(b));
return 0;