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;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM