C ++:如何在方法的顶部声明一个数组?

时间:2010-07-02 00:08:40

标签: c++ compiler-errors

我想在我的方法的顶部声明一个数组,但它没有编译:

Foo Bar()
{
    int arr[]; // C2133

    // …

    // C2059, C2143, C2143
    arr[] = {1, 2, 3}; 
}

我在这里做错了什么?

UPDATE 我知道C ++不会强迫我这样做,但是项目的约定要求在方法顶部声明所有变量。

3 个答案:

答案 0 :(得分:5)

在C / C ++中声明数组时,需要指定大小。如果未指定大小,则需要在同一声明语句中定义数组元素,如下所示:

int arr[] = {1, 2, 3};

答案 1 :(得分:4)

这只是无效的语法。如果您想要arr = { ... };,则必须在声明变量时使用。但是C ++并没有强制你在函数的开头声明变量,所以你可以这样做:

Foo Bar() {
    // other stuff goes here
    // ...
    int arr[] = {1, 2, 3};
}

答案 2 :(得分:1)

你做不到。项目的约定需要给出,或者你的初始化代码是:

Foo Bar() {
    int a[3];
    ...
    a[0] = 1;
    a[1] = 2;
    a[2] = 3;
}