// [ ]的优先级高于*,( )是必须要加的,如果赤裸裸地写作int *p[4],那么应该理解为int *(p[4]),p 就成了一个指针数组,而不是二维数组指针
//printf("%d,%d\n...0061FEA0,0061FEA0,0061FEA0 地址一样
printf("%d,%d,%d\n", sizeof(*a), sizeof(*&a), sizeof(**a)); //打印三者所指向的类型大小 16,48,4
// a指向二维数组的行元素大小的指针...16 =4 *4 行指针
// &a指向二维数组大小的指针 48 = 12 *4 组指针
// *a指向二维数组的单个元素大小的指针 4 列指针
//打印二维数组
for...*a是列指针 *a=*(a+0)=a[0] a[i]是一个列指针,&a[i]代表行指针
printf("%p,%p,%p \n",a,a+1,a+2);
//a,a+1,a+2分别代表二维数组第一...,二,三行的首地址,a是行指针
printf("%p,%p,%p \n",*a,*a+1,*a+2);
//*a,*a+1,*a+2分别代表二维数组第一行第一、二、三列元素的地址 *a是第一行首列指针