二维数组传参

在C语言中,可以通过指针来传递二维数组。二维数组实际上是一个连续的内存块,可以使用指针来表示二维数组的行和列。以下是一个示例:

#include 

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

int main() {
    int myArray[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int rows = sizeof(myArray) / sizeof(myArray[0]);

    myFunction(myArray, rows);

    return 0;
}

在上面的示例中,函数`myFunction`接收一个整型二维数组`arr`和行数`rows`作为参数。我们可以通过`myArray`数组名将二维数组的地址传递给`myFunction`。在函数内部,可以通过`arr`指针访问二维数组的元素。

输出结果将是:

1 2 3
4 5 6
7 8 9
 

注意,在函数中传递二维数组时,必须指定二维数组的列数。在上面的示例中,我们假设二维数组的列数为3。

类似地,你也可以使用指针和动态内存分配来传递二维数组。这需要在函数接收参数时使用指针来表示二维数组,并且使用动态内存分配函数(如`malloc`)来分配内存。然后可以在函数中使用指针来访问二维数组的元素。通过这种方式,可以灵活地处理不同大小的二维数组。

你可能感兴趣的:(c语言)