无法在c++中为全局数组赋值

Cannot assign value to global array in c++

本文关键字:全局 数组 赋值 c++      更新时间:2023-10-16

我有这样的代码:

 #include <iostream>
    int tabela[1];
    tabela[0] = 1;
    int main(){
        std::cout << tabela[0];
        std::cin.get();
        return 0;
    }

它不想工作。我的编译器说"tabela"不命名类型。然而,如果我这样做:

#include <iostream>
int tabela[1];
int main(){
    tabela[0] = 1;
    std::cout << tabela[0];
    std::cin.get();
    return 0;
}

它有效。有人能解释一下为什么吗?提前谢谢。

在最外层,C++文件是一系列声明。tabela[0] = 1;不是一个声明,而是一个语句(特别是一个表达式语句)。然而,函数体是一系列语句,因此可以将此行放在main(或任何其他函数)的体中。

有些语句声明(称为声明语句),但通常不是

要使其成为有效的C++,您只能在全局中初始化变量,不能在那里赋值。

编辑:评论打败了我。道具