int i=10,j=20,k;k=i-- + ++j+i--;k为什么等于41?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 15:07:01
xQN@1[BK8@[V~@5
!Z
v{-x012;;3yJׯ%]S(KD"F0+4ڤViԳe(\Q/C"ܤwGc$sgY=-KC3`gh90B
CJ@;k)g=/QEhh u֊&bhʷ[|%27:$t_,
2'|$~rD,43Hfv}֟kEU"e}q
Td0Nozf(.ޘ$]joV9x
int i=10,j=20,k;k=i-- + ++j+i--;k为什么等于41?
int i=10,j=20,k;k=i-- + ++j+i--;k为什么等于41?
int i=10,j=20,k;k=i-- + ++j+i--;k为什么等于41?
因为自加自减的优先级高于普通加减,k=i--+++j+i--可以写成k=(i--)+(++j)+(i--)
因为前++和后++的区别在于前++是先加一,再将加一后的结果参与到所在表达式的运算,而后++是先将当前值参与到所在表达式的运算中,执行后再将变量加一,基于这个原理
k=(i--)+(++j)+(i--)
= 10 + 21 +10
=41
最后i=8,j=21,不知道我说的你是否明白?