← 华为硬件(逻辑)岗(19.09.04)

推荐答案 测试一下

关于三目运算符:a?b:c,说法正确的是( )。

关于三目运算符:a?
问答题 中等 笔试真题问答题

参考答案

三目运算符(条件运算符)是C语言中唯一的三目运算符,其结合方向为从右向左,即右结合性。表达式 `a ? b : c` 首先判断 `a` 是否为真(非零),若为真则整个表达式的值为 `b`,否则为 `c`。关键点在于 `b` 和 `c` 的类型必须一致或能够通过隐式类型转换兼容,此时整个表达式的类型取二者中较高的类型(如 `int` 与 `double` 混合时结果为 `double`)。此外,三目运算符具有短路特性:当 `a` 为真时只求值 `b`,`c` 不会被求值;反之亦然。在优先级上,赋值运算符的优先级低于三目运算符,逗号运算符的优先级最低。常见易错点包括:误认为左结合(实际为右结合),忽视类型转换导致精度丢失,忽略结合性导致的复杂嵌套运算顺序错误(如 `a ? b : c ? d : e` 等价于 `a ? b : (c ? d : e)`)。

涉及知识点

  • 三目运算符的右结合性
  • 隐式类型转换规则
  • 短路求值特性
  • 运算符优先级与结合性
← 上一题
登录后反馈错题
下一题 →