(C/C++语言将二维数组作为参数传递) 将二维数组作为参数的函数,数组名被视为地址,因此,相应的形参是一个指针。
形参为二维数组,并给出第二维长度。void two_dimensional_array_1(int n, int args[][5]);形参为指向数组的指针,并给出数组长度。void two_dimensional_array_2(int n, int (*args)[5]);形参为指向指针的指针。void two_dimensional_array_3(int n, int l, int **args);/***形参为二维数组,并给出第二维长度***/#include <iostream>using namespace std;/** *形参为二维数组并给定第二维长度 */void two_dimensional_array_1(int n, int args[][5]) { int i; for (i = 0; i < n; i++) { for (int var = 0; var < 5; ++var) { PRintf("two_dimensional_array_1[%d][%d] = %d/n", i, var, args[i][var]); } }}/** *形参为指向数组的指针 */void two_dimensional_array_2(int n, int (*args)[5]) { int i; for (i = 0; i < n; i++) { for (int var = 0; var < 5; ++var) { printf("two_dimensional_array_2[%d][%d] = %d/n", i, var, args[i][var]); } }}/** *形参为指向指针的指针 */void two_dimensional_array_3(int n, int l, int **args) { for (int i = 0; i < n; i++) { for (int var = 0; var < l; ++var) { printf("two_dimensional_array_3[%d][%d] = %d/n", i, var, args[i][var]); } }}int main() { int args[][5] = { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } }; int *a[3]; a[0] = args[0]; a[1] = args[1]; a[2] = args[2]; two_dimensional_array_1(3, args); two_dimensional_array_2(3, args); two_dimensional_array_3(3, 5, a); return 0;}新闻热点
疑难解答