c語言邏輯運算子,C語言中邏輯運算子的規則是什麼

時間 2021-08-11 17:37:24

1樓:伊婷婷

c語言中的邏輯運算子就三種,&&與||或!非,它們的優先極順序為非,與,或。它們含義如下,!:

當操做數為真時,結果為假,反之也成立,並且它的優先極也最高,因為只有它是單目運算子,&&:只有當兩個操做數都為真時,結果才為真,否則為假。||:

只有當兩個操做數都為假時,結果才為假,否則結果為真。除了這些,邏輯運算子還有幾點應注意,!運算子是右結合性,&&和||是左結合性。

在邏輯表示式求解時,並不是所有的邏輯運算子都被執行,只是在必須執行下一個邏輯運算子才能求表示式的解時,才能執行該運算子。如 補充: a&&b&&c只有a為真(非0),才判別b的值,只有a和b都為真情況下才判斷c的值,只要a為假,就不用判斷b和c的值了。

a||b||c只要a為真就不必判斷b和c,只有a為假,才判斷b,a和b都為假才判斷c

2樓:匿名使用者

*****

*****凡是c語言中的運算子大都有與之對應的運算元,而且運算元的資料型別往往都有一定的限制。c語言的邏輯運算子比較特別,它的運算元沒有明確的資料型別,它們統稱邏輯值,但是這個邏輯值卻沒有與之對應的資料型別,比如c++裡面的bool已經windows裡面的bool,很遺憾c沒有自己的邏輯型別。

*****

*****c規定,所有帶有整形性質的資料型別都可以作為邏輯運算子的運算元,包括所有整形(有符號/無符號int、long),字元型(有符號/無符號char),以及所有指標。這些資料型別定義的變數,都與一個整數對應,只要這個整數不是0,c就把它當作邏輯值的『真』,只有當變數值為0時,變數對應的邏輯值才為『假』。

*****

*****編譯器是如何使用這種『真』『假』值呢?一般在選擇判斷語句,即if語句。只要if()括號裡的值非零,編譯器就認為條件滿足(假設成立),從而執行後面的語句組。

*****

*****準備好了嗎? 現在可以開始談運算子了。運算子就是對以上介紹的一個或多個邏輯值(可以用1統一代表非零作為真值,用0代表假值)進行運算的符號,其中有「&&」、「||」、「!

」三個。第一個,對兩個邏輯值做「與運算」,只有當兩個邏輯值都為真時結果才是真,可以理解成邏輯值相乘;第二個,對兩個邏輯值做「或運算」,只要兩個邏輯值其中一個為真結果就為真,可以理解成邏輯值相加;第三個,求反,顧名思義,運算元邏輯值為真,求反運算結果則為假,反之亦然。

*****

*****說了不少,不知夠不夠清楚,舉幾個例子吧。

// example 1:

int intvalue;

long longvalue;

char charvalue;

long* plong;

intvalue = -100;

longvalue = 0;

charvalue = 'a';

plong = &longvalue;

// 與 「&&」

