算术运算符的高频面试题
面试题一:
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 。
下次分享赋值运算符 ~ · ~ · ~ · ~