条件运算符是C语言中类似于if
语句的一种特殊运算符,它由符号?
和:
组成,其格式为表达式1?表达式2:表达式3
,表达式1、表达式2和表达式3可以是任何类型的表达式。由条件运算符构成的表达式称为条件表达式。条件运算符是C运算符中唯一一个三元运算符,要求3个操作数。
条件表达式的计算步骤是首先计算出表达式1的值,如果其值不为零(即结果为真),则计算表达式2的值并且将其值作为整个条件表达式的值,否则(结果为0,即为假)计算表达式3的值并将其值作为整个条件表达式的值。
条件运算符的优先级高于赋值运算符,但是低于算术运算符、逻辑和关系运算符。
条件运算符使程序更加短小,但有时也使得代码难于阅读,需谨慎使用。
/**************************************
* conditional_operator.c *
* *
* C语言中的条件运算符 *
**************************************/
#include <stdio.h>
int Max(int i, int j)
{
return i > j ? i : j;
}
int main()
{
int i = 1;
int j = 2;
int k = 0;
printf("i = %d, j = %d, k = %d\n", i, j, k);
k = i > j ? i : j;
printf("i > j ? i : j的值为: %d\n", k);
k = (i >= 0 ? i : 0) + j;
printf("(i >= 0 ? i : 0) + j的值为: %d\n", k);
k = i >= 0 ? i : 0 + j;
printf("i >= 0 ? i : 0 + j的值为: %d\n", k);
printf("i和j中的最大值 = %d\n", i > j ? i : j);
printf("i和j中的最大值 = %d\n", Max(i,j));
return 0;
}
参考文献
- K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社