首页 > 代码库 > "i++"和"++i"
"i++"和"++i"
转自:race604
http://blog.csdn.net/race604/article/details/6807992
1 功能区别
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i;先执行增1操作,再做表达式运算;
而 a = i++,相当于 a = i; i=i+1;先执行表达式操作,再做增1操作;
例如:
- int i = 7;
- printf( "%d\n ", --i * ++i); // 结果为49
int i = 7; printf( "%d\n ", --i * ++i); // 结果为49相当于:
- --i;
- ++i;
- i*i;
--i;++i;i*i;
结果自然为49;
2 效率差别
i++的工作过程是这样的:用一个临时变量temp存放i的值,然后i增一,返回temp
++i的工作过程是这样的:i增一,返回i的引用
因此++i没有创建其他对象,从理论上讲,++i的速度要比i++要快
--也是一样的.
++i的工作过程是这样的:i增一,返回i的引用
因此++i没有创建其他对象,从理论上讲,++i的速度要比i++要快
--也是一样的.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。