条件表达式与条件运算符

int x=4,y=5,z; z=x>y?x:y;”后,z 的值是?
是等于5么

判断条件是假如说x>y,那么就输出x,否则就输出y.
有这道题我们可以知道x<y,所以输出y,z=y=5。
结论是正确的。

是的,第三个等号右边是三目运算符>?:将先判断条件x>y的逻辑值,为真执行冒号左边,否则执行右边,这道题就是将x,y中最大值赋给z

z=x>y?x:y,相当于
if(x>y)
z = x;
else
z = y;
因为x=4,y=5,所以x<y,执行else代码块,因此z = y = 5
你的结论是正确的

是的 这个就是三元运算
z=x>y?x:y;
x大于y就是x
小于y就是y
前面的结果是true就是冒号前面的
前面的结果是false就是冒号后面的

z=x>y?x:y; 三目运算符的结合性是右结合的,这句相当于:z = (x>y?x:y); ,括号里的先执行, x=4,y=5, x > y 为假,所以返回的是 y , 最终 z = y = 5。
三目运算符的知识,供参考:https://baike.baidu.com/item/%E4%B8%89%E7%9B%AE%E8%BF%90%E7%AE%97%E7%AC%A6/6434591?fr=aladdin

z和y最后都是5