一、邏輯運(yùn)算符
/*
邏輯運(yùn)算符的返回值 只有兩種 : 要么真要么假,要么是1(真),要么是假(0)
&& (與運(yùn)算) 邏輯非結(jié)合性 : 從左至右
格式 : 表達(dá)式1 && 表達(dá)式2
只有表達(dá)式1 和 表達(dá)式都為 真 的時(shí)候, 邏輯與表達(dá)式才返回真
如果表達(dá)式1 或者 表達(dá)式2 中有一個(gè)是假, 那么邏輯 與 表達(dá)式 返回的結(jié)果都是 假
int result = 10 > 8 && 5 > 3; // 1 && 1 = 1;
int result = 10 > 8 && 5 > 8; // 1 && 0 = 0;
口訣 : 一假則假
邏輯與有一個(gè)特點(diǎn) : 一假則假, 所以前面的表達(dá)式的值為假, 那么后面的表達(dá)式?jīng)]必要參與運(yùn)算 【int a = 10; int result = 10 > 18 && a++ > 5;】 0 && 1 = 0 a=10
判斷一個(gè)范圍 (3<a<5); a= 10; 正確的C語(yǔ)言寫(xiě)法 (a>3) && (a<5);
|| (或運(yùn)算) 邏輯非結(jié)合性 : 從左至右
格式 : 表達(dá)式1 !! 表達(dá)式2
只要表達(dá)式1 或者 表達(dá)式2 中有一個(gè)是 真的,邏輯或表達(dá)式返回的值 就是真
只要表達(dá)式1 和 表達(dá)式2的值都是假, 邏輯或的值才是假
int result = 10 > 8 || 5 > 8; // 1 || 0 = 1
口訣 : 一真則真
【int a = 10;int result = 10 > 18 || ++a > 5;】 0||1 = 1 a= 11
邏輯與 和 邏輯或 的這個(gè)特點(diǎn),稱(chēng)之為邏輯運(yùn)算符的短路
! (非運(yùn)算) 邏輯非結(jié)合性 : 從右至左
如果表達(dá)式是真, 就返回假
如果表達(dá)式是假, 就返回真
【int result = !1;】 0
取反
*/
//注意點(diǎn):由于C語(yǔ)言規(guī)定 : 任何數(shù)值都有真假性, 非0即真, 所有邏輯運(yùn)算符 可以直接與 數(shù)值進(jìn)行計(jì)算
//
二、代碼
#include <stdio.h>
int main()
{
#pragma 1.與
// 1 && 1
// int result = 10 > 8 && 5 > 8;
// printf("result = %i\n",result);
#pragma 2.或
// int result = 10 > 8 || 5 > 8;
// printf("result = %i\n",result);
#pragma 3.非
// int result = !(10 > 18); // !0;
// printf("result = %i\n",result);
/*
// int result = 0 && 11;
// int result = 0 || 11;
int result = !1;
printf("result = %i\n",result);
*/
// int result = 10 > 18 && 9 > 5;
// printf("result = %i\n",result);
// int a = 10;
// int result = 10 > 18 && a++ > 5;
// printf("result = %i,a = %i\n",result,a);
// 由于邏輯或有一個(gè)特點(diǎn) : 一真則真
int a = 10;
int result = 10 > 18 || ++a > 5;
printf("result = %i,a = %i\n",result,a);
return 0;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。