c語(yǔ)言二維數(shù)組指針如何表示

小億
249
2023-10-27 04:03:28

在C語(yǔ)言中,可以使用指向二維數(shù)組的指針來(lái)表示二維數(shù)組。

假設(shè)有一個(gè)二維數(shù)組arr,聲明并初始化如下:

int arr[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

可以定義一個(gè)指向二維數(shù)組的指針ptr,指向arr的開頭,如下:

int (*ptr)[4] = arr;

這里的(*ptr)[4]表示ptr是一個(gè)指針,指向一個(gè)大小為4的一維數(shù)組。

對(duì)于二維數(shù)組arr,可以通過(guò)指針ptr來(lái)訪問(wèn)其中的元素,如下:

printf("%d", *(*ptr + 2));  // 輸出3

這里的*(*ptr + 2)表示先解引用ptr,得到指向一維數(shù)組的指針,然后再將該指針加2,最后再解引用得到元素值。

同時(shí),也可以通過(guò)指針ptr來(lái)遍歷整個(gè)二維數(shù)組,如下:

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,得到指向一維數(shù)組的指針,再將該指針加j,最后解引用得到元素值。通過(guò)雙重循環(huán)遍歷可以輸出整個(gè)二維數(shù)組的元素。

0