免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3889 | 回复: 13
打印 上一主题 下一主题

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

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-22 20:30 |只看该作者 |倒序浏览
很久之前看到的,当时感觉很奇怪,有这么写代码的吗?

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

论坛徽章:
0
2 [报告]
发表于 2010-06-22 20:33 |只看该作者
比如?

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
3 [报告]
发表于 2010-06-22 20:35 |只看该作者
我感觉是写错了,逻辑错误吧。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
4 [报告]
发表于 2010-06-22 20:53 |只看该作者
C并没有具体限制for的写法

论坛徽章:
1
摩羯座
日期:2013-11-14 15:56:09
5 [报告]
发表于 2010-06-22 21:17 |只看该作者
本帖最后由 放纵思想 于 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. }
复制代码

论坛徽章:
0
6 [报告]
发表于 2010-06-22 21:24 |只看该作者
for( 1.初始化语句,只执行一遍; 2.条件判断语句,取布尔值; 3.调整循环变量值语句,除首遍循环外在2.之前执行 )
基本是这样吧,这三条语句具体是什么没限制的,只是2.要能取值就行了,直接调用void func()之类的函数会编译出错。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
7 [报告]
发表于 2010-06-22 21:32 |只看该作者
上面的例子到是挺有意思的,

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

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

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

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2010-06-22 23:11 |只看该作者
有时候步长不是固定的。

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
9 [报告]
发表于 2010-06-23 09:56 |只看该作者
C太灵活了,让很多人不适应。

论坛徽章:
0
10 [报告]
发表于 2010-06-29 16:16 |只看该作者
有时候步长不是固定的,这个在解析文本文件的时候有时会这么用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP