i++ 和 ++i 以及 i= i + 1 的运行效率

本文探讨了i=i+1、i+=1及i++三种不同表达式的执行效率,并详细解析了每种情况下的执行步骤。通过比较,揭示了在理论上i++具有最高的效率。然而,实际中由于编译器的优化作用,这些差异可能并不明显。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多时候我们都只把注意力放在 i++和++I 上,
它们的区别只是一个先加再用和先用再加而已,而这三者的运行效率很少有人考虑;
今天老师问到才去探究;
i = i + 1    ,i + = 1及 i++ 的效率哪个最高?为什么? 
首先 i = i + 1最低,因为它的执行如下:

(1)   读取右i的地址;
(2)   x+1;
(3)  读取左i的地址;
(4)  将右值传给左边的i(编译器并不认为左右i的地址相同)。

i+=1其次,它的执行如下:

(1)读取i的地址;
(2)i+1;
(3)将得到的值传给i(因为i的地址已经读出)。

i++最高,它的执行如下:
(1)读取右x的地址;
(2)x自增1.

但是,在实际编译的时候,因为编译器会自动优化,所以这三种执行效率貌似看不出什么区别;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值