小编Ayu*_*ngh的帖子

在循环中重新声明for循环变量时出错

考虑一下C程序的片段:

for(int i = 0; i < 5; i++)
{
    int i = 10;  // <- Note the local variable

    printf("%d", i); 
}    
Run Code Online (Sandbox Code Playgroud)

它编译没有任何错误,并在执行时,它提供以下输出:

1010101010
Run Code Online (Sandbox Code Playgroud)

但是如果我在C++中编写类似的循环:

for(int i = 0; i < 5; i++)
{
     int i = 10;

     std::cout << i; 
}
Run Code Online (Sandbox Code Playgroud)

编译失败,出现此错误:

prog.cc:7:13: error: redeclaration of 'int i'  
     int i = 10;  
         ^  
prog.cc:5:13: note: 'int i' previously declared here  
     for(int i = 0; i < 5; i++)  
             ^   
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

c c++ for-loop

24
推荐指数
2
解决办法
1255
查看次数

标签 统计

c ×1

c++ ×1

for-loop ×1