陣列名在表達式中退化為指向首元素的指標。一維陣列 int a[3] 中 a 相當於 int*;二維陣列 int a[3][4] 中 a 相當於 int (*)[4](指向含 4 個 int 的陣列指標)。
// 1. 陣列語法(第二維必須給定)
void func(int arr[][3]);
// 2. 指標語法
void func(int (*arr)[3]);
// 3. 簡化指標(不建議,失去型別檢查)
void func(int *arr);
int board[3][3] = {{'X','O','X'},{' ','X','O'},{'X',' ','O'}};
func(board); // 正確:傳遞首列地址
func(board[0]); // 同義
// func(board[3][3]); // 錯誤:傳遞單一元素值
無論宣告為 arr[][3] 或 (*arr)[3],內部皆可用 arr[i][j] 雙下標存取,編譯器根據第二維大小計算位移。