以下是代码:
#include <iostream>
using namespace std;
int x = 1;
void fun()
{
int x = 2;
{
int x = 3;
cout<<::x<<endl;
}
}
int main()
{
fun();
return 0;
}
我想知道的是,有没有办法在函数fun中的大括号中访问值为2的x。当我写x时,它打印3,当:: x打印1.所以如何访问值为2的x,以及我们将其称为全局变量或局部变量。
由于
编辑1:要求知识,想知道这样的事情是否可能。
答案 0 :(得分:0)
我想知道的是,有没有办法在函数fun中的大括号中访问值为2的x。
无法访问它。唯一的,黑客&#39;&#39;访问它是:
int x;
{
int &xOuter = x;
int x;
// use xOuter here to access x of outer scope
}
我们称之为全局变量还是局部变量。
它是一个局部变量。
我建议不要这样做,这会造成混乱。要避免这种情况,请使用编译器选项,例如gcc&#39; -Wshadow
来获取此类案例的警告。