int *p[3] = &a[1] 是把a[1]的地址赋值给数组指针 p这样 *p 就等于 a[1]同样的 (*p)[0] 也就等于是 a[1][0] 了
&a[1]赋值给数组 *p[3] 了,也就是二维数组a的第二项的地址赋值给指针数组p了
int ( * p)[3]代表一个行指针,赋值a[1]的地址,那么p就代表二维数组a的第一行,你吧 ( * p)看成一维数组名,那么( * p)[0]就代表二维数组a的第一行的第0列