a声明为int a[3][N],说明a是一个二维数组,第一维是3,第二维是4(N=4),
p声明为int (*p)[N],说明p是一个指向含有4个元素的一维数组的指针,
所以p是可以指向a的。
一般地,要让p指向二维数组a,是把a数组的第一个元素a[0][0]的地址赋值给它,即:
p=&a[0][0]
但是,在c语言中,a[0]、&a[0]和a都是指向0行0列元素的地址,也就是说,它们从数值上都跟&a[0][0]是相同的,所以,写成p=&a[0]或者写成p=a,都与p=&a[0][0]等价。
所以通常都用最简单的写法p=a了。
把p=&a[0]换成p=a也可以的
是,是,两问都是。