请问在自定义函数max中a>b?a:b是什么意思啊为什么会返回最大的那给a呢?

今天看到一个这样子的代码 a>b?a:b;为什么可以这样写?

#####```c
#define output printf
int max(int a,int b,int c);
int main(void)
{
int a=5;
int b=6;
int c=4;
output("%d",max(a,b,c));
return 0;
}
int max(int a,int b,int c){
return a>b?a:b;
}

```

这是条件语句,意思是a大于b这个条件成立吗,成立就返回a,反之不成立返回b,相当于if eles语句的简化版

a>b?a:b 是三目运算,返回 a b 中大的数值,如果 a > b 就返回 a 的值,不是就返回 b 的值。代码修改如下,供参考:

#include <stdio.h>
#define output printf
int max(int a, int b);
int main(void)
{
    int a = 5;
    int b = 6;
    int c = 4;
    output("%d",max(max(a, b), c));
    return 0;
}
int max(int a, int b) {
    return a > b ? a : b;
}