作业帮 > 综合 > 作业

求讲解一道C语言的题~!

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 08:15:36
求讲解一道C语言的题~!
int i=6,j=6,k=3;
则表达式 k + = i > j ? i ++ : - - j;的值为?
求解释 求答案~
A?B:C
是C语言的一个经典表达.

意思就是问,A条件满不满足,如果满足,执行B,不满足,执行C

你问的这道题,还真有点难.请确认你输入的没有错误,其实这种程序,你自己拿个程序写一下就明白了

这里要注意运算符的优先级结合问题.
正确答案应该是8. 我用g++编过了.

他的原理是这样的.

+=运算符的优先级没有?:高.
所以,先进行运算的是i>j?i++:--j表达式
按照我刚才说的.这句话的意思是.i是否大于j,大于执行i++.不大于执行--j.但是实际上i==j
所以这里要执行--j
然后在执行 k+= 操作.
相当于k + = --j
意思是,在执行这句话之前,j就已经被减1,所以是5、k = 3.
k + = --j相当于 k = k + --j
所以结果是 k = 3 + 5 =8