将变量声明为全局变量然后将其重新声明为本地变量是什么意思:
int a = 0;
int main()
{
int a = 7;
return 0;
}
我在参考文献中看到了这个例子,但我不明白。请考虑一下我是用C ++编程的初学者
答案 0 :(得分:4)
这意味着,如果您仅使用main
,则在a
方法中,您将引用在该方法中声明的那个,因为它会隐藏global one
。要访问global one
中的main
,您需要通过::a
进行访问。在其他方法中,如果您将使用a
,则将引用该文件中每个方法的global
。范围的工作方式如下,如果找不到变量,它会尝试在外部范围内查找,依此类推到全局范围。
避免全局变量的建议
答案 1 :(得分:1)
您需要了解变量的范围。只要在花括号内引用变量,方法/花括号中定义的变量就是有效的。 也就是说,在您的代码中,要访问本地" a",您可以直接使用它&使用全球" a" (在main()之外定义),带有作用域解析运算符(:: a)
的前缀但是,请避免这样的情况。给出独特的名字。