1. c語言符號且與或
C語言中的邏輯運算符:&&(與運算)、||(或運算)、!(非運算)。
與運算符(&&)和或運算符(||)均為雙目運算符。具有左結合性。非運算符(!)為單目運算符,具有右結合性。邏輯運算符和其它運算符優先順序的關系可表示如下:
本來沒有錯誤,關系運算符都是按「非與或」順序來運算的。但是,不同的編譯器設計者可能對這個的認識不同,因此,如果不加括弧就會有歧義,因此,編譯器就會提醒應該加括弧(編譯中有警告:waring),但你不加,也不算錯,只是其結果就是按編譯器的運算順序來操作了。
&&是與,||是或;
&是位與,|是位或;
|就是按住shift在按回車上面一個按鈕;
兩下就是||;
這個不是錯誤,是警告warning,編譯器怕記不住操作符優先順序,而導致錯誤,因此提示||的優先順序高於!=。
(1)c語言與和或同時存在運算擴展閱讀
C語言內置了豐富的運算符,大體可分為10類:算術運算符、關系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求位元組數運算符和特殊運算符。
根據運算符可操作的操作數的個數,可把運算符分為一元運算符、二元運算符和多元運算符(一般三元)。優先順序:當不同運算符優先順序不同時,先計算誰後計算結合性:當不同運算符優先順序相同時,先計算誰後計算誰。
2. 關於C語言中 || 和 &&的用法
「||」「&&」表示邏輯運算,「||」表示或者的意思,「&&」表示並且的意思。
&&運算符需要兩個表達式作為操作數,並創建一個表達式,只有當兩個子表達式都為true時,該表達式才為true。
||運算符需要兩個表達式作為操作數,並創建一個表達式,當任何一個子表達式為true時,該表達式為true。只要其中一個子表達式為true,則整體表達式為true,此時另外一個子表達式無論是false還是true都無關緊要。
運算符的優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:
指針最優,單目運算優於雙目運算,如正負號。先算術運算,後移位運算,最後位運算。請特別注意:邏輯運算最後結合。
3. C語言中的 與或非運算
C語言中的與、或、非是C語言的邏輯運算符。
1、邏輯與
在C語言中邏輯與用&&表示。
舉例:a&&b(其中a、b都代表一個條件)
如果a和b都為真,則結果為真,如果a和b中有一個條件為假,則結果為假。
2、邏輯或
在C語言中邏輯或用||表示。
舉例:a||b(其中a、b都代表一個條件)
如果a和b有一個或以上為真,則結果為真,二者都為假時,結果為假。
3、邏輯非
在C語言中邏輯非用!表示。
舉例:!a(a代表一個條件)
如果a為假,則!a為真,如果a為真,則!a為假。
(3)c語言與和或同時存在運算擴展閱讀
在C 語言中的邏輯運算符及優先順序:
一元:!(邏輯非)。
二元:&&(邏輯與)、||(邏輯或)。
以上三種邏輯運算符中,邏輯非 ! 的優先順序最高,邏輯與 && 次之,邏輯或 || 優先順序最低。即算術、邏輯、賦值運算符的優先順序順序為:
邏輯非 ! >算術 > 邏輯與 &&、邏輯或 || > 賦值=
4. c語言與或運算
先計算
x&&y
就是2&&1,兩邊都是真值,所以結果是真,為1
再算1
||z
,||運算兩邊只要有一個1,結果就是1
所以 x&&y‖z
結果是1
再執行
x=1,所以結果
x為1
5. C語言邏輯運算符&&和||同時存在時候,不應該先算&&嗎
這題估計90%以上的人答不對。
按照標准,&&的優先順序高於||,應該是先計算++y&&++z,然後計算 ++x||1
但編程測試卻發現,是先運算了||,由於||是從左向右執行,所以,計算了++x後,就不計算了(++x為true)。
至於為什麼出現這種情況,我沒找到合理的解釋,期待專家解惑吧。
只能認為是寫編譯器的人,把|| 和 && 當作同級處理了。
所以在做實際項目時,也要避免這種情況,用()來確定運算的先後順序。
----------------------------------
明白了,表達式解析為:++x || (++y&&++z)
&&優先順序確實是高,所以,(++y&&++z)做為一個整體。
而||的規則就是,左側為true,右側不執行。 所以,即便是++x || (),右面是括弧,優先順序最高,也是先執行||左側的。
6. C語言中與或非的運算方法是什麼
&&與運算時,只有兩邊同時成立時為真的,具有短路效應,即若左邊為假時,就不再判斷右邊的結果了!
\\或運算時兩邊只要有一個成立就是真的,也具有短路效應,即若左邊為真時,就不再判斷右邊的結果了!
!非運算,結果取反!
7. C語言&&和||的運算方法
或運算||,從最坐邊一個開始判斷,只要遇到第一個為真,後面的就不再執行
if((a=2)||(b=1)) c=2;
將2賦給a,a=2≠0,直接得到(a=2)||(b=1)為真,後面的b=1不再執行。
8. c語言中同或、異或怎麼表示
同&&
或||
異!
拓展資料:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
9. c語言兩個邏輯運算符 || && 同時出現在一條語句里,先運算哪個
包括:1。&&邏輯與
2。||邏輯或
3。!邏輯非
邏輯運算符用於對包含關系運算符的表達式進行合並或取非
對於使用邏輯運算符的表達式,返回0表示「假」,返回1表示「真」。關於邏輯運算符的解釋
請注意:任何使用兩個字元做符號的運算符,兩字元之間不應有空格,即將==寫成=
=是錯誤的。
假設一個程序在同時滿足條件a<10和b==7時,必須執行某些操作。應使用關系運算符和邏輯運算符「與」來寫這個
條件的代碼。用&&表示「與」運算符,該條件代碼如下:
(a<10)
&&
(b==7);
類似地,「或」是用於檢查兩個條件中是否有一個為真的運算符。它由兩個連續的管道符號(||)表示。如果上例
改為:如果任一語句為真,則程序需執行某些操作,則條件代碼如下:
(a<10)
||
(b==7);
第三個邏輯運算符「非」用一個感嘆號(!)表示。這個運算符對表達式的真值取反。例如,如果變數s小於10,程序
程序需執行某些操作,則條件代碼如下:
(s<10)
或
(!(s>=10))
//s不大於等於10
關系運算符和邏輯運算符的優先順序一般都低於算術運算符。例如,5>4+3的計算與5>(4+3)運算符是一樣的,即
先計算4+3,再執行關系運算。此表達示的結果為「假」,即,將返回0。
下面的語句
printf("%d",5>4+3);
將輸出
0
可以總結為:&&的結果是真真為真。||的結果是假假為假。
10. c語言中「與」和「或」的優先順序是什麼
與>或 ,更細一點是:! ---> & ---> ^ ---> | ---> && ---> ||。C語言中的運算優先順序和算數優先順序一樣,只要把運算符的優先順序記住就可以了。
經過n遍的調試,證明:||和&&優先順序相等,且都是從左往右運算;在出現||和&&的語句中,並不對a++進行運算,只判斷它的初值。當然,這條語句結束後,涉及判斷的表達式就會進行相應的運算(如:a++)。
在&&運算中,如果&&前面的邏輯值為0(如:令a=0;a++&&b++,此時,a還沒有進行++運算,仍為0。但是在本語句結束後就自加1),則結束本語句;如果&&前面的邏輯值為1,則繼續判斷&&後面的值是否為1,如果為1,則繼續判斷後面的邏輯運算;如果為0,而結束本語句。
優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。
相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:
指針最優,單目運算優於雙目運算。如正負號。
先算術運算,後移位運算,最後位運算。請特別注意:1邏輯運算最後結合。
以上內容參考:網路-運算符優先順序