+ -
当前位置:首页 → 问答吧 → 如果一个for语句里面的计数器有一个自加运算的话是不是看着很奇怪?

如果一个for语句里面的计数器有一个自加运算的话是不是看着很奇怪?

时间:2010-06-22

来源:互联网

很久之前看到的,当时感觉很奇怪,有这么写代码的吗?

for循环的步长不都在()里面定义吗?

作者: fender0107401   发布时间: 2010-06-22

比如?

作者: 没本   发布时间: 2010-06-22

我感觉是写错了,逻辑错误吧。

作者: fender0107401   发布时间: 2010-06-22

C并没有具体限制for的写法

作者: hellioncu   发布时间: 2010-06-22

本帖最后由 放纵思想 于 2010-06-22 21:18 编辑
  1. int main()
  2. {
  3.         int i=0;
  4.         for(;;)
  5.         {
  6.                 printf("Item %d\n",i);
  7.                 i++;
  8.                 if(i>9) break;
  9.         }
  10.         return 0;       
  11. }
复制代码
  1. int main()
  2. {
  3.         int i=0;
  4.         for(;i<=9;)
  5.         {
  6.                 printf("Item %d\n",i);
  7.                 i++;       
  8.         }
  9.         return 0;       
  10. }
复制代码

作者: 放纵思想   发布时间: 2010-06-22

for( 1.初始化语句,只执行一遍; 2.条件判断语句,取布尔值; 3.调整循环变量值语句,除首遍循环外在2.之前执行 )
基本是这样吧,这三条语句具体是什么没限制的,只是2.要能取值就行了,直接调用void func()之类的函数会编译出错。

作者: 没本   发布时间: 2010-06-22

上面的例子到是挺有意思的,

问题是我当时看的时候for语句开头的()里面已经有定义了,所以我觉得很奇怪,

那执行起来不成了1 3 5 7 9吗?

要是有意为之,干吗不直接设定步长为2呢?

作者: fender0107401   发布时间: 2010-06-22

有时候步长不是固定的。

作者: lenovo   发布时间: 2010-06-22