求讲解一道C语言的题~!int i=6,j=6,k=3;则表达式 k + = i > j ? i ++ : - - j;的值为?求解释 求答案~
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 00:44:34
![求讲解一道C语言的题~!int i=6,j=6,k=3;则表达式 k + = i > j ? i ++ : - - j;的值为?求解释 求答案~](/uploads/image/z/1581885-45-5.jpg?t=%E6%B1%82%E8%AE%B2%E8%A7%A3%E4%B8%80%E9%81%93C%E8%AF%AD%E8%A8%80%E7%9A%84%E9%A2%98%7E%21int+i%3D6%2Cj%3D6%2Ck%3D3%3B%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F+k+%2B+%3D+i+%3E+j+%3F+i+%2B%2B+%3A+-+-+j%3B%E7%9A%84%E5%80%BC%E4%B8%BA%3F%E6%B1%82%E8%A7%A3%E9%87%8A+%E6%B1%82%E7%AD%94%E6%A1%88%7E)
求讲解一道C语言的题~!int i=6,j=6,k=3;则表达式 k + = i > j ? i ++ : - - j;的值为?求解释 求答案~
求讲解一道C语言的题~!
int i=6,j=6,k=3;
则表达式 k + = i > j ? i ++ : - - j;的值为?
求解释 求答案~
求讲解一道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