C++for语句生命期的问题!

来源:互联网 发布:cuda 8.0 linux下载 编辑:程序博客网 时间:2024/05/23 23:39

今天写代码发现一个有趣的现象!上代码先

#include <iostream>int main(){for(int i=0;i<1;i++){std::cout<<&i<<std::endl;}for(int i=0;i<1;i++){std::cout<<&i<<std::endl;}return 0;}

error C2374: 'i' : redefinition; multiple initialization 出现重新定义错误

然后修改了下:

 

#include <iostream>int main(){for(int i=0;i<1;i++){std::cout<<&i<<std::endl;}for(;i<2;i++){std::cout<<i<<std::endl;}return 0;}

输出结果为i=1,是第一次for循环保留下来的结果!

 

当第一个for循环结束,为何变量还能继续使用?希望老师解答!