代码之家  ›  专栏  ›  技术社区  ›  Nick Heiner

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

  •  0
  • Nick Heiner  · 技术社区  · 14 年前

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

    Foo Bar()
    {
        int arr[]; // C2133
    
        // …
    
        // C2059, C2143, C2143
        arr[] = {1, 2, 3}; 
    }
    

    我在这里做错什么了?

    更新 我知道C++不强制我这样做,但是项目的约定希望在其方法的顶部声明所有变量。

    3 回复  |  直到 14 年前
        1
  •  5
  •   Alek Davis    14 年前

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

    int arr[] = {1, 2, 3};
    
        2
  •  4
  •   Karmastan    14 年前

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

    Foo Bar() {
        // other stuff goes here
        // ...
        int arr[] = {1, 2, 3};
    }
    
        3
  •  1
  •   Owen S.    14 年前

    你不能。要么项目约定需要给出,要么您的初始化代码需要:

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