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

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 04:09:37
inti=10,j=20,k;k=i--+++j+i--;k为什么等于41?inti=10,j=20,k;k=i--+++j+i--;k为什么等于41?inti=10,j=20,k;k=i--+++j

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