C語言中比的優先順序高,但在這兩個同時出現時又按從左至右運算

2021-03-23 03:04:57 字數 5811 閱讀 7470

1樓:匿名使用者

|的&&比||的優先順序高; a||b&&c,是先運算b&&c ,再 a||(b&&c)。

程式驗證:

void main()

輸出結果為1。

2樓:匿名使用者

||&&優先順序是比||高

&&操作符的左運算元總是首先進行求值,如果他為真,然後再對右運算元進行求值

若左運算元為假,那麼右運算元就不再求值了。||操作符也有相同的特點,也是先對左運算元

進行求值,這是這兩個邏輯操作符的一大特點,這個行為常被稱為「短路求值」

然後就主要是看運算元的定義了,看他有沒有包括了表示式,上機試下就好

3樓:非突

|| 類似加法, && 類似乘法

4樓:

&&要高。

printf("%d",1||1&&0); 輸出1

在c語言中,,&& 和||的優先順序哪個高?

5樓:匿名使用者

,逗號運算在c語言中是最後的。&& || 是同級,看哪個在前就先算哪個。不過要注意的是&& ||都有不完全運送。

對於&&運送則從左到右進行判斷,如果左邊為0,則右邊不再計算,整個&&運算就是0.||運算也是從左到右,如果有左邊為1則右邊也不在計算,直接輸出1.

++a||++b&&++c這個就可以先判斷++a||++b,這裡呢,根據上述所說的進行判斷,如果1則繼續判斷&&,如果0則直接輸出0,不做最後的++c

6樓:匿名使用者

用機器上執行一下就知道了,這個先運算++a,如果是真(非0)就停止,如果是0,則再算++b

接下來,如果++b為0,則停止,如果++b不為0,就再算++c

7樓:沒有響應

&& 和||的優先順序一樣 按從左向右的順序計算

不過實際使用的時候最好不要靠優先順序 ()比優先順序可靠的多 用括號可以讓程式的可讀性提高出錯率降低 所以優先順序什麼的根本不用記

8樓:奈米言

從左自右,因為他們級別一樣!

c語言兩個邏輯運算子 || && 同時出現在一條語句裡,先運算哪個?

9樓:匿名使用者

&&的優先順序高於||,因此先執行&&

邏輯運算子的優先順序:

邏輯非 高於 邏輯與 高於 邏輯或

這兩個運算順序應該不一樣吧 注: &&優先順序大於||

10樓:註冊的使用者名稱

你說的很對,我們分別記表示式1,2,3為a,b,c,則上述兩行表示式分別為:

a || b&&c,即 a || (b&&c) , 用通常的邏輯表示式表述為 a+bc

(a || b)&&c , 用通常的邏輯表示式表述為 (a+b)c

這兩個肯定不一樣

11樓:巴比倫大淫婦

是的 ,兩個運算順序。

c語言中&&和||到底先算哪個?

12樓:忘記旅途了

這裡出現三個運算子,++>&&>||,所以先算++,a=++a=2,為真,後面就不算了,

&&前面是0時,&&符號後面的不計算.

||前面不是0時,||號後面的不計算.

所以x=1,a=2,b=1,c=1

13樓:匿名使用者

,逗號運算在c語言中是最後的。&& || 是同級,看哪個在前就先算哪個。不過要注意的是&& ||都有不完全運送。

對於&&運送則從左到右進行判斷,如果左邊為0,則右邊不再計算,整個&&運算就是0.||運算也是從左到右,如果有左邊為1則右邊也不在計算,直接輸出1.

++a||++b&&++c這個就可以先判斷++a||++b,這裡呢,根據上述所說的進行判斷,如果1則繼續判斷&&,如果0則直接輸出0,不做最後的++c

14樓:肖國林

其實計算機是這樣算的,他會以||為界將表示式分為兩部分,他會先算前一部分,如果前一部分為真,他將停止運算,如果為假,他才會算第二部分,你這裡第一部分就為真了,第二部分當然也就不會算了。關於計算機對表示式優先順序的判斷,如果你學了資料結構中棧的結構和應用你就明白了。不過像這種表示式,最好是手動加上括號,而不是靠計算機來自動識別優先順序。

像這樣的,我的編譯器都會警告,我都是會加上括號的,這樣就沒有警告了。如果不信你可以把&&和它的兩個運算元括起來,我相信結果還是這樣的。

15樓:公尺飯亦是菜餚啊

比|++比||和&&的優先順序都要高,如果優先順序高就先執行的話,那麼||和&&執行之前,全部數字(除了x)都已經是2了喲~

毫無疑問的是a||b&&c是等價於a||(b&&c)的,但對於||來說,即使右邊有乙個括號,但||還是會先計算左邊

16樓:匿名使用者

這個要由c的預設||處理方式說明,||只要有乙個成立就成立,所以++a後知道是非0就成立了,後面不執行。

17樓:冷天釋

目測樓主沒搞清楚為毛要從左開始算。。。。。。

建議先看&&和||的定義在說。

這個順序不是優先順序的問題,這是結合順序的問題。。。。。。。。

18樓:匿名使用者

它們的優先順序是一樣的。

19樓:匿名使用者

邏輯的「與」和「或」,運算順序上是同級的,誰在前面就先算哪個。

