c語言優先順序問題,C語言中和誰優先順序更高

2021-05-14 10:09:35 字數 5033 閱讀 1209

1樓:匿名使用者

改為

即可。不需要那麼多括號,而且!=0可以省略。

2樓:匿名使用者

當且僅當y或a為閏年數時

(y%4==0&&y%100!0||y%400==0)即當y是4的倍數時不能為100的倍數(否則為0)或y是400的倍數時為1.後面同理。

c語言中 &&和‖誰優先順序更高

3樓:匿名使用者

&& 的高

優先順序【高到低】:

第一級:

圓括號【()】、下標運算子【】、分量運算子的指向結構體成員運算子【->】、結構體成員運算子【.】

第二級:

邏輯非運算子【!】、按位取反運算子【~】、自增自減運算子【++ --】、負號運算子【-】、型別轉換運算子【(型別)】、指標運算子和取地址運算子【*和&】、長度運算子【sizeof】

第**:乘法運算子【*】、除法運算子【/】、取餘運算子【%】第四級:加法運算子【+】、減法運算子【-】第五級:

左移動運算子【<<】、右移動運算子【>>】第六級:關係運算子【< > <= >= 】第七級:等於運算子【==】、不等於運算子【!

=】第八級:按位與運算子【&】

第九級:按位異或運算子【^】

第十級:按位或運算子【|】

第十一級:邏輯與運算子【&&】

第十二級:邏輯或運算子【||】

第十**:條件運算子【?:】

第十四級:賦值運算子【= += -= *= /= %= >>= <<.= &= |= ^=】

第十五級:逗號運算子【,】

4樓:卩s灬飛飛

結果是1.

這個不是優先順序的問題。&&和||是同級的,從左往右計算。

這個問題是短路求值的問題。

b=0,!b這個表示式是真,!b||後面無論是什麼這個表示式都是真了。

所以後面的內容就不會再執行了。所以++a&&++c根本就沒有執行過。。

如果b=1的話,!b為假,所以就會執行後面的內容了,這是c就是2了。

5樓:匿名使用者

&& 高於||,就像是乘法高於加法一樣

6樓:匿名使用者

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

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

7樓:匿名使用者

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

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

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

8樓:沒有響應

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

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

9樓:編輯

與或非是同一級的啊,除非&&表示的是按位與,那麼||優先順序高一些

c語言優先順序問題

10樓:gta小雞

這個表示式可以確定的部分是:

1d+e先於c*的*執行,因為括號優先順序高於*2c*的*先於b+的+執行,因為*號優先順序高於+3a+的+先於b+的+執行,因為+號的結合性為從左至右除此之外的求值順序都是未知的,因為c語言標準沒有做定義。

所以abcd這四個答案都是錯誤的,屬於對優先順序、結合性和求值順序的理解不清。

c語言中的運算子優先順序高低是什麼意思

11樓:學雅思

運算子用於執行程式**運算,會針對一個以上運算元專案來進行運算。例如:2+3,其運算元是2和3,而運算子則是「+」。

運算子的優先順序是從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結合,同一行中的運算子的優先順序相同。

擴充套件資料

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

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

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

指標最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。

請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7。邏輯運算最後結合。

12樓:匿名使用者

要了解c語言運算子優先順序高低就先從通常數學上運算優先順序高低說起。

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

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

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

13樓:匿名使用者

比如 1+3*3

因為 *的優先順序比+高,所以先執行3*3,在+1。

其實這個不用在意,也不需要背,只要在你需要的運算順序下加()就行了。

比如 1+(3*3)

14樓:擁抱枯木

就是有不同運算子出現在同一個表示式中,求表示式的值時,優先順序高的運算子先結合求值再求優先順序低的,比如a+b*c,明顯*的優先順序比+高,所以先算b*c,得到的值加上a。另外有些符號優先順序相同,那就有從左到右結合,和從右到左結合,還需要再詳細嗎?

15樓:匿名使用者

誰的優先順序別高 就先執行它 的運算

c語言中運算子優先順序最小的是

16樓:星月小木木

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

所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。其它的都是從左至右結合。

具有最高優先順序的其實並不算是真正的運算子,它們算是一類特殊的操作。()是與函式相關,與陣列相關,而->及.是取結構成員。

