我最近正在学习C++语言。如何访问其他本地区域的局部变量?
我一直想知道如何在局部区域[2]访问局部变量“a”来观察下面的代码。
如何做到这一点?
#include "stdafx.h"
using namespace std;
///// global area /////
int a = 1;
int _tmain(int argc, _TCHAR* argv[])
{
///// local area[1] /////
int a = 2; //<= how to access this "a" at local area[2]?
cout << "global area [a] : " << ::a << endl;
cout << "local area[1] [a] : " << a << endl;
{
///// local area[2] /////
int a = 3;
cout << "global area [a] : " << ::a << endl;
cout << "local area[2] [a] : " << a << endl;
cout << "local area[1] [a] : " << ?????? << endl;
}
return 0;
}
你试图在调试器中运行? – NirMH
你为什么要这样?我不确定,但可能会尝试通过%ebp(x86)的不正确寻址访问来帮助您。 – user1641854
你根本做不到。如果您在内部作用域中声明了一个影响外部作用域声明的变量,则外部作用域的变量不可用。唯一的例外是全局范围内的变量,这要归功于'::'运算符。 –