社区
C++ 语言
帖子详情
讨论++i和i++谁的效率高?
oosky2004
2005-10-24 10:05:57
rt
这几天看书在讨论数组边界的时候引出的问题。
推荐用++i,因为它的效率比后者高。
...全文
675
24
打赏
收藏
讨论++i和i++谁的效率高?
rt 这几天看书在讨论数组边界的时候引出的问题。 推荐用++i,因为它的效率比后者高。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
逸学堂
2005-10-26
打赏
举报
回复
(VC)对于内置类型,写++变量和变量++
编译器都经过优化,采用++变量的方式。
看看编译后的汇编
13: int i(1);
0040D425 mov dword ptr [ebp-0Ch],1
14: ++i;
0040D42C mov ecx,dword ptr [ebp-0Ch]
0040D42F add ecx,1
0040D432 mov dword ptr [ebp-0Ch],ecx
15: i++;
0040D435 mov edx,dword ptr [ebp-0Ch]
0040D438 add edx,1
0040D43B mov dword ptr [ebp-0Ch],edx
但是对于自定义类对象
如果重载先++,和后++操作符
那么要使用先++,因为这时编译器,不可能对你的类型进行优化!
Maconel
2005-10-26
打赏
举报
回复
++i效率高。
不过现在一般的编译器,vc,c++builder等,都已经优化了,一般情况应该没什么区别。
struggle813
2005-10-26
打赏
举报
回复
++i相当于x = x+1;i++相当于y=(t=x,x=x+1,t)所以++i没有额外的开销.
csucdl
2005-10-26
打赏
举报
回复
哦!!!
goodluckyxl
2005-10-25
打赏
举报
回复
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=205079
提问时看看faq
我的女神
2005-10-25
打赏
举报
回复
++i效率高。
你可以自己模拟一下。
// 前缀可能的实现
int PreAdd( int *i )
{
*i = *i + 1;
return *i;
}
// 后缀可能的实现
int PosAdd( int *i )
{
int tmep = *i;
*i = *i + 1;
return temp;
}
DiabloWalkOnTheEarth
2005-10-25
打赏
举报
回复
如果是内置类型( char , short , int , long , long long , float , double 等 ) , 上面的效率木有区别, 如果是用户定义类型则依赖于对 + , += , ++ 等操作符的重载.
foochow
2005-10-25
打赏
举报
回复
一般都会被优化了
three1983
2005-10-25
打赏
举报
回复
不仔细调用一下很难分出来哪个 快 具体情况具体分析
pengcyu
2005-10-25
打赏
举报
回复
i++要调用++i吧
ruodeer
2005-10-25
打赏
举报
回复
++i 在C++中是左值吧,返回的是调用对象的引用
i++在c++中是右值吧!产生临时变量保存i。
我用vs测试一下,++i用的时间少!
csucdl
2005-10-25
打赏
举报
回复
i = i + 1
i += 1
++i
哪个效率高
conglingkaishi
2005-10-25
打赏
举报
回复
++i是左值,是在一个存储单元直接作用,i++会产生临时变量来保存i的值,使用过后再作++运算。如果我没记错的话,呵呵。
Pigwen
2005-10-25
打赏
举报
回复
随便拿一个类来重载这两个运算符就知道了呀。
danscort2000
2005-10-25
打赏
举报
回复
发现了现代版本的茴字有4种写法
codearts
2005-10-25
打赏
举报
回复
对int这种类型来说,应该一样吧
对iterator这些东西,++i应该快
PMsg
2005-10-24
打赏
举报
回复
后者使用了前者
kangtian0
2005-10-24
打赏
举报
回复
++i效率高
chengming1944
2005-10-24
打赏
举报
回复
有什么不同吗?
herman~~
2005-10-24
打赏
举报
回复
一个先赋值后加,一个先加后赋值
效率应该一般吧?
加载更多回复(4)
C语言灵魂拷问:
++
i 为比 i
++
效率高
?
唯一知道的是,几乎所有C语言教材都这么讲:i
++
就是先使用i的值再使i自身加一,而
++
i则是先使i自身加一,然后在使用i的值。出于对真理的追求。今天我们彻底弄明白此问题,譬如这样的话:inta,b; inti=10,j=1...
关于i
++
和
++
i在for中的执行效率问题
关于i
++
和
++
i执行的一系列问题
++
i比i
++
好?---没有意义! i
++
比i = i + 1好?---仅有一点意义!
经常听到有人谈论, 为什么
++
i的效率比i
++
高, 还
讨论
得... 如果你要跟我说什么逆波兰的
效率高
, 我也不敢兴趣。 但是, 如果你跟我说,对于程序员来说, i
++
比i = i + 1的书写更方便简洁,更有开发效率, 那我肯
循环语句中
++
i 和 i
++
的区别
关于在循环语句中
++
i 和 i
++
的使用问题 在C
++
程序的编写中,我们会因为自己的习惯,对for... 就结果而言,这两种书写方式所达到的效果是一样的,硬要说他们的区别的话,无非
++
i 的效率更高些。也就是说,就问题中...
i
++
与
++
i 的效率哪个更高?
1、... ... ...很多C语言的书上都对i
++
与
++
i运算的区别问题进行了说明,但很多人只是强行记住了二者的区别,而未对其进行深入的思考。我也是如此,所以今天我尝试对这个问题进行一下更深入的学习。
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章