关于#++i#的问题,如何解决?

i=3;
j=(++i)+(i++)+(--i)+(i--);
怎么算i、j,电脑运算出来i=3,j=17,我自己算i=3,j=16

这跟符号优先级和求值顺序有关。
++i 是先自加然后再参与表达式求值
i++ 是先参与表达式求值然后在自加
自减也是同样道理。

j = (++i)+(i++)+(--i)+(i--);
  4
    4,求完和后变成5
      先变回4,在参与求和
         4,先求完和后变为3
所以,最终是j = 4 + (4 + 1)+ 4 + 4 = 17; 求完值后i=3

4+5+4+4 按照 计算的吧 结果就是17了

在手机上算了一下,确实是i=3, j=16

img

img