int a[4][4] = {2,1,7,88,99};
int (*p)[4];
p = a;
printf("%d\n", p); // 輸出地址
printf("%d", *p); // 輸出地址,值相同
二維數組名 a 代表首行地址(類型 int(*)[4]),也是首個元素(即第一行數組)的地址。
p 指向整個二維數組(首行地址)。*p 解引用得到第一行數組,數組名在表達式中退化為指向首元素的指針,即 &a[0][0]。int(*)[4] vs int*)。