C++ 访问嵌套块内重定义的变量

C++ 访问嵌套块内重定义的变量,c++,C++,考虑以下程序: #include <iostream> using std::cout; int i = 10; int main() { int i = 9; { int i = 8; { int i = 7; cout << i << "\n"; // i = 7 cout << ::

考虑以下程序:

#include <iostream>
using std::cout;
int i = 10;

int main() {
     int i = 9;
     {
          int i = 8;
          {
                int i = 7;
                cout << i << "\n";   // i = 7
                cout << ::i << "\n"; // i = 10 (global i)

                // How could we access to other i declarations here?
          }
     }
     return 0;
}
#包括
使用std::cout;
int i=10;
int main(){
int i=9;
{
int i=8;
{
int i=7;

不能声明一个新的变量名,类似于'j'而不是'i'

#include <iostream>
using std::cout;
int i = 10;

int main() {
     int i = 9;
     {
          int j = 8;
          {
                int j = 7;
                cout << j << "\n";   // j = 7
                cout << ::i << "\n"; // i = 10 (global i)

                // How could we access to other 
       i declarations here?
          }
     }
     return 0;
    }
#包括
使用std::cout;
int i=10;
int main(){
int i=9;
{
int j=8;
{
int j=7;

简言之,这是不可能的。所以不要这样做。如果需要访问外部作用域变量,没有办法使用不同的名称。为什么要编写这样的代码?请参阅@CodyGray,just curiousity:)