c語言邏輯運算符
⑴ c語言邏輯運算符順序是什麼
LS,貌似&&的優先順序比||大 = 賦值語句結合性 自右相左
a=b=c=1;等價於 c = 1;b = c; a = b;
-------------------------
看了sunnyapi的回答我感覺有必要
對以上回答進行一點補充
首先聲明 ||和&&運算符均屬於短路運算符;
什麼是短路運算符舉個簡單例子
若 a = 1; a||a++;運行後結果是什麼,變數a值為多少?
||邏輯或對第一項a進行判斷是否為0,若不為零則返回值為1;且不在進行後面的a++運算,這就是短路運算符的特性,這樣一來,a的值還是1沒有改變,同理 a =0; 0&&a++;的運行結果為a=0;
舉個形象點的例子:
a=1 a就是真
b=0 b就是假
a||a-- 真||a++,既然已經有真的了就沒必要再判斷a--是否為真 1||a++;肯定是真的;
同理 b&&b++ ,假&&b--既然已經有假的了就沒有必要判斷b++真假,同時b++也就不會被執行
++a||++b&&++c;這個語句根據算數運算符的優先順序關系 &&的優先順序比||大 『可以這樣理解』
所以先運行對++a||++b 和 ++c進行邏輯與(&&)運算,並先判斷++a||++b是否為假若假則不進行++c;在判斷 ++a||++b 是否為真的過程中,進行了++a和++b的||(邏輯或)運算,在邏輯或運算中先判斷++a是否為零,這個過程中相當於 先a=a+1;再if (a!=0) 因為前面a=1,再運行++a,a這時等於2所以在if (a!=0) 成立則,不會運行++b;
所以
運行結果為a =2 ,b=c=1;
再程序執行++a||++b&&++c;這條語句的過程中只有a變數的值發生改變,而不是樓下說的那樣
「在執行「++a||++b&&++c;」語句之前完成自加運算」 這是錯的·
上述方法只是為了幫助你理解這個++a||++b&&++c;語句的意思
若我寫個a=b=c=1; ++a||++b&&++c||++a||++b&&++c||++a||++b&&++c;你說該怎麼理解?
挨個分析優先順序,?
那不得瘋了
所以那樣也沒必要++a||++b&&++c||++a||++b&&++c||++a||++b&&++c;只要由左到右依次運行這樣來判斷就好了就是(++a )語句1|| (++b&&++c||++a||++b&&++c||++a||++b&&++c)語句2
(++a)==2!=0所以嘛,語句2就不執行了 這樣判斷也符合 該語句的執行順序
⑵ C語言邏輯運算符問題
C表達式中的操作符按優先順序順序結合,本表達式中運算符的優先順序順序從高到低為:()、%、==、!=、&&、||。
所以表達式計算分解為:
temp1=year%4;
temp2=year%100;
temp3=year%400;
temp4=(temp1==0);
temp5=(temp2!=0);
temp6=(temp3==0);
temp7=(temp5&&temp6);
expr=(temp7||temp6);
所以操作符"!="的操作數為temp2和0,即(year%100)和0兩個表達式;
⑶ C語言中邏輯運算符用法是什麼
1、邏輯運算符是根據表達式的值來返回真值或是假值。在C語言中沒有專門的真值和假值,認定非0為真值,0為假值。
2、邏輯運算符運算規則:
|| 或:兩個條件中,只要有一個成立,則結果就成立;
&& 與:兩個條件中,兩個同時成立,則結果成立,否則不成立;
! 非:取反之意,如果是真,結果是假,如果是假,結果是真。
下為C語言邏輯運算||和&&的真值表:
⑷ 求人講解一下c語言三種邏輯運算符的用法。。實在搞不懂
1為正確,0為錯誤。且運算兩邊語句結果都為1的話,最終結果才為1,其他情況都為0。或運算只要有兩邊有一邊為1,最終結果就為1。
⑸ c語言邏輯運算符怎麼理解
C語言中的邏輯運算符使用規則如下:
1、邏輯運算符是根據表達式的值來返回真值或是假值。在C語言中沒有專門的真值和假值,認定非0為真值,0為假值。
2、邏輯運算符運算規則:|| 或:兩個條件中,只要有一個成立,則結果就成立;&& 與:兩個條件中,兩個同時成立,則結果成立,否則不成立;! 非:取反之意,如果是真,結果是假,如果是假,結果是真。
⑹ c語言中邏輯運算符是什麼
與: && : 有0則0. 0表示假,1表示真
或: || : 有1則1. 0表示假,1表示真
非: ! : 真變假, 假變真
⑺ c語言邏輯運算符
&&即邏輯與,只有左右側表達式都為真(非零)時,整個表達式值為真
!即邏輯非,操作數為真(非零)時,表達式值為假;反之則為真
||邏輯或,左右側表達式任意一個為真(非零)時,整個表達式值為真
⑻ C語言邏輯運算符
1 形式:
&&的形式為a&&b。
||的形式為a||b。
2 計算規則:
&&只有當a和b的值均非0時,結果為1,否則結果為0。
||只有當a和b的值均為0時,結果為0,否則結果為1。
3 優先順序:
&&的優先順序比||高,所以在寫在一起時,先計算&& 再計算||。
相同符號時,自左向右計算。
4 短路原則:
對於&&,如果左操作數a為0,那麼結果必然為0, 右操作數b將不參與計算。
對於||,如果左操作數a非0,那麼結果必然為1, 右操作數b將不參與計算。
⑼ C語言中的邏輯或運算符怎麼打出來
C語言中的邏輯或運算符可以按住shift鍵,接著按兩下enter上面的鍵就能打出來,接下來具體的演示一下:
1、按住shift鍵不鬆手,接著按兩下Enter上面的鍵,如下圖所示
⑽ C語言中邏輯運算符用法
1、邏輯運算符是根據表達式的值來返回真值或是假值。在C語言中沒有專門的真值和假值,認定非0為真值,0為假值。
2、邏輯運算符運算規則:
|| 或:兩個條件中,只要有一個成立,則結果就成立;
&& 與:兩個條件中,兩個同時成立,則結果成立,否則不成立;
! 非:取反之意,如果是真,結果是假,如果是假,結果是真。
下為C語言邏輯運算||和&&的真值表: