如果在C ++中存在具有相同名称的局部变量,如何访问全局变量?
在下面的示例中,
我们看到有一个局部变量与全局变量同名。如果执行以下程序,则输出为:
#include <iostream>
using namespace std;
//全局变量
int var = 10;
int main(){
//局部变量
//外部范围
int var = 5;
{
//内部范围
int var = 1;
cout << "var(inner scope): " << var << endl;
}
cout << "var(outer scope): " << var << endl;
return 0;
}输出:
var(inner scope): 1 var(outer scope): 5
在上面的示例中,我们看到全局变量也被声明为局部变量,这就是为什么它采用局部范围值的原因。为确保使用全局范围值,我们需要使用范围解析运算符来填充全局范围值。
下面是修改后的版本:
#include <iostream>
using namespace std;
//全局变量
int var = 10;
int main(){
//局部变量
//外部范围
int var = 5;
{
//内部范围
int var = 1;
cout << "var(inner scope): " << var << endl;
//使用范围解析运算符访问全局值
cout << "var(global value in inner scope): " << ::var << endl;
}
cout << "var(outer scope): " << var << endl;
//使用范围解析运算符访问全局值
cout << "var(global value in outer scope): " << ::var << endl;
return 0;
}输出:
var(inner scope): 1 var(global value in inner scope): 10 var(outer scope): 5 var(global value in outer scope): 10
热门推荐
10 祝孙辈生日祝福语简短
11 恋人跨年祝福语大全简短
12 考大学敬酒简短祝福语
13 开工投产大吉祝福语 简短
14 偶然结婚祝福语朋友简短
15 感谢学长学姐祝福语简短
16 戏精的祝福语简短
17 我要结婚祝福语简短
18 婚前女儿生日祝福语简短