#include <iostream>
using namespace std;
int b=10;
//b=100;
int main(int argc, char *argv[])
{
cout<<b<<endl;
return 0;
}
如果删除b = 100
处的评论,则会出现错误。为什么会这样。否则输出为10。
错误:C ++需要所有声明的类型说明符。
答案 0 :(得分:2)
全局范围只能包含声明和定义,而不能包含任意语句。
C ++认为您正在尝试声明并定义另一个名为b
的变量。
答案 1 :(得分:1)
表达式语句(如b=100;
)必须位于函数内。
在函数外部,您可以声明和初始化变量,但不能直接执行任意代码。
你得到那个特殊的错误,因为编译器将代码解释为没有类型说明符的声明(即int b=100;
缺少int
),而不是作为表达式语句,它不期望这样的事情。在C中允许这样的声明(尽管在这种情况下,它会失败,因为已经有一个名为b
的变量),但在C ++中却没有。
答案 2 :(得分:1)
除非初始化变量,否则无法在全局范围内分配变量。
答案 3 :(得分:0)
你必须这样做
b = 100;
在主内部。您无法在函数外部更改已声明的变量。
答案 4 :(得分:0)
任何语句都应该在函数内部发生。可以定义全局变量并初始化外部函数体。但是赋值应该在某个函数体内。
答案 5 :(得分:-1)
int b=10;
//b=100;
==&GT;这可以在程序中有一些入口点的地方完成。
C ++中不允许使用杂散赋值语句。
此陈述与b = b + 1;
一样好