C语言中如何将二维数组作为函数的参数传递

转载: https://blog.csdn.net/weixin_36989023/article/details/67640415
c语言中,二维数组作为形参在函数之间的传递
以前经常在函数中传递一维数组或指针。今天,由于工作需要,需要将一个二维数组通过函数来进行传入,原本以为在函数接口处定义一个指向指针的指针就可以了,但是,在编译过程中发现怎么也编译不通过。经过调整,得出以下方式,仅供参考。

(1)、二维数组参数传入,通过下面的函数打印所有的二维数组中所有的值。

#include “stdio.h”
#define LIE 3
int array[][LIE] = {{1,2,3},{4,5,6}};
void fun(int (*p)[LIE])
{
int i = 0,j = 0;
for(i = 0 ; i < 2 ; i++)
{
for(j = 0 ; j < LIE ;j++)
{
printf("%d ", p[i][j]);
}
}
}
int main(void)
{
fun(array);
return 0;
}

以下为gcc下编译的结果,将二维数组中的所有元素全部输出。
在这里插入图片描述

(2)、二维数组参数传出

#include “stdio.h”
#define LIE 3
int array[][LIE] = {{1,2,3},{4,5,6}};
void fun(int (*p)[LIE])
{
int i = 0,j = 0;
for(i = 0 ; i < 2 ; i++)
{
for(j = 0 ; j < LIE ;j++)
{
p[i][j] = 8;
}
}
}
int main(void)
{
int i = 0,j = 0;
fun(array);
for(i = 0 ; i < 2 ; i++)
{
for(j = 0 ; j < LIE ; j++)
{
printf("%d ",array[i][j]);
}
}
return 0;
}

以下为在gcc下编译的结果,将修改后的二维数组中的值全部打印出来。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42404595/article/details/89885657