C语言之三目运算符

三目运算符

三目运算符:也叫三元运算符。这个运算符的符号是: ? :

语法:

表达式1 ? 表达式2 : 表达式3;

语义:

先执行表达式1,执行完毕,表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果,否则执行表达式3,运算式的结果是表达式3的结果

if(表达式1){

表达式2;

}else{

表达式3;

}

用一个口水化来表达三目表达式:

表达式1 ? 表达式2 : 表达式3;

表达式1成立吗?成立执行表达式2,否则执行表达式3

tips:代码例子如下

#include <stdio.h>

int main(int argc, const char * argv[]) {

// int res = 1 ? 10 : 20;

// printf("res=%d\n",res);//10

// int res = 0 ? 10 : 20;

// printf("res=%d\n",res);//20

//三目表达式和if-else语句可以互换

/*

// int num1=10,num2=20,num3=30;

// int res = num1 ? num1+num2 : num1+num3;

// printf("res=%d\n",res);//30

// int num1=10,num2=20,num3=30;

// int res = 0;

//

// if(num1){

// res = num1 + num2;

// }else{

// res = num1 + num3;

// }

// printf("res=%d\n",res);//30

*/

//注意后++的问题

/*

int num1=10,num2=20;

int res = num1 > num2 ? num1++ : num2++;

printf("num1=%d num2=%d res=%d\n",num1,num2,res);//10 21 20

// int num1= 10;

// int num2 = num1++;

//

// printf("num1=%d num2=%d\n",num1,num2);//11 10

*/

return 0;

}