我算了好久就是不明白a的值是怎么算出来的,是取x的值还是的值?麻烦哪位大拿能不能帮我详细解答一下呢?
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。
【相关推荐】