2

我刚开始学习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 
    }
}

但是如果我想访问内部块中的变量 i (i=20) main()。我怎么做?可能吗?这可能很愚蠢,但我不知道 C++ 的所有内置函数。所以想看看有没有什么办法。谢谢

4

1 回答 1

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成为全局变量。

于 2013-03-03T07:52:13.123 回答