谦余庆 2023-08-13 15:07 采纳率: 100%
浏览 6
已结题

为什么答案最后a=8,b=8,c=10呢?

我算了好久就是不明白a的值是怎么算出来的,是取x的值还是的值?麻烦哪位大拿能不能帮我详细解答一下呢?

img

  • 写回答

2条回答 默认 最新

  • P2441M 2023-08-13 15:24
    关注
    int a = (--x == y++) ? --x : y++;
    

    这一句主体是一个三目条件运算符,它的语法如下:

    condition ? return_value_a : return_value_b
    

    condition 为真时,返回值为 return_value_a,反之,则为 return_value_b
    再来细看三目运算符的每一个操作数。
    首先是条件 (--x == y++),这里要注意的无非是 --x 先自减,再返回值,所以 == 的左操作数为 9;而 y++ 先返回值,后自增,所以 == 的右操作数依然是 9(但是 y 的值是 8)。条件为真,返回值为 --x,而此时 x 的值为 9,所以返回 8。
    综上,a = 8。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月22日
  • 已采纳回答 8月14日
  • 创建了问题 8月13日