C语言怎么以二维数组作为参数传递的问题

2024-11-24 23:22:22
推荐回答(2个)
回答1:

#include 
#include 
#include 

void fun(int x[][3])
{
    int i, j;

    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("%d ", x[i][j]);
        }
        printf("\n");
    }
}

int main()
{
    int a[2][3] = {1, 2, 3, 4, 5, 6};

    fun(a);

    return 0;
}

定义形参的时候定义列的数目即可,其实就算你随便定义行和列的大小也可以运行,只要将数组地址传进去即可

回答2:

考虑要把a作为参数传入到print中,那么print函数就要定义一个接收二维数组的参数,那么什么参数能接收二维数组呢。
就是print(int (*newbuf)[3])
然后newbuf的地址就是a的地址,然后newbuf[i][j]来访问每一个元素了

有问题继续问哈,写的可能不太明白