如何访问既不是全局也不是本地的变量?

时间:2011-12-11 17:51:11

标签: c++ scope

看看这段代码

int x = 1;
int main(int argc, char* argv[])
{
 int x = 2;
 {
  int x = 3;
  cout << x << endl;
  cout << ::x;
 }

getch();
    return 0;
}

当我从块中调用x时我得到3.当我调用:: x时我得到1.是否可以从块中调用x等于2?

2 个答案:

答案 0 :(得分:19)

作弊:

int x = 1;
int main(int argc, char* argv[])
{
    int x = 2;
    {
      int& ox = x;
      int x = 3;
      cout << x << endl;
      cout << ::x << endl;
      cout << ox << endl;
    }

    getch();
    return 0;
}

答案 1 :(得分:16)

不,这是不可能的。