这个语句中的i能不能在这个循环结束后下面的语句中使用,像这样?不能的话要重新定义吗?

[复制链接]
查看11 | 回复4 | 2009-7-24 09:45:52 | 显示全部楼层 |阅读模式
可以在下面的语句使用。但是一般习惯是不这样用,用另一个变量替换之,这样比较清楚,不容易出现问题。而且一般是这样for(i=1;i<=10;i++)此时i=11.可以用在下面但是一般会在下一个for中这样用for(i=1;i<=20;i++)此处i重新被赋值为1。你可以自己用printf试一下值就知道了在for里面printf一个在for循环后printf一个总结:可以用在下面的语句。但是,必需保证你没有重新给他赋值的情况下
回复

使用道具 举报

千问 | 2009-7-24 09:45:52 | 显示全部楼层
不能。需要重新定义。如果你在后面要用的话就这么写:int i;for (i=0;i<stringList.size();i++){//......}//...i=5//...
回复

使用道具 举报

千问 | 2009-7-24 09:45:52 | 显示全部楼层
实现C++ ISO标准的编译器会报告错误。早期的Visual C++如6.0可以这样使用。
回复

使用道具 举报

千问 | 2009-7-24 09:45:52 | 显示全部楼层
不可以,它是for循环的局部变量
回复

使用道具 举报

千问 | 2009-7-24 09:45:52 | 显示全部楼层
for里面的定义的i不能在后面使用,因为作用域不同。需要重新定义。有的编译器可以,有的编译器不可以。但是这个写法不倡议。还是按照严格的规定来写,要作用在哪一个作用域就只能写在这个作用域内并使用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行