我有这段代码:
#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;
}
有效。某人能解释一下为什么吗?提前谢谢。
答案 0 :(得分:3)
在最外层,C ++文件是一系列声明。 tabela[0] = 1;
不是声明 - 它是一个声明(特别是表达式声明)。但是,函数体是一系列语句,因此可以将此行放在main
(或任何其他函数)的主体内。
某些语句是声明(称为声明 - 声明),但一般情况下它们不是。
答案 1 :(得分:1)
要使它成为有效的C ++,你只能初始化全局变量,你不能在那里分配它们。
编辑:评论打败了我。道具