范围解析运算符,如果存在三个变量

时间:2013-03-03 07:15:19

标签: c++ scope

我刚开始学习c ++。我遇到了范围解析运算符,我尝试了类似这样的程序

#include <iostream>
using namespace std;

int i = 40;
int main(){
    int i = 20;
    {  
        int i = 10;
        cout<< ::i;  // prints 40
        cout<<i;    // prints 10
        cout << i;  // how do i print variable i whose value is 20 
    }
}

但是如果我想在main()的内部块中访问变量i(i = 20)。我怎么做?可能吗?这可能是愚蠢的,但我不知道c ++的所有内置函数。所以想知道是否有任何方法可以做到这一点。感谢

1 个答案:

答案 0 :(得分:1)

我认为可以使用namespaces完成此操作。

#include <iostream>
using namespace std;
namespace inner{int i;}
int i = 40;
int main() {
    inner::i = 20;
    {
        int i = 10;
        cout<< ::i;  // prints 40
        cout<<i;    // prints 10
        cout << inner::i; // this prints 20
    }
}

我希望这可以在代码中用于几个i

编辑答案会在语义上更改程序,因为它会使内部i成为全局变量。