第1个回答 2010-01-20
只要了解条件表达式的组成就不难明白
a<b?a:c
当问号前(a<b)为真(非0)就取a,否则c
符号优先级都是从左至右
翻译为
if(a<b) return a;
else {if(c<d)return c; else return d;}
或者
if(a<b) return a;
else if(c<d) return c:
else return d;
第2个回答 2010-01-20
a<b?a:c<d?c:d
?运算符是右结合性=》1<4?1:(3<2?3:2)=>1〈4?1:2=〉1
1<4?1:(3<2?3:2)=>1
结果为2
第3个回答 2010-01-20
从右往左运算
c<d?c:d=2
a<b?a:2=1
所以为1
第4个回答 2010-01-20
a<b?a:(c<d?c:d)
a<b?a:2
1
值为1