记住公式*(*(ptrArray+i)+j) == ptrArray[i][j]
#include<stdio.h>
int main(void){
int zippo[4][2] = {{2,4},{6,8},{1,3},{5,7}};
printf("zippo=%p,zippo+1=%p",zippo,zippo+1);//zippo指向的数据类型是包含两个int类型的数组,所以类型大小是8字节,所以地址实际
//增长了8个字节
printf("zippo[0]=%p,zippo[0]+1=%p",zippo[0],zippo[0]+1);//zippo[0]指向的数据类型是int类型,所以类型大小是4字节,所以地址实际
//增长了4个字节
return 0;
}
记住
zippo[m][n] == *(*(zippo+m)+n)
p[m][n] == *(*(p+m)+n)
#include<stdio.h>
int main(void){
int zippo[4][2] = {{2,4},{6,8},{1,3},{5,7}};
int (*p)[2] = zippo;//必须要有括号,否则int *p [2]声明的是一个数组,该数组含有两个指针,这两个指针指向int类型
printf("zippo=%p,zippo+1=%p",p,p+1);//p指向的数据类型是包含两个int类型的数组,所以类型大小是8字节,所以地址实际
//增长了8个字节
printf("zippo[0]=%p,zippo[0]+1=%p",p[0],p[0]+1);//p[0]指向的数据类型是int类型,所以类型大小是4字节,所以地址实际
//增长了4个字节
return 0;
}