C语言中的条件运算符(新手必看)
在 C语言中,条件运算符是一种能够简洁表达分支结构的运算符。
条件运算符的语法形式如下:
实际上,条件运算符可以被看作 if-else 语句的一种简化形式。例如,下面的代码使用条件运算符和 if 语句分别计算两个数的最大值。
可以看到,使用条件运算符可以大大减少 if-else 语句的代码量,使代码更加简洁。然而,需要注意的是,条件运算符并不是总比 if-else 语句更好,有时候 if-else 语句更清晰、更容易理解。因此,在实际编程中,需要根据具体情况选择使用哪种形式。
条件运算符是 C语言中唯一的三元运算符,它有 3 个运算对象。下表展示了条件运算符的优先级。
在表格中,条件运算符的优先级仅高于赋值运算符。在表达式
条件运算符的语法形式如下:
测试条件 ? 表达式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。