int i = 0; i = i++; System.out.println(i);
输出结果为?
底层剖析:
借助一个容器temp,
int temp = i ;
temp记录了i的初始值 – 0
i = (int)(i+1);//i --> 1
i = temp;//将temp中记录i的初始值(0)赋值给i
综上所述:i = 0 。
面试题二:int i = 0; i = ++i; System.out.println(i);
输出结果为?
底层剖析:开始 i = 0,
++ i:先在自身的基础上加1,再运算;
++ i = 1,然后再把结果赋值给i;
i = 1 。
面试题三:int a = 8; int b = (a++)+(++a)+(a*10); System.out.println(b);
输出结果为?
底层剖析:一开始 a = 8,
++是在自身的基础上加1;
(a++):a先参与运算,再在自身的基础上加1;
(++a):a先在自身的基础上加1,再参与运算。
综上所述,
(a++) = 8;
(a++) + (++a) = 8 + 10;
(a++)+(++a)+(a*10) = 8 + 10 + 10 * 10;
b = 118 。
下次分享赋值运算符 ~ · ~ · ~ · ~
暑期编程PK赛 得CSDN机械键盘等精美礼品!


