使用2D数组通过引用调用

时间:2015-09-04 10:08:20

标签: c++

我试图让这个简单的c ++程序工作,但我一直在从错误到错误的反弹。
这是代码:

#include <iostream>
using namespace std;

const int row = 3;
const int col = 3;
int array[row][col];

void print(int array[row][col]){
    for(int i = 0; i < 3; i++){
        for(int j = 0; j < 3; j++){
            cout << array[i][j];
        }
    }
}

void setValues(int (&array), int value){
    for(int i = 0; i < 3; i++){
        for(int j = 0; j < 3; j++){
            array[i][j] = value; //invalid types 'int[int]' for array subscript
        }
    }
}

int main() {
    setValues(array, 30); //Expected primary-expression before ',' token + Invalid Arguments 'Candidates are: void setValue(int &, int)
    print(array); //expected primary=expression before ')' token
    return 0;
}

我想用函数更改2D数组中的值。

1 个答案:

答案 0 :(得分:0)

typedef int array[row][col];

您在此处所做的是为int创建一个名为array[row][col]的别名。只需删除typedef,就可以了。

修改:忘记了其他错误

void setValues(int (&array)[row][col], int value)

它也像这样工作

void setValues(int array[row][col], int value)