2

我的老师给了我一个问题(С++): 之后屏幕上会打印什么:

{
     int a = 2;
     cout << a << endl;
     {   
         int a=7;
         cout << a << endl;
     }
     cout << ++a << endl;
}

我想知道有什么复杂的吗?或者只是重复的标识符a?或者这样的大括号到处都有任何特定的效果,并且可能没有错误?当变量在外部不存在时,就像在函数中一样。它可以在大括号之外吗?这些牙套是干什么用的?

4

2 回答 2

6

在这种情况下,大括号界定了变量的范围。内大括号基本上声明了一个新变量a,隐藏了外部变量。

相当于

{
   int a=2;
   cout<<a<<endl;
   {   
     int b=7; cout<<b<<endl;
   }
   cout<<++a<<endl;
}

a除了在内部范围内不可用的例外。

输出将是

2
7
3
于 2012-08-15T22:37:31.550 回答
1

大括号形成一个新的范围。a内部块中的变量与外部a块中的变量不同。

于 2012-08-15T22:37:45.137 回答