p是一个二级指针,你画个图看看就知道了,主要是,先是p这个地址加2,然后在p+2这个地址里面取一个数据(也是一个地址),把这个取到的地址再+1,然后用这个地址取数据,就是这个表达式要的数据了~~
p[2][1] ==*(*(p+2)+1);
这样可以理解为 二维数组
*(*(p+2)+1)=>p[2][1]这两者是等价的
int a[3][3]={1,2,3,4,5,6,7,8,9};
int **p=a;
*(p+2)=&a[2];
*(p+2)+1=&a[2][1];
*(*(p+2)+1)=a[2][1]=8;