像这样声明一个变量为全局变量然后重新声明为局部变量是什么意思:
int a = 0;
int main()
{
int a = 7;
return 0;
}
我在引用资料里看到这个例子,但是没看懂。请考虑到我是 C++ 编程的初学者
最佳答案
这意味着在您的 main
方法中,如果您只使用 a
,您将引用在该方法中声明的那个,因为它隐藏了 全局一个
。要访问main
中的global one
,您需要通过::a
访问。在其他方法中,如果您将使用 a
,您将引用该文件中每个方法的 global
。作用域是这样工作的,如果它没有找到变量,它会尝试在外部作用域中寻找,依此类推到全局作用域。
一个建议避免使用全局变量
关于c++ - 将变量声明为全局变量,然后声明为局部变量 -Shadowing-,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45784781/