同学问我这样的问题,例如在下面的代码中:
#include <iostream>
using namespace std;
int main() {
int a = 1;
{
int a = 2;
cout << a << endl;
}
return 0;
}
如何在内部访问到main
函数的a
?
你可以这样做:
#include <iostream>
using namespace std;
int main() {
int a = 1;
{
int a = 2;
// 输出 1 而不是 2。
cout << *(int *)((char *)&a + sizeof(a)) << endl;
return 0;
}
好吧,我承认我是故意来搞笑的,请清踩~
只能做引用了:
#include <iostream>
using namespace std;
int main() {
int a = 1;
int &b = a;
{
int a = 2;
cout << b << endl;
}
return 0;
}
没有办法,里外总有一个你得换个名字。