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;

}

 

posted @ 2016-10-23 18:36  zero的小纸条  阅读(55687)  评论(0编辑  收藏  举报