Chinaunix

标题: 关于for语句中定义的变量 的作用域. [打印本页]

作者: 海子的情书    时间: 2011-03-19 17:31
标题: 关于for语句中定义的变量 的作用域.
OK! 刚刚在百度百科里查找冒泡法排序的 时候发现了 for中定义的变量 生命期,不只在括号里.请问有人知道怎么回事吗
作者: wb112200    时间: 2011-03-19 17:59
for(int i=0; i<5; i++)
{
    int b = 0;
    //....
}

是说的这里的变量 i 吧  b 应该是只能在 {}中使用的
作者: egmkang    时间: 2011-03-19 18:02
有可能是这样写的
int i=0;
for(;i<10;++i){}

这样的话,作用域确是就不止是在括号里面了
作者: pmerofc    时间: 2011-03-19 18:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: rover12421    时间: 2011-03-19 18:48
for(int i=0; i<j; i++)
{...}

目前发现VC6 i 的作用域不只for{}
VS2008之后,i的作用域就只在for{}里了
其他的就不知道了
作者: nizvoo    时间: 2011-03-20 11:08
编译器的问题。
作者: wb112200    时间: 2011-03-21 14:02
回复 4# pmerofc


    这个就不清楚了 我在VC6.0下搞的》。。
作者: adong7639    时间: 2013-04-15 16:17
gcc, vs2010下测试
i 的作用域就只在for{}里了
        int i;
        for ( int i = 0 ; i < 10 ; i++)
        {
                cout<<i<<" ";
        }
代码中两个i 不算是重复定义




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2