C語言邏輯運算優先順序問題,C語言邏輯運算 優先順序問題?

2022-09-06 06:00:18 字數 6659 閱讀 6306

1樓:童之新

d= a && ++b || ++c;

按照運算子優先順序先&&在||,所以先a && ++b,在|| ++ca=0所以a&&++b的結果就已經出來了,為0,++b就不用算,在然後在判斷++c,所以a=0,b=0,c=1,d=1

w=x || ++y && ++z;中++y&&++z優先順序高,他們的計算結果將與x在進行或運算,但x為1,所以這個或運算右邊的式子已經沒有算的必要了,他們的結果一定為1,即w=1

2樓:莊政警

w=x || ++y && ++z;

因為&&優先於||, 所以x || ++y && ++z就是x || (++y && ++z),總體上看就是個或表示式,x==1,那麼整個表示式就必然為真,於是(++y && ++z)就被忽略

3樓:甲修影一號

w=x||++y&&++z時,因為w=x可以成立,所以執行w=x,則w=1;

而||是邏輯或,前者正確,後者不執行,所以++y&&++z不執行,因此z還是你最初定義的z=0

本人也是程式設計小白,若有錯誤請見諒。

若有幫助請採納。

4樓:

因為x=1,x是大於0的,所以||符號前面是成立的,那麼||後面的運算和判斷都不執行,直接把邏輯值1賦值給w,所以w=1,後面的++y和++z都不執行,都為0。

5樓:種朵苟慧麗

你是說為什麼先執行++a吧?其實c程式除了符號優先順序還有一種叫求值順序,例如a||b,那麼電腦會先對a求值,如果a是真,那麼電腦就不會再理會b的內容了並返回邏輯值1.如果a的結果為假則電腦才會對b進行求值。

本題電腦先求出++a是2,所以結果是真,電腦不再理會||右邊的資料,直接返回邏輯值1(真)。

c語言的運算子的優先順序:邏輯運算子、條件運算子、賦值運算子、關係運算子、算術運算子。它們之間的優先順序

6樓:

邏輯——算數——關係——條件判斷——賦值

7樓:匿名使用者

這個可以找一本c++的書看一下,上面有一章就是專門介紹這個的,有個表,一目瞭然,便於記憶,希望你能多看看書!

8樓:匿名使用者

一般而言,單目運算子優先順序較高,賦值運算子優先順序低。算術運算子優先順序較高,關係和邏輯運算子優先順序較低。多數運算子具有左結合性,單目運算子、三目運算子、賦值運算子具有右結合性。

恩,問這個問題的人太多了,懶得繼續回答,直接貼上來自己看。。。

優先順序運算子

名稱或含義

使用形式

結合方向說明1

陣列下標

陣列名[常量表示式]

左到右()

圓括號(表示式)/函式名(形參表)

.成員選擇(物件)

物件.成員名

->成員選擇(指標)

物件指標->成員名2-

負號運算子

-表示式

右到左單目運算子

(型別)

強制型別轉換

(資料型別)表示式

++自增運算子

++變數名/變數名++

單目運算子

--自減運算子

--變數名/變數名--

單目運算子

*取值運算子

*指標變數

單目運算子

&取地址運算子

&變數名

單目運算子

!邏輯非運算子

!表示式

單目運算子

~按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof(表示式)3/

除表示式/表示式

左到右雙目運算子*乘

表示式*表示式

雙目運算子

%餘數(取模)

整型表示式/整型表示式

雙目運算子4+

加表示式+表示式

左到右雙目運算子-減

表示式-表示式

雙目運算子

5<<左移變數《表示式

左到右雙目運算子

>>右移變數》表示式

雙目運算子

6>大於表示式》表示式

左到右雙目運算子

>=大於等於

表示式》=表示式

雙目運算子

<小於表示式《表示式

雙目運算子

<=小於等於

表示式<=表示式

雙目運算子7==

等於表示式==表示式

左到右雙目運算子

!=不等於

表示式!= 表示式

雙目運算子8&

按位與表示式&表示式

左到右雙目運算子9^

按位異或

表示式^表示式

左到右雙目運算子10|

按位或表示式|表示式

左到右雙目運算子

11&&

邏輯與表示式&&表示式

左到右雙目運算子

12||

邏輯或表示式||表示式

左到右雙目運算子

13?:

條件運算子

表示式1? 表示式2: 表示式3

右到左三目運算子14=

賦值運算子

變數=表示式

右到左/=

除後賦值

變數/=表示式

*=乘後賦值

變數*=表示式

%=取模後賦值

變數%=表示式

+=加後賦值

變數+=表示式

-=減後賦值

變數-=表示式

<<=左移後賦值

變數<<=表示式

>>=右移後賦值

變數》=表示式

&=按位與後賦值

