int a =1, b,c;
a=b=a++;
System.out.println(a+" "+b);//11????
c=a++ + b;
System.out.println("abc分别为"+a+" "+b+" "+c);//212
a++是返回原值,再加1,++a是先加1,再返回新的值
第一步a++返回1,再加1,但是返回值被赋值给a和b后又会覆盖原本的a,所以a,b都是1。
第二步a++返回1,b也是1,所以c=1+1=2,a的值返回以后计算加1,所以a=2,b不变,还是1
i++ 先赋值在运算,例如 a=i++,先赋值a=i,后运算i=i+1,所以结果是a==1
++i 先运算在赋值,例如 a=++i,先运算i=i+1,后赋值a=i,所以结果是a==2
package ask;
public class plusplus {
public static void main(String[] args) {
int a = 1, b, c;// a=1,b=0;c=0
a = b = a++;// a=b=1
System.out.println(a + " " + b);// 11????
c = a++ + b;// c=1+1=2;a=2;b=1
System.out.println("abc分别为" + a + " " + b + " " + c);// 212
}
}
++a是自增后再计算