这个问题在这里已有答案:
为什么我不能像在python中那样重新分配全局变量int x?但如果我把它放在功能中工作正常吗?
#include<iostream>
using namespace std;
int x = 30;
x = 40;
int main() {
cout << x;
system("pause");
return 0;
};
谢谢我是c ++的新手
在C ++的全局范围内,根本不分配变量。您只能初始化它们。 x=40
这个陈述没有意义,因为在任务发生时它没有被定义。
可能让你感到困惑的是,初始化C ++变量的方法之一看起来很像赋值。您可以区分,因为=
的初始化发生在声明的上下文中,因此类型名称在变量名称之前。
您可以为全局变量分配新值,如果它们未被声明为const
,但这必须在语句块中发生 - 也就是说,在某种函数内部。 main
将为这个例子做。
#include<iostream>
using namespace std;
int x = 30; // this is static initialization
int main()
{
cout << x << '\n`;
x = 40; // this is an assignment
cout << "Now it's " << x << '\n';
cin.ignore(1);
return 0;
};