1.全局变量和局部变量同名时:局部变量优先级更高,全局变量被屏蔽
#include<iostream>
using namespace std;
int age=1;
int main(){
cout<<"main中的age="<<age<<endl;
int age=3;
cout<<"main中的age="<<age<<endl;
}
2.要想在局部变量作用域中调用同名全局变量,可以使用 :: 作用域运算符。
C++规定,当缺省::左侧对象时,默认为全局变量。
#include<iostream>
using namespace std;
int age=1;
int main(){
cout<<"main中的age="<<age<<endl;
int age=3;
cout<<"main中的age="<<age<<endl;
cout<<"main中的age="<<::age<<endl;
}
3.main函数调用自己的局部变量,main函数调用的其他函数(如果没有形参)调用的是全局变量!!!!(重要)
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
int age=45;
void display1(){cout<<setw(17)<<"display1中的age:"<<age<<endl;}
void display2(){cout<<setw(17)<<"display1中的age:"<<age<<endl;}
int main(){
int age=100;
cout<<setw(17)<<"main中的age:"<<age<<endl; //main调用局部变量
display1();//调用全局变量
display2(); //调用全局变量
}
4.main函数调用自己的局部变量,main函数调用的其他函数(如果有形参)调用的是局部变量!!!!(重要)
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
int age=45;
void display1(){cout<<setw(17)<<"display1中的age:"<<age<<endl;}
void display2(int age){cout<<setw(17)<<"display1中的age:"<<age<<endl;}
int main(){
int age=100;
cout<<setw(17)<<"main中的age:"<<age<<endl; //main调用局部变量
display1();//调用全局变量
display2(age); //有参数 调用局部变量
}