C++中多维数组传递参数

在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;
}

这就实现了多维数组的参数传递了。

猜你喜欢

转载自www.linuxidc.com/Linux/2017-09/147140.htm