📌  相关文章
📜  如何在C中将2D数组作为参数传递?(1)

📅  最后修改于: 2023-12-03 15:38:31.830000             🧑  作者: Mango

在C中如何将2D数组作为参数传递?

在C语言中,我们经常需要使用二维数组来存储和处理数据。当我们需要在函数之间传递二维数组时,我们可以通过以下两种方法实现。

通过指向数组的指针来传递二维数组

在C语言中,二维数组实际上是由多个一维数组组成的。因此,我们可以通过指向数组的指针来传递二维数组。以下代码演示了如何通过指针来传递二维数组。

#include<stdio.h>

void printArray(int (*arr)[3], int rows, int cols) {
    printf("The Array:\n");
    for(int i=0; i<rows; i++) {
        for(int j=0; j<cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int arr[2][3] = {{1,2,3},{4,5,6}};
    printArray(arr, 2, 3);
    return 0;
}

在上面的示例代码中,我们定义了一个名为printArray的函数,它使用指向一个包含3个元素的一维数组的指针作为其第一个参数,该指针表示一个二维数组的一行。我们还传递了行和列数作为第2和第3个参数。在main函数中,我们创建了一个名为arr的二维数组,并将其传递给printArray函数以打印出数组。

通过使用数组形参来传递二维数组

通过使用数组形参,我们可以在函数内部访问和操作二维数组。以下代码演示了如何使用数组形参来传递二维数组。

#include<stdio.h>

void printArray(int arr[][3], int rows, int cols) {
    printf("The Array:\n");
    for(int i=0; i<rows; i++) {
        for(int j=0; j<cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int arr[2][3] = {{1,2,3},{4,5,6}};
    printArray(arr, 2, 3);
    return 0;
}

在上面的示例代码中,我们将一个包含3个元素的一维数组作为数组形参,该数组表示一个二维数组的一行。在main函数中,我们创建了一个名为arr的二维数组,并将其传递给printArray函数以打印出数组。

无论使用哪种方法,传递二维数组都需要指定其行和列数。此外,在C语言中,二维数组在内存中的存储方式是连续的,即每个元素在内存中的位置是连续的。因此,我们可以使用指针来访问二维数组的元素,也可以使用数组下标来访问二维数组的元素。