对于很多Java刚入门的朋友来说很难的自增自减运算符终于解决啦 ++,--

对于下述的这样一道题,是不是让很多人头疼欲裂呢

 对于上面的问题,当然编译器立刻立就可以搞定。得出以下的结果13.

讲解细节前大家需要知道的是:

i++是先将i的值进栈,然后在自增,完了之后再将自增后的值存储在数值型的变量空间i中。

i--是先将i的值进栈,然后在自减,完了之后再将自减后的值存储在数值型的变量空间i中。

++i是先自减,然后将自减后的值进栈,完了之后再将自减后的值存储在数值型的变量空间i中。

--i是先先自减,然后将自减后的值进栈,完了之后再将自减后的值存储在数值型的变量空间i中。

具体执行细节如下:

int a = 2;
int b = 3;
int c = 4;
int num = a++ + --b - --a + --c + ++c + c++;

先从常量池中找到2然后复制一份放入变量空间int类型的变量空间a中。

然后从常量池中找到3然后复制一份放入变量空间int类型的变量空间b中。

然从常量池中找到4然后复制一份放入变量空间int类型的变量空间c中。

a++是先将c的值进栈(进入的值是2),然后在自增,完了之后再将自增后的值存储在数值型的变量空间a中。

然后+号进栈

然后--b是先自减将自减后的值存储在数值型的变量空间b中,然后将b空间的值进栈(进入的值是2)。

然后-号进栈

然后--a是先自减将自减后的值存储在数值型的变量空间a中,然后将b空间的值进栈(进入的值是2)。

+号进栈

然后--c是先自减将自减后的值存储在数值型的变量空间c中,然后将c空间的值进栈(进入的值是3)。

+号进栈

然后++c是先自增将自增后的值存储在数值型的变量空间c中,然后将c空间的值进栈(进入的值是4)。

+号栈

c++是先将c的值进栈(进入的值是4),然后在自增,完了之后再将自增后的值存储在数值型的变量空间c中。

现在栈中由栈底到栈顶存在的元素是2+2-2+3+4+4然后采用某种算法计算得出结果13然后将13存入int型变量num中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小陈呀~

您的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值