`int (*p)[3];` 宣告 p 為指向「含 3 個 int 的數組」的指針。括號不可少,否則 `int *p[3]` 為指針數組。
int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}};
int (*b)[4]; // 指向 4 列的行指針
b = a+1; // 指向第 1 行
for (i=1; i<=4; b = b[0]+2, ++i) printf("%d ", *b[0]); // 輸出 9 13 17 21
for (i=0; i<2; ++i) {
b = a+i; // 指向第 i 行
printf("%d ", *(b[i]+1)); // 輸出 3 11
}
指向固定長度數組的指針是處理二維/多維數組的利器,語義明確、步長自動匹配行大小,配合下標運算可寫出既高效又可讀的矩陣操作代碼。