x++ 和 ++x

int x=0
int y=++x + x++ + x++
先计算++x,则变为int y=1 + x++ + x++,此时x=1;再计算x++,因为是先使用x再进行自增运算,所以变为int y=1 + 1 + x++,此时x为2;继续计算x++,同理,先使用x再进行自增运算,所以变为int y=1 + 1 + 2,此时进行x自增运算,x为3。

即x++是先赋值后加1,++x是先加1然后赋值。

下面是字节码文件分析:

preview

p++分3步执行,执行后p的值在内存中被更新,但是后续使用这个表达式的值用的是加1之前的值(存在寄存器里)。

++p分两步执行,之后使用这个表达式的值用的是内存里p更新后的值(如果不用值一条指令就够了)。

如下例:




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值