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

时间:2014-09-24 21:26:13

标签: c++ arrays variable-assignment

我有这段代码:

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

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

2 个答案:

答案 0 :(得分:3)

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

某些语句声明(称为声明 - 声明),但一般情况下它们不是。

答案 1 :(得分:1)

要使它成为有效的C ++,你只能初始化全局变量,你不能在那里分配它们。

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