c语言逻辑运算符编程,C语言之逻辑运算符详解
一 邏輯運算符:
&&:邏輯與,讀作并且
表達式左右兩邊都為真,那么結果才為真
口訣:一假則假
||:邏輯或,讀作或者
表達式左右兩邊,有一個為真,那么結果就為真
口訣:一真則真
!: 邏輯非,讀作取反
表達式的結果如果為假,就變成真,如果為真,就變成假
口訣:真變假,假變真
二 邏輯運算符的短路問題
tips:非0為真,0為假
短路的情況:
&&:左邊如果為假,則右邊短路(右邊不會被執行)
||:左邊如果為真,則右邊短路(右邊不會執行)
tips:代碼例子如下
#include
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;
}
總結
以上是生活随笔為你收集整理的c语言逻辑运算符编程,C语言之逻辑运算符详解的全部內容,希望文章能夠幫你解決所遇到的問題。