如果要给函数传一个二维数组类型的实参,并且要求函数中对二维数组的操作在函数返回之后仍然有效,需要怎么传递这个参数?
这个函数的返回类型为二维数组,函数执行完毕后,return
#include
void func(int arry[3][3])
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
arry[i][j] = 1;
}
}
}
int main(void)
{
int arry[3][3] = {0};
func(arry);
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d\n", arry[i][j]);
}
}
int input;
scanf_s("%d", &input);
}
方法有二:
一:设置全局变量,将实参传入函数运算后的结果赋值给全局变量,然后将全局变量再赋值给二维数组。
二:设置函数数据返回类型,采用return。
要调用的函数:
void f(int data[][])
{
}
然后在调用的时候将二维数组传进去就可以了,类似:
inti a[10][10];
f(a);
需要引用形参,如&b[][]作为形参,值就改变了。