C语言中唯一的一个三目运算符(条件运算符)

时间:2021-12-03 17:21:50

“(a>b)?a:b”是一个条件表达式,如果(a>b)条件为真,则条件表达式去值a,否则取值b。

一般形式:表达式1?表达式2:表达式3,它是C语言中唯一的一个三目运算符。

执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值作为整个条件表达式的值。若表达式1的值为0,则求解表达式33,表达式3的值作为整个条件表达式的值.

例如:max=(a>b)?a:b,执行结果就是将a和b中大者赋给max。(条件运算符的优先级高于赋值运算,低于关系运算和算术运算)

例子:输出a,b中较大者

#include<stdio.h>


int main (void)
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a>b?a:b);
return 0;
}