Java中的自运算
一个问题:
int i = 3; int a = i++; System.out.println("a = "+a); //输出 a=3
int i = 3; int b = ++i; System.out.println("b = "+b); //输出 b=4
这个好理解,因为 i++ 是先赋值再自增,++i是先自增再赋值。
但是:
int i = 3; i = i++; System.out.println("i = "+i); //输出什么 ?? 答案是:3
这个问题其实很简单,只需要理解两个关键点:1. 表达式的返回值。 2. 临时变量。
注意:i++ 这个表达式返回的值是i自增前的值,原理是:编译器创建一个临时变量来保存 i 自增前的值,在 i 自增完后再返回这个临时变量的值。所以 a = i++ 底层发生的步骤如下:
int temp = i ; i++; a = temp ;
所以 i = i ++ 对应的步骤是:创建一个临时变量temp,来存储i的值,然后对i进行自增运算,然后再把 temp的值赋给i;

浙公网安备 33010602011771号