先来看一个if语句:
if (a>b)
max=a;
else
max=b;
这个是if条件语句中最简单的一个,拿条件运算符可改写为:max=(a>b)?a:b;赋值号右侧的“(a>b)?a:b”是一个“条件表达式”。“?”是条件运算符。要求有三个操作对象,称为三目运算符。
一般形式:表达式1?表达式2:表达式3
执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就是整个条件表达式的值;若表达式1为0(假),则求解表达式3,此时表达式3的值就是整个条件表达式的值。
还是看一些运算符优先级的例子:
⑴max=(a>b)?a:b 可以写成:max=a>b?a:b;
⑵a>b?a:b+1 其实就是:a>b?a:(b+1);
⑶a>b?(max=a):(max=b);相当于:
if (a>b) max=a;
else max=b;
条件表达式还可以写成下列格式:
a>b?printf("%d",a):printf("%d"b)