如果在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 夜雨祝福语简短10字
16 蛋糕祝福语简短闺蜜
17 部门过年祝福语简短独特
18 简短精炼的结婚祝福语