c语言中 a<b? a : c<d? a : 怎样解读

如题所述

这是三目运算符,判断前面的表达式是否为真,若为真则返回:前的数,若为假则返回:后的数,若数值是一个表达式则要进一步判断,就像楼主这个例子,不满足a<b时返回的是一个表达式的返回值,所以要接着判断。整体可以改写成if....else if...else的结构,改写如下:
if(a<b)
return a;
else
if(c<d)
return a;
else
return ....; //你后面没有写全,所以不知道返回的是什么。
不知道这样解读你是否满意,希望能帮助到你!~学习愉快!~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-15
先读前a<b? a : c 如果a<b那么这个表达式的值为a 否则为c 再用得到的这个值(假如是a)进行后面的运算a<d?a:这里貌似少了个数吧。。。再进行判断
第2个回答  2010-12-15
表达式不完整,假设补全完整后的表达式为: a<b?a:c<d?a:b
表达式执行顺序是从右到左。三目运算符 ? : 的意思是如果?前的表达式为真则表达式的值为:左边的值,反之则为:右边的值。
假设 a<b, c>d;则表达式 a<b?a:c<d?a:b 等价于 a<b?a:b 等价于 a
第3个回答  2010-12-15
就是if ...else if ...else 形式