指针数组和数组指针是两个容易搞混淆的概念
 
int *p[4]
int (*p)[4]
前者没有用括号,[]比*优先,首先是p[4],然后是int *,表示是一个数组,其中每个元素是int 指针类型.
后者使用了括号,*比[]优先,表示p是一个指针变量,他指向包含4个元素的一维数组,
 
如果觉得不好理解可以对下面两个做比较
int a[4]  表示a有4个元素,每个元素为×××.
int (*p)[4]表示*p有4个元素,每个元素为×××,也就是p所指向的对象是有4个×××元素的数组