虽然经常看到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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。