最近开始读c++primer 发现书中的for循环都是这么写的 for(int i = 0;i != 100;++i) 那个!= 和 ++i 不明白

[复制链接]
查看11 | 回复5 | 2011-9-24 15:44:21 | 显示全部楼层 |阅读模式
这样会报错的,说i没有定义,因为你i的定义在for循环中,所以只能在for中使用i变量,如果想在整个程序中都使用,请在循环外定义。刚才在vc6.0中测试了,确实没有报错,但是i变量在出了for后就已经销毁了,这个是vc6.0的问题,在vc8中会报错。作用域是在for后面大括号之间。...
回复

使用道具 举报

千问 | 2011-9-24 15:44:21 | 显示全部楼层
++i前置自加,加1后返回i的值。 i++为后置自加,先返回值,再加1.i != 100当i自加到100时,循环终止。( !=为不等比较,双目运算)i<100i++ 也一样能达到效果。...
回复

使用道具 举报

千问 | 2011-9-24 15:44:21 | 显示全部楼层
i<100和i != 100在这个语言环境下执行的结果是一样的。不解释了,至于i++和++i要说明一下,i++是指在这个语句中(分号结束之前)先用i的值,然后i在+1,而++i指先把i+1,在使用这个值(就是i+1),比如int i=2 ;cout<<++i;结果就是3,int i= 2 ;cout<<i++结果就是2,但是i已经不是2了,如果在int ...
回复

使用道具 举报

千问 | 2011-9-24 15:44:21 | 显示全部楼层
!= 表示不等于,是循环的继续条件,你说的其实也可以。写法不同而已,风格不同...
回复

使用道具 举报

千问 | 2011-9-24 15:44:21 | 显示全部楼层
您好!=是一个逻辑判断符号就是不等于i!=100 是一个表达式,表达式会有一个值 如果成立返回true or else return false!=的执行速度比<快 仅此而已++i的消耗也比i++少 效率高++i会返回一个自身的引用而i++是返回一个临时的值,然后再给自身自增故++i可作左值 而后增不行...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行