如果在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 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短