For在VC6.0和VS2010编译器下的作用域问题

   根据c++标准,在for的初始语句中声明的变量,其作用范围是从它定义的位置开始,一直到for所带语句的作用域结束。 

  由于VC6.0对C++标准的支持性不是太好,导致了在for定义的变量在for外部仍可返回。看下面的代码:

 #include <iostream>
using namespace std;

int main()
{

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

}

cout<<i<<endl;

return 0;
}

 在VC6.0上面运行正常,输出5;

 在vs2010显示错误: error C2065: “i”: 未声明的标识符;




原文地址:https://www.cnblogs.com/youxin/p/2434470.html