直入正题:
int x = 0;
int y = x++;
System.out.println(x);
System.out.println(y);
//这个输出结果是1 和0
int x = 0;
int y = ++x;
System.out.println(x);
System.out.println(y);
//这个输出结果是1 和1
//这两段代码我理解,就是说++x 是先执行加减操作再运用它的值,而x++是先运用x的值再执行加减操作,但是请大佬看一下下面这段代码:
int x = 0;
System.out.println(x++);
System.out.println(x);
//这里的输出结果是0 和1
int x = 0;
x = x++;
System.out.println(x);
//这里的输出结果居然是0
//大佬们,x = x++;按道理这里要先赋值后+1,但是赋值之后的+1操作哪里去了?对比第一块代码那里的结果是y = 0,但是x = 1 啊,为什么这里不一样呢?
我可不可以理解为x = x++;这里有三步,第一步:将x最开始的值“0”,也就是要赋值给x的值“0”先存起来,但已经确定下来了,就他,这个叫“0”的小伙子要赋值给x了,只不过先不赋值,先做第二步:把x++;操作完成,也就是执行:x = x+1;此时x的值是“1”,然后再做第三步:将之前确定好的那个值“0”赋值给x,也就是执行x = 0;那么此时x的值就是“0”了,不知道想的对不对,完全没依据,就是猜的,求大佬指点迷津!