【发布时间】:2014-10-11 00:34:21
【问题描述】:
#include <iostream>
using namespace std;
int x=24 ;
int main()
{
int x=0;
{
int x=5 ;
::x= x+2 ;
}
cout<<::x<<endl ;//first
cout<<x<<endl ; // second
return 0;
}
在这个简单的示例中,我使用的是代码块,并且我知道我可以使用范围解析运算符修改全局变量。 我在这个例子中修改了全局变量,但我想知道是否有办法修改特定范围内的变量,如主函数(不需要(范围解析运算符)方式) 这意味着在这个例子中我需要第一个输出是 24 和下一个 7 。 对不起我的英语我希望能理解这个问题
【问题讨论】:
-
问题是在赋值中(第 9 行)你用 7 覆盖了 24,所以全局 x==7、主 x==0 和内部 x 丢失了。
-
请不要从字面上看这个例子你知道在这个范围内修改 main 中的 x 的方法