1
#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++ 需要所有声明的类型说明符。

4

5 回答 5

2

全局范围只能包含声明和定义,不能包含任意语句。

C++ 认为您正在尝试声明和定义另一个名为b.

于 2012-08-07T10:00:44.910 回答
1

表达式语句(如b=100;)必须在函数内部。

在函数之外,可以声明和初始化变量,但不能直接执行任意代码。

你会得到那个特定的错误,因为编译器将代码解释为没有类型说明符的声明(即int b=100;缺少类型说明符int),而不是作为它不期望这样的事情的表达式语句。在 C 中允许这样的声明(尽管在这种情况下,它会失败,因为已经有一个名为 的变量b),但在 C++ 中不允许。

于 2012-08-07T10:00:10.103 回答
1

您不能分配给全局范围内的变量,除非在初始化时。

于 2012-08-07T10:00:13.973 回答
0

你必须做

b = 100; 

里面主要。您不能在函数外更改已声明的变量。

于 2012-08-07T10:02:00.993 回答
0

任何语句都应该出现在函数内部。全局变量可以在函数体外部定义和初始化。但赋值应该在某个函数体内。

于 2012-08-07T10:14:01.970 回答