回复 楼主 防范
如果int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是?
"<"是双目运算符,"?/:"是三目运算符,双目优先级大于三目优先级。
上式等价于:
a<
b?
a:
((c<d)?c:d)
你可以把每种颜色看成一个元素:即a<b?c:d.
先进行 "<" 运算,即(a<b)?a:(c<d)?c:d,再从右至左进行"?/:"运算,即(a<b)?a:((c<d)?:d)<->a<b?a:((c<d)?c:d) (三目运算符运算顺序从右至左)
因为a<b,故上式运算结果取a.即1.