int a[3][4]={1,2,3,4};
int (*p)[4]=a; //等价于&a[0],&a[0][0]
a是一个含有3个元素的数组,数组中的每个元素又是一个含有4个元素的数组。标准来说没有二维数组这个概念,正确的是数组的数组这个概念。
p是一个指针,指向一个含有4个元素的数组,因为我们这里将a的首地址赋给了p,其实用的话直接把p当成a用就可以。所以p+1就是横跨a的一个元素,a中一个元素是一个数组,所以p+1就变成了&a[1][0]
使用p访问a中的数据,p[0][1]这样就可以
参考: