在c++自定义函数时我们有时需要传递参数,有时以多维数组作为参数,这里就遇到了多维数组该怎么传值的问题了,首先我们看看一维数组是怎么做的。
void print_num(int num[], int size) { for(int i = 0; i < size; i++) { cout << num[i] << " "; } cout << endl; }
void print_num(int * num, int size) { for(int i = 0; i < size; i++, num++) { cout << *num << " "; } cout << endl; }
以上两种方法都可以实现,那么参照一维数组的做法,我们写成
void print_num(int num[][], int row, int col) { for(int i = 0; i < row; i++) { for(int j = 0; j < col; j++) { cout << num[i][j] << " "; } cout << endl; } cout << endl; }
但是问题出现了,这个代码是会报错的,因为我们必须指定第二维的大小,也就是第二个方括号中的内容。
因此我们可以这样写
void print_num(int * num, int row, int col) { for(int i = 0; i < row; i++) { for(int j = 0; j < col; j++) { cout << num[i * col + j] << " "; } cout << endl; } cout << endl; }
这就实现了多维数组的参数传递了。