如何重新分配全局变量c ++ [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

为什么我不能像在python中那样重新分配全局变量int x?但如果我把它放在功能中工作正常吗?

#include<iostream>
using namespace std;

int x = 30;
x = 40;

int main() {
    cout << x;
    system("pause");
    return 0;
};

谢谢我是c ++的新手

c++
1个回答
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;
};
© www.soinside.com 2019 - 2024. All rights reserved.