if( (intvalue

// 或 「||」

if( (intvalue

// 求反 「!」

if(!plong)

******

******花了30多分鐘回答你的問題,哈哈!成copy的啦!隨便你怎麼想,你要是覺得我寫的東西對你沒幫助的話,我沒有什麼好說的......

3樓:修者世界

c語言中邏輯運算子有三個:

1、&&:與運算,表示兩個物件只要有一個為0,結果就為0,全為1則結果為1

2、||:或運算,表示兩個物件只要有一個為1,則結果為1,全為0則結果為0

3、!:非運算,表示對運算物件取反,物件為0,結果為1,物件為1,結果為0

4樓:花開傷落

你看得是什麼教材啊 這個教材應該都會說的

問題1,2 都是關於這個++符號的問題 這個你看書自學去 都被說爛了問題3 (c=1)&&(c=3)&&(c=5) 這個式子中 c=1 c=3 c=5 這三個表示式的值分別為

1 3 5,結合邏輯運算子&& 從左到右 計算 ,每個表示式都為真 (非0即為真)

所以 整個式子都為真

推薦看教材 c primer plus.

5樓:102錄影導航

1.&& 與

1&&1 運算結果是1

1&&0 運算結果是0

0&&1 運算結果是0

0&&0 運算結果是0

2.|| 或

1||1 運算結果是1

1||0 運算結果是1

0||1 運算結果是1

0||0 運算結果是0

3.! 非

!1 運算結果是0

!0 運算結果是1

它們的運算是通過計算機硬體來實現的,規定就是這樣.

6樓:匿名使用者

1.&& 與運算子

都為1時才1,其他為0

例子:1&&1 是1

1&&0 0&&1 0&&0 這三個結果都為02.|| 或運算子

只要有一個為1,其結果就為 1

1||1 1||0 0||1 結果都為1唯獨 0||0 是0

3.! 非運算子

相反,即1變0 0變1

!1 是0

!0 是1

c語言中邏輯運算子的規則是什麼

7樓:匿名使用者

1、邏輯運算子運算規則:

|| 或:比

如兩個條件中,只要有一個成立,則結果就成立;

&&與:比如兩個條件中,兩個同時成立,則結果成立,否則不成立;

!非,就是取反之意,如果是真,結果是假,如果是假,結果是真。

2、邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。下為c語言邏輯運算||和&&的真值表:

8樓:匿名使用者

邏輯運算子把各個運算的變數(或常量)連線起來組成一個邏輯表示式。

邏輯運算子有4個,它們分別是: !(邏輯非)、 ||(邏輯或)、&&(邏輯與) ^(異或)。在位運算裡面還有 &(位與)、|(位或)的運算。

什麼是邏輯運算--邏輯運算用來判斷一件事情是「對」的還是「錯」的,或者說是「成立」還是「不成立」,判斷的結果是二值的,即沒有「可能是」或者「可能不是」,這個「可能」的用法是一個模糊概念,在計算機裡面進行的是二進位制運算,邏輯判斷的結果只有二個值,稱這二個值為「邏輯值」,用數的符號表示就是「1」和「0」。其中「1」表示該邏輯運算的結果是「成立」的,如果一個邏輯運算式的結果為「0」,那麼這個邏輯運算式表達的內容「不成立「。

例 1:通常一個教室有二個門,這二個門是並排的。要進教室從門a進可以,從門b進教室也行,用一句話來說是「要進教室去,可以從a門進『或者』從b門進」

用邏輯符號來表示這一個過程--能否進教室用符號c表示,教室門分別為a和b。c的值為1表示可以進教室,為0 表示進不了教室。a和b的值為1時表示門是開的,為0表示門是關著的,列表如下:

說明 c a b 2個教室的門都關著,進不去教室 0 0 0 門b是開著的,可以進去 1 0 1 門a是開著的,可以進去 1 1 0 門a和b都是開著的,可以進去 1 1 1

把表中的過程寫成邏輯運算就是: c = a || b 這就是一個邏輯表示式,它是一個「或」運算的邏輯表示式。這個表示式要表達的是這個意思--如果要使得c為1,只要 a「或」b其中之一為 1即可以達到。

所以「||」運算稱為「或」運算。

思考--如果有一個表示式 c = a || b || c 怎樣理解這個邏輯表示式?

例 2:假設一個房間外面有一個晒臺,那麼這個房間就縱向開著二個門,要到晒臺去,必須要過這二個門,很明顯這二個門必須都是開著的才行,否則只要其中一個門關著就去不了晒臺。列表如下:

說明 c a b 二個門都關著,去不了晒臺 0 0 0 門a關著,去不了晒臺 0 0 1 門b關著,去不了晒臺 0 1 0 門a與門b都開著,可以去晒臺 1 1 1

把表中的過程寫成邏輯運算式就是: c = a && b && c ,用一句話來描述這個表示式--如果要使得c為1,必須a『與』b都為1才行,否則其中任一個為0,c就為0。所以「&&」運算子稱為「與」運算。

思考--如果有一個表示式 c = a && b && c 怎樣理解這個邏輯表示式?

例 3:有一個問題如下,有一個晚會,對參加晚會的人有一定的條件限制,教師可以參加,學生當中只有年齡達到16歲以上的男生才能參加,怎樣用上面所講的邏輯運算來表達這樣的邏輯關係?

設能夠參加晚會為d,教師為a,男生為b,16歲以上為c,可以用下式來描述:

d = a || ( b && c ) /*這個表示式可以理解嗎,可以參照上面**用0、1來寫一下*/

例 4:下面是一個程式,用到了if判斷語句(if是如果的意思)

#include

void main()

邏輯量和邏輯值

在邏輯表示式裡有參加邏輯運算的邏輯量及邏輯運算最後的結果(邏輯值),把這二個概念區分開來和記住它們是很重要的。

什麼是邏輯量--凡是參加邏輯運算的變數、常量都是邏輯量。

我們來仔細分析一下哪些是邏輯量,哪些是邏輯值。

要表達一件事情是否成立是這樣描述的:「如果他來了,這件事情一定能成功」。用程式語句描述就是 if(a!

=0)在這個語句裡用變數a來表示他來與不來這件事,變數的值為1說明他來了,為0就是不來。在c語言中,一般不寫成這樣(如果一定要寫成if(a!=0),別人一看你的程式就知道你是程式設計菜鳥),而是寫成 if(a)。

括號裡面的變數a就是邏輯量。當該邏輯量的邏輯值為1時,if表示式為真,這時可以執行if 後的的程式語句。當該邏輯量的邏輯值為0時,if表示式為假,就不能執行if後面的程式語句。

可以看出,if表示式能否成立是要看「邏輯量」最後的「邏值值」是否為1來判斷的。

什麼是邏輯值--邏輯量、邏輯表示式其最後的運算結果的值就是邏輯值。邏輯值只能是「0」和「1」這二個數。「1」表示邏輯真(成立);「0」表示邏輯假(不成立)。

一切非「0」的邏輯量其邏輯值都為真。正確理解這句話很重要。例:

if(-1),這一句可以這樣來分析--首先「-1」是一個非「0」的邏輯量,它的邏輯值為「1」,那麼這個if語句就成為 if(1),這個if表示式成立。

思考:下面的式子中,哪個語句不被執行

int a=0,b=10; if(a) a+=10; if(b) if(b)a=0;

c語言中進行邏輯運算時要注意的問題:

例1:現在要判斷一個變數的值是否在12到30之間,很自然想到了這樣一個表示式:

scanf("%d",&a);

if(1212則為真,否則為假。設a的值為14,些時表

c語言邏輯運算子順序,C語言邏輯運算子順序

邏輯運算子有三種,分別為 與運算 或運算 非運算 三者的優先順序順序為 ps.1 與運算子 和或運算子 均為雙目運算子。具有左結合性。非運算子 為單目運算子,具有右結合性。2 和 優先順序低於關係運算子,優先順序高於算術運算子。 a b c 1 a b c b c a b c ls,貌似 的優先順序...

c語言邏輯運算子問題,c語言邏輯運算子 我不明白 和 到底是怎麼運算的

x y z 優先順序,所以上式等價於 x y z 這裡 x和 y z 是同級別的,表示式從左往右掃描,x成立,後面就直接跳過,輸出100 x y z 同理,優先順序 x y z x值是0,跳過 y 但是這隻能說明 的左邊是0,右邊還是要計算的,z執行了,所以最後輸出0,1,0 說明白點,這裡的優先順...

C語言邏輯運算,c語言邏輯運算子 我不明白 和 到底是怎麼運算的

if 條件表示式 語句1 語句2 if是條件判斷的關鍵字,後面的小括號裡包含的是條件表示式。如果條件表示式為非0,執行大括號 裡的 語句1 如果條件表示式值為0,則不執行 裡的 語句1 而是調過 語句1 直接執行 語句2 你這個問題的條件表示式是 i k i j j k 這個表示式被兩個 分為了三部...