#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++需要所有声明的类型说明符。类型说明符错误
#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++需要所有声明的类型说明符。类型说明符错误
全局范围只能包含声明和定义,而不能包含任意语句。
C++认为您正在尝试声明并定义另一个名为b
的变量。
表达式语句(如b=100;
)必须在函数内。
在函数之外,可以声明和初始化变量,但不能直接执行任意代码。
由于编译器将代码解释为没有类型说明符的声明(即int b=100;
缺失int
),而不是作为表达式语句不期待这种情况,您会得到该特定错误。这样的声明在C中是允许的(尽管在这种情况下,它会失败,因为已经有一个名为b
的变量),但是不在C++中。
除了在初始化时,您不能指定给全局范围内的变量。
你必须做的
b = 100;
内主。你不能在一个函数外改变一个已经声明的变量。
int b=10;
//b=100;
==>这可以在具有一些入口点的程序中的某一点完成。
在C++中不允许使用Stray赋值语句。
该声明与b = b + 1一样好;
任何语句都应该在函数内发生。全局变量可以定义并初始化外部函数体。但分配应该在某个功能体内。
您不能在函数外执行赋值,但可以进行初始化。 – hmjd 2012-08-07 09:59:48