分享

常见C语言笔试题分析—三目运算符

 炻墨烯 2020-10-20

1、三目运算符简介

三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。

对于语句x = a ? b : c,先计算条件表达式a是否为真,若为真,x的值便是b的表达式的值,否则x的值便是c表达式的值。

对于条件运算符是右结合的方式,即从右向左分组计算。如:a ? b : c ? d : e ,其运算将按照a ? b : (c ? d : e)执行。

2、条件语句转换成三目运算符

   语句如下:

        if (a > b)

max = a;

        else

max = b;

可将条件语句写为:max = (a > b) ? a : b

因为条件运算符的运算优先级低于关系运算符和算术运算符,但高于复制运算符,所以表达式也可写成如下方式:

        max = a > b ? a : b

3、条件运算符?与:成对出现

 例:

  语句 :e = a >= b ? a > c ? a : c : b >= c ? b : c

  可以写成:e = (a >= b) ? (a > c) ? a : c ) : (b >= c ? b : c)

  条件运算符的结合方式是自右至左,故语句分解:

1)x = b >= c ? b : c

2)y = a>c ? a : c

3)z = a >= b ? y : x

4、例子

  int a = 1, b =2 , c = 3, d =5 ,f;

  f = a > b ? a : c > d ? c : d

   = (a > b) ? a : ((c > d) ? c : d) //c > d 为假,故值为d

   = (a > b ) ? a : d //a > b 为假,故值为d

   = d

   = 5

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多