C語言邏輯運算符的用法及解讀
C語言邏輯運算符
在C語言中,邏輯運算符有&&、||、!
&&表示“與”的意思,需要兩端的表達(dá)式的值都為true,該式的值才為true。||表示“或”的意思,兩端的表達(dá)式的值只要有一端為true,該式的值就為true。!表示“非”的意思,將該式的真值換成相反的真值,即false和true互換。
但是在C99里有這樣的一個名為“短路”的特性
- 使用&&時,如果左邊f(xié)alse則右邊不會執(zhí)行
- 使用||時,如果左邊true則右邊不會執(zhí)行
&&運算符,舉例
#include<stdio.h>
int main()
{
int a=-1,b=0;
if(a++&&b++)
printf("%d %d",b,a);
if(++b&&++a)
printf("%d %d",a,b);
return 0;
}
想想程序的輸出結(jié)果是什么
答案是:
1 2
程序的流程是
先定義變量a=-1,b=0,然后進(jìn)入第一個if()判斷,&&左邊的值是-1,右邊的值為0,所以此if()下的語句不執(zhí)行,但是由于&&左側(cè)為true,所以&&右側(cè)的b++也會得到執(zhí)行,此行結(jié)束時,a的值為0,b的值為1。
第二次if(),左邊的值為2,右邊的值為1,所以`if()``下的語句得到執(zhí)行,輸出a的值1,b的值2。
||運算符同理,如果左邊的表達(dá)式的值為true,則右邊的表達(dá)式不會執(zhí)行。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實例
這篇文章主要介紹了C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實例,并且轉(zhuǎn)換后會統(tǒng)計二進(jìn)制1的個數(shù),實例簡單明了,需要的朋友可以參考下2014-06-06
C++20 新特性 協(xié)程 Coroutines(2)
上篇文章簡單給大介紹了 C++20 特性 協(xié)程 Coroutines co_yield 和 co_return 那么這篇文章繼續(xù)給大家介紹C++20 的新特性協(xié)程 Coroutines co_await,需要的朋友可以參考一下2021-10-10
C語言實現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用鏈表
C++面向?qū)ο笾惡蛯ο竽切┠悴恢赖募?xì)節(jié)原理詳解

