三目运算符——a?b:c
即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:表达式1 ? 表达式2 : 表达式3
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。
- a? b : c可以理解为:
if(a) b;
else c;
Example 1:重载绝对值函数
#include <iostream>
using namespace std;
int abs(int x)
{
return x>=0?x:-x;
}
double abs(double x)
{
return x>=0?x:-x;
}
long abs(long x)
{
return x>=0?x:-x;
}
int main()
{
int x1 = 1;
double x2 = -2.5;
long x3 = 3L;
cout<< "|x1| = " << abs(x1) << endl;
cout<< "|x2| = " << abs(x2) << endl;
cout<< "|x3| = " << abs(x3) << endl;
return 0;
}
Example 2:将月份数值转换为相应的英文名称
char *month_name(int n)
{
static char *month[]=
{
"Illegalmonth", // 月份值错误
"January", // 一月
"February", // 二月
"March", // 三月
"April", // 四月
"May", // 五月
"June", // 六月
"July", // 七月
"August", // 八月
"September", // 九月
"October", // 十月
"November", // 十一月
"December" // 十二月
};
return(n>=1 && n<=12)?month[n]:month[0];
}
好用