黑马程序员技术交流社区

标题: C语言的知识,求解 [打印本页]

作者: kingloveyy    时间: 2014-9-23 14:03
标题: C语言的知识,求解
题目大概是这样的:假设 a=1,b=2,c=3,d=4;
        a < b ? a : c < d ? a : d;
看着有点乱了,哪位大神帮我分析一下?这些优先级的东西一直记不清楚

作者: 秋水红林    时间: 2014-9-23 14:33
涉及到三目运算(a<b)?a:(c<d)?a:d,这样能够看懂了吧,两个三目运算嵌套,先比较大小,然后算三目,因为a<b,所以返回a即返回1,比较大小的优先级高于三目运算
作者: kingloveyy    时间: 2014-9-23 14:40
秋水红林 发表于 2014-9-23 14:33
涉及到三目运算(a

OK,谢啦
作者: qiusiyu    时间: 2014-9-23 15:35
本帖最后由 qiusiyu 于 2014-9-23 15:36 编辑

假设 a=1,b=2,c=3,d=4;
        
a < b ? a : c < d ? a : d;

从左往右,这样分析:     a < b ?         //a是否小于b
                                   a < b ? a      //若是,就输出a
                                   a < b ? a : c < d ?   //若不是,就看“c<d?”
                                                                                 c < d ?        // c是否小于d?  
                                                                                 c < d ? a : d  //若是,就输出a;若不是,就输出d
作者: AngleMGG    时间: 2014-9-23 16:10
涉及算术优先级,括号优先级最高,换个形式 (a < b) ? a : ((c < d) ? a : d);   这样能理解吗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2