黑马程序员技术交流社区

标题: i++和++i哪个运算速度更快 [打印本页]

作者: 吴承烨    时间: 2013-6-17 21:38
标题: i++和++i哪个运算速度更快
本帖最后由 吴承烨 于 2013-6-18 20:54 编辑

如题,i++和++i哪个运算速度更快.大学老师说,++i比i++速度快,不知道有没有什么依据.
++i直接先加,i++先用在加?所以++i更快?好像不是这么简单.

作者: 蔡志涛    时间: 2013-6-17 21:58
本帖最后由 蔡志涛 于 2013-6-17 22:39 编辑

运算速度我不大清楚,不多++i和i++在表达式中的运算顺序是有区别的,++i是i 自身先加1然后在计算表达式,i++是先运算表达式然后i再加1
作者: nilaoyededie    时间: 2013-6-17 22:05
前置++ 返回当前对象的引用,返回的只是一个地址,很快

后置++ 返回一个原对象的备份,要调用二次拷贝构造函数和二次析构函数,即使使

用RVO优化返回值也需要一次构造和一次析构,所以当类复杂时,开销很大
作者: 成都—陈超    时间: 2013-6-18 09:34
总体来说研究这个没什么特别的意义,其实从编程的角度来说后者更好,世界上99.9%的情况不需要对这种东西做优化,反而是程序代码越清晰越好,可读性往往大于优化。再者说真要做这种程度的优化的话,往往也用汇编写了
作者: 王洪磊    时间: 2013-6-18 09:39
重点是在于++i与i++的区别
1.在单独使用的时候i++ 和++i效果相同如 i++; 或++i;一样。
2.要是放在执行语句中时,两个的意义就不一样了如 while(i++<6)意思是先执行后运算,也就是先判断i<6后再i=i+1;相反while(++i<6)意思是先运算后执行,也就是先i=i+1后判断i<6;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2