How can you reference a two-dimensional array in the C language?

In C language, pointers can be used to reference two-dimensional arrays. Here are some common methods for referencing two-dimensional arrays:

  1. Create an array of pointers: Set up an array where each element is a pointer pointing to a one-dimensional array. For example, int *arr[5] represents an array with 5 pointers, each pointing to a one-dimensional array of integers.
  2. To point to the starting address of a two-dimensional array: Declare a pointer variable and assign it to the starting address of the two-dimensional array. For example, int (*arr)[5] represents a pointer pointing to a one-dimensional array containing 5 elements of type int.
  3. Using pointer to pointer: declare a variable that points to a pointer, and point it to the first address of a two-dimensional array. For example, int **arr represents a pointer to a pointer to an integer, which can be used to reference a two-dimensional array.

Here is an example code that demonstrates how to reference a two-dimensional array using an array of pointers.

#include <stdio.h>

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

    // 将每个指针指向一维数组的首地址
    for (int i = 0; i < 3; i++) {
        ptr[i] = arr[i];
    }

    // 使用指针数组引用二维数组
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", ptr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

When running the example code above, the output will be:

1 2 3 4 
5 6 7 8 
9 10 11 12

Note: In the code examples above, each row of the two-dimensional array contains 4 elements, so the type of the pointer array is int *ptr[3]. If the number of columns in the two-dimensional array is different, the type and traversal method of the pointer array need to be changed accordingly.

Leave a Reply 0

Your email address will not be published. Required fields are marked *


广告
Closing in 10 seconds
bannerAds