如果在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 婆婆高寿祝福语大全简短