三目運算符
三目運算符:也叫三元運算符。這個運算符的符號是: ? :
語法:
表達式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;
}