C++:嵌套的作用域

#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变量。

posted @ 2020-09-05 16:05  //Mendax  阅读(208)  评论(0编辑  收藏  举报