其次是單目運算子,所有的單目運算子具有相同的優先順序,因此在我認為的 真正的運算子中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的

接下來是算術運算子,*、/、%的優先順序當然比+、-高了。

移位運算子緊隨其後。

其次的關係運算子中,< <= > >=要比 == !=高一個級別,不大好理解。

所有的邏輯操作符都具有不同的優先順序(單目運算子除外,!和~)

邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。

跟在其後的&&比||高。

接下來的是條件運算子,賦值運算子及逗號運算子。

在c語言中,只有4個運算子規定了運算方向,它們是&&、| |、條件運算子及賦值運算子。

&&、| |都是先計算左邊表示式的值,當左邊表示式的值能確定整個表示式的值時,就不再計算右邊表示式的值。如 a = 0 && b; &&運算子的左邊位為0,則右邊表示式b就不再判斷。

在條件運算子中。如a?b:c;先判斷a的值,再根據a的值對b或c之中的一個進行求值。

賦值表示式則規定先對右邊的表示式求值,因此使 a = b = c = 6;成為可能。

17樓:匿名使用者

(1)先(括號)內層,後(括號)外層。

解釋:有擴號時,最內層的括號中的東西先算,再一層層向外。

(2)先函式,後運算。

解釋:式中有函式,例如sqrt(),fabs(),sin()之類,先算函式。

(3)先算術,後關係,再邏輯。

解釋:邏輯表示式中,混有算術運算,要先算算術(加減乘除,函式)運算,再算關係(大小,等不等)運算。最後算邏輯(或與非),得到真假。

(4)先乘除,後加減。

解釋:同算術一樣,先做乘除,後做加減。

邏輯運算子「與」又叫邏輯乘,邏輯運算子「或」,又叫邏輯加,按先乘除,後加減,「與」比「或」優先。

(5)先左,後右

解釋:同級運算,先做左邊的,後做右邊的。

(6)搞不清,加括號。

解釋:自己寫算術表示式和邏輯表示式時,搞不清運算子優先順序,可以加括號,括號裡的總是先。

18樓:匿名使用者

%是除法取餘運算。

用於整數與整數運算。否則,不同的編譯器會得不同結果。

'%'為取餘運算子,用於把它前面的整數值或表示式除以其後面的整數值或表示式,結果為不能被後面的整數或表示式整除的最小整數,它後面的數值應該為大於1的正整數。如表中所示的"13%7",就表示13 除以7餘6。

作為雙目運算子,左右運算元可以是數值,也可以是表示式。

但'%'運算子的左右運算元必須是整數。

負數取餘運算ms vc++ 編譯器:

-4 % 6 = -4

6 % -4 = 2

19樓:匿名使用者

逗號,例如:for( i = 0, j = 0; i < 10; i++, j++ )

之後才是:=+=

-=*=

/=%=

&=^=

|=<<=

>>=

20樓:匿名使用者

記住乘除高於加減,其他的都用括號,不會出錯

21樓:是是非飛

「 ,」 逗號運算子

c語言中和有什麼區別,c語言中的break與Continue有什麼區別

是賦值操作 是比較是否相等操作 if i 1 是永遠成立的 if i 1 只有當1值是1才成立 i i是把數字1的值賦給i i 1是i的值等於1 前者為賦值,後者為判斷 是複製語句,是判斷前後是否相等 是賦值操作,是比較是否相等操作。你是初學吧!是賦值,例如inta 3 intb a 那麼b 3.關...

c語言中與有什麼區別C語言中和的區別

語言中 與 有三個區別 作用不同 輸出的值不同 使用方法不同。如下參考 一 作用不同 表示按位與運算,另外也是取地址符 例如 0010 1101,結果為0000 表示邏輯與運算 例如 if a 0 b 0 意思就是ifa為0並且b為0的時候,進行下一步操作。二 輸出的值不同 b輸出的值為2,說明b沒...

c語言中SIZEOF的問題,c語言中的 sizeof 問題

我來回答你的問題 sizeof函式的意思是統計變數長度。int的長度長2個位元組 char的長度長1個位元組 float的長度長4個位元組 union uuua的長度取決於其中成員中最長的變數的位元組長度,在這裡為char型別,共五個元素值,長度為5。那麼開始統計總長度也就是2 1 4 5 12 希...