int i=10,j=20,k;k=i-- + ++j+i--;k为什么等于41?

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 15:07:01
int i=10,j=20,k;k=i-- + ++j+i--;k为什么等于41?
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(.ޘ$]j׫oV9x

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,不知道我说的你是否明白?