为什么不能像在python中那样重新分配全局变量int x?但是,如果我将其放在函数中,效果很好吗?
<img src="src.png">
感谢我是C ++的新手
答案 0 :(得分:0)
在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;
};