java中的i++与++i

i++是在操作完成之后执行一次i=i+1,而++i则是在操作完成之前执行一次i=i+1。具体什么是操作完成,个人认为在java中应该是一步基本运算。因为java对于自增减运算符存在一个中间缓存变量机制。
对于i++来说,先将i存入一个中间变量temp,再将i自增1。即 
temp=i;
i=i+1;
这个temp被用来参与实际的运算。
例如
int a=0,i=1; 
a=(i++)+(i++);
求a与i的值?
一步一步来,第一个(i++)先缓存当前i的值到temp1:
temp1=i;
i自增:
i=i+1;
temp参与运算此时上式可以视为:
a=temp1+(i++);//此时temp1为1,i为2即a=1+(i++)
下面第二步,对第二个(i++):
temp2=i;//temp2=2
i=i+1;//i=3
temp2参与运算:
a=temp1+temp2=1+2=3;
最后a=3,i=3;
对于++i来说同理,只不过是先自增,再创建缓存变量:
i=i+1;
temp=i;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值