c語言中運算子有哪幾種,優先順序順序是怎樣

20樓:楓璽

c語言中,運算子除了常見的三大類,算術運算子、關

系運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子。

運算子的運算優先順序共分為15 級,1 級最高,15 級最低。 在表示式中,優先順序較高的先於優先順序較低的進行運算。而在乙個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合方向處理。

一級運算子:標識,常量,字串文字量,優先順序提公升表示式最優先執行。

二級運算子:陣列下標運算(expression)、函式呼叫(argument-expression-list)、成員訪問(identifier、 -> identifier)、字尾自增(i++)、字尾自減(i--)、 復合初始化(initializer-list)。

**運算子:字首自增(++i)、字首自減(--i)、單目轉型表式式(取位址& ,提領 * , 正號+ ,負號-、 位反~ 邏輯否!)、求型別長度(sizeof unary-expression)。

四級運算子:強制表示式成為type-name指定的型別( type-name ) cast-expression。

五級運算子:「 * 」 乘法運算子。

六級運算子:「 + 」加法運算子。

七級運算子:<< 左移運算子;>> 右移運算子。

八級運算子:<、<=、>、>=關係運算子。

九級運算子:「 == 」等於運算子;「 != 」不等於運算子。

十級運算子:「 & 」按位與運算子。

十一級運算子:「 ∧ 」按位異或運算子。

十二級運算子:「 | 」按位或運算子。

十**運算子:「&&」邏輯與運算子。

十四級運算子:「 || 」邏輯或運算子。

十五級運算子:? :條件運算子。

擴充套件資料

c語言中各運算子的結合性:

1、左結合性(自左至右):

例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合方向就稱為「左結合性」。

2、右結合性(自右至左)

自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算子是賦值運算子。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。

c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

21樓:匿名使用者

c語言的運算子包括單目運算子、雙目運算子、三目運算子,優先順序如下:

第1優先順序:各種括號,如()、等、成員運算子 . ;

第2優先順序:所有單目運算子,如++、--、!、~等;

第3優先順序:乘法運算子*、除法運算子/、求餘運算子%;

第4優先順序:加法運算子+、減法運算子-;

第5優先順序:移位運算子<<、>>;

第6優先順序:大於運算子》、大於等於運算子》=、小於運算子<、小於等於運算子<=;

第7優先順序:等於運算子==、不等於運算子!=;

第8優先順序:按位與運算子&;

第9優先順序:按位異或運算子^;

第10優先順序:按位或運算子|;

第11優先順序:邏輯與運算子&&;

第12優先順序:邏輯或運算子||;

第13優先順序:三目條件運算子 ?: ;

第14優先順序:各種賦值運算子,如=、+=、-=、*=、/= 等;

第15優先順序:逗號運算, 。

22樓:

優先順序 運算子 含義 運算子型別 結合方向

15 () 圓括號 單目 自左向右

下標運算子

—> 指向結構體成員運算子

、 結構體成員運算子

14 ! 邏輯非運算子 自右向左

~ 按位取反運算子

++ 自增運算子

-- 自減運算子

- 負號運算子

(型別) 型別轉換運算子

* 指標運算子

& 位址運算子

sizeof 長度運算子

13 * 乘法運算子 雙目 自左向右

/ 除法運算子

% 求餘運算子

12 + 加法運算子

- 減法運算子

11 << 左移運算子

>> 右移運算子

10 <、<=、>、>= 關係運算子

9 == 等於運算子

!= 不等於運算子

8 & 按位與運算子

7 ^ 按位異或運算子

6 | 按位或運算子

5 && 邏輯與運算子

4 || 邏輯或運算子

3 ?: 條件運算子 三目 自右向左

2 =、+=、-=、*=、

/=、%=、>>=、

<<=、&=、^=、|= 賦值運算子 雙目

1 , 逗號運算子 雙目 自左向右

中國物聯網校企聯盟技術部

c語言中他們的優先順序是一樣的嗎,C語言中移位和按位和的優先順序是怎麼樣的

由於 號有表示指標的一元運算子和表示乘法的二元運算子之分。所以,在表示指標時是高於 和 的 是 這三個嗎?若是,他們的優先順序是一樣的 是一樣的,同一級從左到右。c語言中 移位 和 按位 和 的優先順序是怎麼樣的 下面是c語言中所使用的運算子的優先順序和結合性 優先順序 運算子 結合性 最高 自左向...

c語言中,關於運算子和優先順序的問題,具體見圖

都是1啊 0 2 2 0 1 1 2 0 2 2 0 1 2 2 0 2 0 1 依次是1,1,0 c語言指標及運算子優先順序的問題 先執行vp 由於 是在變數後面的,返回vp原來的值 沒有執行 前的值 將0賦值給 vp 如果是 vp 0,則將0賦值給已經加1的指標中位址 雁引愁心去,山銜好月來。c...

c語言中for語句是怎麼用的c語言中兩個for語句的是怎樣迴圈的

c語言中for語句用法 for是c語言中的乙個關鍵字,主要用來控制迴圈語句的執行。舉例 int i for i 0 i 3 i i 0是初始化部分 i 3是迴圈判斷條件部分 當滿足此條件時才進入執行for迴圈中的語句 i 是執行完迴圈體語句後的操作 上面的for語句就是控制輸出3次helloworl...