首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

for语句里的变量生命周期有关问题

2012-03-03 
for语句里的变量生命周期问题。在for语句括号里声明的变量,在devc++里会将变量的生命周期限制在循环里面,而

for语句里的变量生命周期问题。
在for语句括号里声明的变量,在dev   c++里会将变量的生命周期限制在循环里面,而VC却将它的生命周期继续延续到文件结尾。我到底该用哪种习惯呢?

比如在以下代码中:
#include <iostream>
using   namespace   std;
int   main()
{  
        for(int   i=100;i <=300;i++)
        {
                cout < <i < <endl;
        }
        cout < <i+1 < <endl;
        system( "pause ");
        return   0;
}

如果在dev   c++中,编译是无法通过的,错误如下:
H:\C++\test.cpp   In   function   `int   main() ':  
H:\C++\test.cpp   name   lookup   of   `i '   changed   for   new   ISO   `for '   scoping  
H:\C++\test.cpp       using   obsolete   binding   at   `i '  
但是如果在VC下就可以。
如果在循环之后再定义一次int   i   =   301;
dev   c++是通过了,但是VC又通不过了。
两个不同标准之间,我该如何选择呢?
先谢过~~~~~~~~

[解决办法]
vc6 对标准支持不好
你用vs2005 就会得到和devcpp一样的结果了
[解决办法]
局部变量的生命周期在定义的{}两个花括号中间。

VC通不过是不对的,按照dev c++标准走是正确的。
[解决办法]
VC的不够标准,dev的符合标准,如果你要考虑移植性,建议还是分开定义变量名
[解决办法]
vc6对标准的支持一塌糊涂
你试试这个:

const int i=5;
int ia[i];

vc6就通不过

vc2003 vc2005就和标准靠近多了

热点排行