int a = 3;
int x = 0;
x = a++;//a=4, x=3
x = a++;//a=5, x=4
x = a++;//x=5,a = 6
System.out.println("x = "+x);
x = x++;//x=5
x = x++;
x = x++;
System.out.println("x = "+x);
有几个点,你可能没理解透彻:x = a++;(里面有两个运算符++和=,但是++的优先级要高于=)
(1)是将(a++)表达式的值赋值给变量x,而不是将a的值赋值给变量x,所以我们要先计算a++表达式的值,由于++符号在a的后面,所以先使用a的值作为表达式的值,所以a++表达式的值是3
(2)进行++运算,a=a+1,a变成4,但是不管a的值变为了多少,都不会影响第(1)步中的表达式a++的值(3)
(3)进行赋值运算,将a++表达式的值(第一步已经算出来了3)赋值给x,x变为3。
希望我这个解释,对你有用!!!! |