C语言二维数组做为实参/形参传递给函数的方式总结

假设main函数中定义了一个数组: int data[3][10]

一、传递形参(函数中只能使用数组参数,无法修改)
1.函数中的写法
void func(int array[][10])
{
    tmp=array[i][j];
}

void func(int array[3][10])
{
    tmp=array[i][j];
}

void func(int(*array)[10])
{
    tmp=array[i][j];
}

2.主函数调用函数时的写法
func(data)


二、传递实参(函数中能修改数组的值)
1.函数声明中的写法
void func(int **a, int m, int n)//m表示行数,n表示列数
{
    *((int*)a+n*i+j)=你需要修改的值;
}

void func(int *a, int m, int n)
{
    *((a+i*n)+j)=你需要修改的值;
}

2.主函数调用函数时的写法
func((int**)data)

func((int *)data)
分别对应上面两种写法。


 

欢迎关注公众号:

 

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页