14、已知:int x=1,y=2,z=0,则执行z=y>x?(10+x,10-x):(20+y,20-y)后,值为( ) 求解了,说吓为什么

2025-03-04 23:07:02
推荐回答(3个)
回答1:

z=9,x,y不变,因为:(y = 2)> (x = 1),所以:z = (10+x,10-x) = (11,9),又因为:逗号表达式取最右端值,所以:z = 9;

回答2:

y > x 成立, 执行 10+x,10-x 而逗号运算符优先级低,所以执行后变为 11 , 9 返回 9 ,x y 的值没有被运算 所以没变 ,结果 x=1,y=2 ,z= 9

回答3:

值为(10+x,10-x);
代入x就是(11,9);
具体执行
1.赋值z=y z=2;
2.判断z>x 2>1 true 问号表达式 得到(10+x,10-x);