关于java:深刻理解-i和-i的区别

34次阅读

共计 534 个字符,预计需要花费 2 分钟才能阅读完成。

尽管常常看到 i ++,++ i 然而还是容易搞混同。
上面是他们的区别:
i++ 和 ++ i 的区别:
1、i++ 返回原来的值,++i 返回加 1 后的值。
2、i++ 不能作为左值,而 ++ i 能够。
3、i++ 前者是先赋值,而后再自增;++ i 后者是先自增,后赋值
他们的后果都是将 i 进行了加一的操作。

如果有表达式 a = i++;它等价于 a = i;i = i + 1;
如果有表达式 a = ++i;它等价于 i = i + 1;a = i;

++ i 和 i ++ 都是分两步实现的。因为 ++i 是前面一步才赋值的,所以它可能当作一个变量进行级联赋值,++i =;a =b,即 ++ i 是一个左值(可被寻址的值);i++ 的前面一步是自增,不是左值。

    public static void main(String[] args) {int[]  nums ={1,2,3,4};
        int j=0;
        int i=0;
        int k=0;
        System.out.println(j++);// 先应用 j,而后再将 j +1
        System.out.println(j);
        System.out.println(nums[i++]);
        System.out.println(nums[++k]);// 应用 k 之前先进行 + 1 的操作
        System.out.println(k);
    }

运行下面的代码,输入值应该是 0,1,1,2

正文完
 0