i++的理解

介绍

正常使用i++100%的程序员都会做,但是i=i++呢??

示例

public class IPlusePluse {
    public static void main(String[] args) {
        int i=0;
        i=i++;
        System.out.println("i="+i);
    }
}

输出结果:

i=0

遇到这种情况程序员也很无奈,不知道怎么下手!!因为这都是概念性的问题!!

那么i++的执行过程到底是怎么样的呢??

正确计算过程:我们首先会知道i的初始值为0,然后i作自增计算变成了1。根据i++的意思,"先用后加",所以我们这里就会返回0作为结果,i虽然经过自增后变成了1,但是经过赋值就变成了0;所以这里有个关键点:i=i++ 其中i++总是一个表达式,而如果要想完成赋值,我们就得把i++表达式先完全计算出来才行!!最终才会完成赋值!!!

由于计算机无法和人一样把数据映射到脑海里,所以JVM在运算i++过程中就会创建中间变量,这个变量是外界不可见的!!

所以在i++这个过程中,会创建一个中间变量,该中间变量存储0,而i会自增加1变成1。因为i++的规则是"先用后加"所以会把中间变量的值赋值给前面的i,最终输出结果为0;

i++和++i都是这么分析的,这里笔者就不再赘述!!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值