- 因为自己做算法题的时候遇到过,最开始的时候比较苦恼,查到的方法又比较乱,这里总结了三种方法,并分别给出了函数声明的写法,即形参的写法,和传递实参时的写法。
- 显示传递一个二维数组,但是第二维必须固定。第一维可以不写,可以固定,可以比原数组小,会截断。
- 将实参的数组名强转为int*型,这样传递的就相当于一维数组名,函数形参要进一步传入行列的大小,以手工寻址
- 将实参的数组名强转为int**型,那么函数形参可以知晓是一个指针的指针,然后依旧要手工寻址,这种情况就不能使用下标了。
- ps:这里之所以要强转,是因为若不进行强转,那么一个数组名的类型就是一个数组,它作为实参并不能匹配上函数声明的形参。
int array[5][10]; //形参 fun1( int array[5][10]); fun1_1(int array[][10]); fun1_2(int array[3][10]); //会只取前三行数据 fun1_3(int (*array)[10]); //实参调用 fun1(array); //函数内部使用 array[i][j]; //形参 fun2( int* array , int rows, int colums ); //实参调用 fun2( (int*)array , rows, colums ); //函数内部使用 array[i*colums+j]; //当做一维数组使用 //形参 fun2( int** array , int
二维数组作为参数传递给函数的一些方法
最新推荐文章于 2022-08-17 11:34:03 发布