C++中i+=3跟i=i+3 执行速度上会有差异吗?

网上都说i =3比较,这是为什么呢?  希望知道的大佬给讲解一下,感谢😊#笔试题目##C/C++#
全部评论
两种的写法都是是i加1,但是i = i + 3计算出右值后会存入一个临时变量然后赋给左侧的 i, 而i += 3是在 i 本身上做计算, 所以效率会有一点点提升。
点赞 回复 分享
发布于 2019-06-01 09:00
楼上正解…但我想说在编译器那都会优化成i+=3,所以其实考虑这些东西挺无聊的
点赞 回复 分享
发布于 2019-06-01 11:21
没什么意思,学计算机纠结这些底层语句就是误入歧途了。
点赞 回复 分享
发布于 2019-06-01 12:22
应该从汇编解释把,不懂汇编。 但是如果只是一条语句,我会写i += 3,不是他快不快(其实编译器对于i = i+3也做了优化了吧),只是为了显示代码“大气”。。就和构造函数中初始化和赋值的问题,在功能看起来一样,但是看起来就是舒服。
点赞 回复 分享
发布于 2019-06-01 08:32
直接看看汇编代码不就行了吗
点赞 回复 分享
发布于 2019-06-01 12:21
应该说绝大多数人的编程水平还达不到需要考虑这些问题的时候。
点赞 回复 分享
发布于 2019-06-01 12:26
+=  和=+是不同的两种写法。+=内部会自己进行优化,你可以进行1000000个数进行相加,看下最后跑出来的时间是否一样
点赞 回复 分享
发布于 2019-06-01 12:27
只要编译器不蠢就无差异。 实际工作建议写后者。
点赞 回复 分享
发布于 2019-06-01 13:02
g++ -O2选项生成的汇编代码没有任何区别。
点赞 回复 分享
发布于 2019-06-01 13:12
现代编译器的优化程度,这点小case没问题的
点赞 回复 分享
发布于 2019-06-01 14:23
考虑这个没什么意义
点赞 回复 分享
发布于 2019-06-01 15:19
感谢大家🤔
点赞 回复 分享
发布于 2019-06-01 22:47
我测试过。
点赞 回复 分享
发布于 2019-06-03 11:08
被优化成一样
点赞 回复 分享
发布于 2019-06-03 11:08
这两个本质上是不同的操作,如果你有操作符重载的话,差别可能会很大,比如字符串
点赞 回复 分享
发布于 2019-06-04 23:15

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务