首页 > 编程笔记 > C语言笔记 阅读:24

C语言中的条件运算符(新手必看)

在 C语言中,条件运算符是一种能够简洁表达分支结构的运算符。

条件运算符的语法形式如下:
测试条件 ? 表达式1 : 表达式2
如果测试条件为真,则返回表达式 1 的值,否则返回表达式 2 的值。

实际上,条件运算符可以被看作 if-else 语句的一种简化形式。例如,下面的代码使用条件运算符和 if 语句分别计算两个数的最大值。
// 使用条件运算符计算最大值
int max = a > b ? a : b;
// 使用if语句计算最大值
int max;
if (a > b) {
   max = a;
} else {
   max = b;
}
如果a > b为真,那么整个表达式的结果为 a,即将 a 的值赋给 max;否则,整个表达式的结果为 b,即将 b 的值赋给 max。

可以看到,使用条件运算符可以大大减少 if-else 语句的代码量,使代码更加简洁。然而,需要注意的是,条件运算符并不是总比 if-else 语句更好,有时候 if-else 语句更清晰、更容易理解。因此,在实际编程中,需要根据具体情况选择使用哪种形式。

条件运算符是 C语言中唯一的三元运算符,它有 3 个运算对象。下表展示了条件运算符的优先级。

表:运算符优先级(从高到低)
标记 操作符 类型
++ -- 自增、自减 后缀
++ -- 自增、自减 前缀
! 逻辑非 一元
+ - 正号、负号 一元
* / % 乘、除、取余 二元
+ - 加、减 二元
< > <= >= 关系 二元
== != 相等、不相等 二元
&& 逻辑与 二元
|| 逻辑或 二元
?: 条件 三元
= 赋值 二元

在表格中,条件运算符的优先级仅高于赋值运算符。在表达式int max = a > b ? a : b中,首先计算子表达式a > b的结果,然后计算条件表达式的结果,最后将条件表达式的结果赋值给变量 max。

相关文章