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

And*_*kha 10 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;
}
Run Code Online (Sandbox Code Playgroud)

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

Xeo*_*Xeo 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;
}
Run Code Online (Sandbox Code Playgroud)

  • @Violet:在内部作用域中,只要不通过创建具有相同名称的变量来遮蔽它们,外部变量仍然可见.在这里,我在隐藏它之前创建了对外部变量的引用.因此,易于访问与参考. (2认同)

Oli*_*rth 16

不,这是不可能的.

  • 我想知道你是如何得到这样一个简短的回答; 然后我看了看源头. (4认同)
  • @Oli ......你认真吗? (3认同)
  • @OliCharlesworth不,您的评论绕过了SO的限制.这就像是说你的帖子没有得到足够的赞成票,所以你用sockpuppets"解决它".答案有一个最小字符限制的原因; 你可以尝试用你的"不"包含某种解释 - 引用规范或其他东西 (3认同)