3.8.6 “?”运算符
“?”运算符首先计算表达式1的值,然后根据表达式1的真假接着计算其余表达式的值,并输出结果。“?”运算符是三目操作符,其一般形式如下。
EXP1?EXE2:EXP3;
其中,EXP1、EXP2和EXP3是表达式。“?”运算符作用是在计算表达式EXP1的值后,如果其值为真,则计算表达式EXP2的值,并将其结果作为整个表达式的结果;如果表达式EXP1的值为假,则计算表达式EXP3的值,并将结果作为整个表达式的结果。“?”运算符的程序示例如下。
include<stdio.h>//头文件
void main()//主函数
{
int x,y;//定义变量
x=17;//赋值
y=x>5?10:20;//使用“?”运算符,为y赋值
printf(“y=%d\n”,y);//输出结果
}
该程序可在KeilµVision3集成开发环境中运行,执行结果如下。
y=10
本例中,首先判断x>5,其值为真,所以执行第一个表达式将10赋给y。若用if-else语句改写,有下面的等价程序。
include<stdio.h>//头文件
void main()//主函数
{
int x,y;//定义变量
x=17;//赋值
if(x>5)//使用if语句,为y赋值
{
y=10;
}
else
{
y=20;
}
printf(“y=%d\n”,y);//输出结果
}
这段程序同样可以在KeilµVision3集成开发环境中运行,执行结果和前面相同。比较两程序,从中可以看出使用“?”运算符,可以大大简化程序。