變數&=表示式

^=按位異或後賦值

變數^=表示式

|=按位或後賦值

變數|=表示式15,

逗號運算子

表示式,表示式,…

左到右從左向右順序運算

說明:同一優先順序的運算子,運算次序由結合方向所決定。

簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子

c語言中邏輯運算子非"!"與"&&"或"||"的優先順序怎麼說?

9樓:a羅網天下

邏輯非的優先順序最高,邏輯與次之,邏輯或最低,即:!(非) → &&(與) → ||(或)

記憶口訣:not(非) and(與) or(或)

運算規則

1)&&:當且僅當兩個運算量的值都為"真"時,運算結果為"真",否則為"假"。

2) || :當且僅當兩個運算量的值都為"假"時,運算結果為"假",否則為"真"。

3) ! :當運算量的值為"真"時,運算結果為"假";當運算量的值為"假"時,運算結果為"真"。

例如,假定x=5,則(x>=0) && (x<10)的值為"真",(x<-1) || (x>5)的值為"假"。

優先順序

優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表示式求值順序是從左到右。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。

基本的優先順序需要記住:

指標最優,單目運算優於雙目運算。如正負號。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.

邏輯運算最後結合。

10樓:喜歡種蘑菇

同一優先順序的運算子,結合次序由結合方向所決定。簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子。

11樓:飛雪射鹿笑倚鴛

c語言中邏輯運算子優先順序非"!"與>"&&">"||",建議混合使用的時候加上括號,這樣的**便於自己和其他人維護。

12樓:我喜歡蘆潔

「!」>「&&」>「‖」

13樓:

不知道的就加括號,這是常識,不必記

c語言提供3種邏輯運算子,按優先順序高低它們分別是

14樓:文化廚子

c語言中的三種邏輯運算子為:邏輯非(!),邏輯與(&&)、邏輯或(||)。

按優先順序從高到低排列:!、&&、||,!的優先順序最高,&&的優先順序居中,||的優先順序最低。

15樓:匿名使用者

您好,sa團隊給出的答案優先次序:!(非)→&&(與)→||(或)

16樓:匿名使用者

邏輯運算子的優先順序是相同的,且只有兩個。這兩個邏輯運算子是 : &&、||

c語言中的邏輯運算子按優先順序別是?

17樓:萇童銳舟

要了解c語言bai

運算子優先順序du

高低就先從通常數學zhi上運算優先順序高低說起。

dao通常,一專個數學算式裡如屬果有加減乘除和括號,我們會先算括號裡面的式子,再算括號外面的乘除再然後才是加減。那麼這時候我們說括號的優先順序比加減乘除的要高,所以我們就先計算括號裡的式子。然後是乘除,再然後才是加減。

其中加減乘除就是運算子。所以運算子的高低決定了運算的先後順序。

同理。c語言中的運算優先順序和這一個樣,只要你把運算子的優先順序記住就可以了。

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

18樓:匿名使用者

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19樓:

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

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

下標運算子

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

、 結構體成員運算子

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

~ 按位取反運算子

++ 自增運算子

-- 自減運算子

- 負號運算子

(型別) 型別轉換運算子

* 指標運算子

& 地址運算子

sizeof 長度運算子

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

/ 除法運算子

% 求餘運算子

12 + 加法運算子

- 減法運算子

11 << 左移運算子

>> 右移運算子

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

9 == 等於運算子

!= 不等於運算子

8 & 按位與運算子

7 ^ 按位異或運算子

6 | 按位或運算子

5 && 邏輯與運算子

4 || 邏輯或運算子

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

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

/=、%=、>>=、

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

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

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

c語言中關係運算子的優先順序高於邏輯運算子嗎

是的不是有個優先順序歌嗎 圓方括號箭頭一句號.自增自減非反負,針強地址長度,乘除,加減,再移位,小等大等,等等不等,八位與,七位異,六位或,五與,四或,三疑,二賦,一真逗.c語言中邏輯運算子 的優先順序高於算術運算子。邏輯非 即 操作符 優先順序高於算術運算子。所有的單目操作符優先順序都高於雙目和三...

c語言中與的優先順序,C語言中和的優先順序問題

1,1,1,true 1賦值給c,c賦給b,b賦給a。然後,第二個表示式的話結果肯定是布林值,而有題目觀之,此表示式不為0,所以d為true 優先順序 輸出是2 1 1 1 a b c 等同於 a b c 而對於 來說,先算左邊表示式的值 和ll運算子都是同一優先順序的,是自左向右結合運算,該程式的...

c語言中算術運算子優先順序的問題C語言中算術運算子優先順序的問題

1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 正號運算子 負號運算子 型別 型別轉換運算子 指標運算子 地址與運算子 sizeof 長度運算子 3級優先順序 左結合 乘法運算子 除...