类型说明符错误

时间:2012-08-07 09:58:31

标签: c++

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

6 个答案:

答案 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;

一样好