C++的语句块
今天学习C++,发现了一个神奇的东西,刷新了我的认知。
首先介绍以下语句块(复合语句),它是由一对花括号和它们包含的语句组成,被视为一条语句。下面这段代码便是一个语句块。
{
int x = 100;
cout << x << endl;
}
书上提出的问题,如果在一个语句块中声明一个变量,而外部语句块中也有一个这种名称的变量,情况会如何呢?
#include <iostream>
int main()
{
using namespace std;
int x = 20;
{
cout << x << endl;
int x = 100;
cout << x << endl;
}
cout << x << endl;
}
请看输出结果:
20
100
20
因此,从内部语句块该变量的声明处到内部语句块结束,新变量会隐藏旧变量,而在程序的其他位置仍然是旧变量其作用。