通常情况下,如果有两个同名变量,一个是全局的,另一个是局部的,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。
如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::”,此时::avar代表全局变量,“::”称为作用域运算符。
例1: 全局变量和局部变量同名。
#include<iostream>
using namespace std;
int avar=10; //全局变量avar
int main(){
int avar; //局部变量avar
avar=25;
cout<<"avar is "<<avar<<endl; //将会输出avar is 25
return 0;
}
例2: 作用域运算符的使用。
#include<iostream>
using namespace std;
int avar=10; //全局变量avar
int main(){
int avar; //局部变量avar
avar=25;
cout<<"local avar is "<<avar<<endl; //将会输出 local avar is 25
cout<<"global avar is "<<::avar<<endl; //将会输出 global avar is 10
::avar=80;
cout<<"avar is "<<avar<<endl; //将会输出 avar is 25
cout<<"avar is "<<::avar<<endl; //将会输出 avar is 80
return 0;
}