C語言之邏輯運算符


一 邏輯運算符:

 &&:邏輯與,讀作並且

 表達式左右兩邊都為真,那么結果才為真

       口訣:一假則假

  

 ||:邏輯或,讀作或者

  表達式左右兩邊,有一個為真,那么結果就為真

  口訣:一真則真

 

!: 邏輯非,讀作取反

      表達式的結果如果為假,就變成真,如果為真,就變成假

口訣:真變假,假變真

 

二 邏輯運算符的短路問題

              tips:非0為真,0為假

 短路的情況:

 &&:左邊如果為假,則右邊短路(右邊不會被執行)

 ||:左邊如果為真,則右邊短路(右邊不會執行)

 

tips:代碼例子如下

 

#include <stdio.h>

 

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

   

   

    //    int res = 1 && 2;

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

   

    //    int res = 1 && -2;

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

    //    int res = 1 && 0;

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

   

   

    //    int num1=10,num2=20;

    //或者的口訣:一真則真,所以如果左邊為真,那么右邊表達式不會被執行了

    //    int res = num1++ || num2++;

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

   

   

    //    int num1=0,num2=10;

    //    //並且的口訣:一假則假

    //    int res = num1++ && num2++;

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

    //    int num1=0,num2=10;

    //    int sum = num1++ + num2; //10

   

   

    //    int num = 10;

    //    int res = 0 && num++;

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

   

   

    //    int num1=0,num2=10;

    //    //並且的口訣:一假則假

    //    int res = num1 && num2++;

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

 

    //    int num1=-3,num2=3,num3=4;

    //    int res = (num1 + num2) && (num1 - num3);

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

   

   

    //    int num1=-3,num2=3,num3=4;

    //    int res = (num1 + num2) && num3++;

     //    printf("res=%d   num3=%d\n",res,num3);//0  4

   

    int num1=-3,num2=3,num3=4;

    int res = num1++ + num2++ && num3++;

    printf("res=%d   num1=%d   num2=%d   num3=%d\n",res,num1,num2,num3);//0  -2  4  4

 

    return 0;

}

 


免責聲明!

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



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