社区
C++ 语言
帖子详情
讨论++i和i++谁的效率高?
oosky2004
2005-10-24 10:05:57
rt
这几天看书在讨论数组边界的时候引出的问题。
推荐用++i,因为它的效率比后者高。
...全文
706
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
glimix
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)
追求真理:
++
i为何比i
++
执行
效率高
?
本文深入探讨了C语言中i
++
与
++
i的执行效率差异,解析了不同编译器处理此类语句的方式,以及副作用与顺序点概念对求值顺序的影响。
追求真理:
++
i为何比i
++
执行
效率高
本文探讨了C语言中
++
i与i
++
的区别,指出
++
i在某些情况下可能具有更高的执行效率,这源于编译器对副作用和顺序点的理解。虽然不同编译器的处理方式可能造成结果不一致,但在没有后续使用i的情况下,现代编译器可以优化掉i
++
的额外步骤,使得两者效率相当。
C语言灵魂拷问:
++
i 为比 i
++
效率高
?
本文深入解析了C语言中i
++
和
++
i的执行顺序和效率差异,探讨了编译器处理后的不一致性,并揭示了求值顺序在printf和复杂表达式中的影响。重点介绍了副作用、顺序点和编译优化对结果的影响。
C语言灵魂拷问:
++
i为何比i
++
执行
效率高
!有何区别?
本文详细探讨了C语言中i
++
和
++
i的差异及其对程序执行效率的影响。通过具体实例分析了不同编译器下这两种自增运算符的表现,并解释了背后的原因。
快来看看C语言的灵魂拷问:
++
i为何比i
++
执行
效率高
?你知道吗?
本文深入探讨了C语言中i
++
和
++
i的执行效率问题,通过对比不同编译器下的表现,解析了副作用与顺序点概念,揭示了求值顺序对结果的影响。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章