我的老师给了我一个问题(С++): 在以下情况下将在屏幕上打印的内容:
{
int a = 2;
cout << a << endl;
{
int a=7;
cout << a << endl;
}
cout << ++a << endl;
}
我想知道有什么复杂的东西吗?或者只是重复的标识符?或者这样的大括号到处都有任何特定的效果,它可能没有错误?就像函数中的变量不存在于外部时一样。它可以在支架块之外吗?这些大括号是什么?
答案 0 :(得分:6)
在这种情况下,大括号界定了变量的范围。内括号基本上声明了一个新变量a
,隐藏了外部变量。
相当于
{
int a=2;
cout<<a<<endl;
{
int b=7; cout<<b<<endl;
}
cout<<++a<<endl;
}
,但a
在内部范围内不可用。
输出为
2
7
3
答案 1 :(得分:1)
大括号形成一个新的范围。内部块中的变量a
是与外部块中的a
不同的变量。