如何重新分配全局变量C ++

时间:2018-09-01 02:35:01

标签: c++

为什么不能像在python中那样重新分配全局变量int x?但是,如果我将其放在函数中,效果很好吗?

<img src="src.png">

感谢我是C ++的新手

1 个答案:

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