java i++ 和 ++i的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38002337/article/details/80299183
	public static void main(String[] args) {
		int i = 1;
		int a = i++;// 先赋值(a=i)在计算(i++) a=i=1 i=i+1=2
		int b = ++i;// 先计算(++i)再赋值(b=i) i=i+1=3 b=i=3
	}
	public static void main(String[] args){
		int i = 1;
		i++;   //  i=2
		i++;   // i=3
		i++;   // i=4
		i = 1;
		i = i++;  // i=1
		i = i++;  // i=1
		i = i++;  // i=1
		i = 1;
		++i;  // i=2
		++i;  // i=3
		++i;  // i=4

	}



i=i++

i++是一个表达式,是有返回值的,它的返回值就是i自增前的值,java对于自增是这样处理的: 先把i的值(注意是值,不是引用)拷贝到一个临时变量区,然后对i变量加1,最后返回临时变量区的值
步骤1:JVM把 i 的值拷贝到临时变量区 
步骤2:i 值加1,这时候i的值是2
步骤3:返回临时变量区的值,1
步骤4:返回值赋值给i,此时i值被重置成0.

猜你喜欢

转载自blog.csdn.net/qq_38002337/article/details/80299183