在C語言中,可以使用指向二維數組的指針來表示二維數組。
假設有一個二維數組arr,聲明并初始化如下:
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
可以定義一個指向二維數組的指針ptr,指向arr的開頭,如下:
int (*ptr)[4] = arr;
這里的(*ptr)[4]
表示ptr是一個指針,指向一個大小為4的一維數組。
對于二維數組arr,可以通過指針ptr來訪問其中的元素,如下:
printf("%d", *(*ptr + 2)); // 輸出3
這里的*(*ptr + 2)
表示先解引用ptr,得到指向一維數組的指針,然后再將該指針加2,最后再解引用得到元素值。
同時,也可以通過指針ptr來遍歷整個二維數組,如下:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(*(ptr + i) + j));
}
printf("\n");
}
這里的*(*(ptr + i) + j)
表示先將ptr加i,得到指向一維數組的指針,再將該指針加j,最后解引用得到元素值。通過雙重循環遍歷可以輸出整個二維數組的元素。