推荐答案
测试一下
题目
关于三目运算符: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)`)。
涉及知识点
- 三目运算符的右结合性
- 隐式类型转换规则
- 短路求值特性
- 运算符优先级与结合性