#include<iostream> //该程序用于说明:函数内部不宜定义域全局变量同名的新变量 int reused = 66;//reused拥有全局作用域 int main() { int unique = 0;//unique 拥有块作用域 std::cout<<reused<<" "<<unique<<std::endl; //输出#1:使用的是全局变量reused;输出42 0; int reused = 0;//新建局部变量reused,覆盖了全局变量reused std::cout<<reused<<" "<<unique<<std::endl; //输出#2:使用的是局部变量reused;输出0 0; std::cout<<::reused<<" "<<unique<<std::endl; //输出#3:使用的是全局变量reused;输出42 0; return 0; }
输出#1:出现在局部变量reused前,使用了全局变量reused的值;
输出#2:出现在局部变量reused后,使用了局部变量reused的值;
输出#3:使用了作用域操作符::,覆盖了缺省的作用域规则。而全局作用域没有名字,故作用域操作符::前为空时,向全局作用域申请reused变量。