从局部变量表和操作数栈理解 i++ 和 ++i

两个概念:

局部变量表:类被创建后的一小块内存区域,存放当前类的局部变量值
操作数栈:栈帧中的一小块内存区域,专门用于存放计算的中间结果值

三个点:

1:赋值操作其实是把操作数栈中的中间结果值进行计算后再赋值给某个变量,是最后一步操作
2: i++ 是指先把i放入操作数栈中,自身局部变量表中的i变量自增+1
3: ++i 是先把局部变量表i的值自增+1,再放入到操作数栈

例子一:

在这里插入图片描述
输出的b是多少,应该很多人都知道是1,因为大学时候老师说过a++是先使用a,再++
但是a因为++了,所以是2
执行过程:
(1)局部变量表的a被赋值为1,没发生计算,操作数栈空
(2)a ++ ,先把a放入了操作数栈,然后局部变量表a自增+1,所以a=2。这时候赋值给b,赋值操作是把操作数据的1拿出来给b,所以b=1
执行结果:
在这里插入图片描述

例子二:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值