15.2.2 条件运算符
条件运算符(Conditional Operator)是C语言中唯一的三目运算符(Ternary Operator),带有三个操作数,它的形式是"表达式1 表达式2 : 表达式3",这个运算符所组成的整个表达式的值等于表达式2或表达式3的值,这取决于表达式1的值是否为真,可以把它想象成以下形式的函数:
- if (表达式1)
- return 表达式2;
- else
- return 表达式3;
表达式1相当于if语句的控制表达式,因此它的值必须是标量类型,而表达式2和表达式3相当于同一个函数在不同情况下的返回值,因此它们的类型要求一致,也要做Usual Arithmetic Conversion。
下面举个例子,定义一个函数求两个参数中较大的一个。
- int max(int a, int b)
- {
- return (a > b) a : b;
- }