運算子優先順序怎麼記憶比較好?

時間 2021-05-31 05:43:36

1樓:李四四

沒想到還真有這個問題,我來介紹一下我的經驗,我編了乙個關於C語言表示式運算子的順口溜,應對考試應該沒什麼問題。

1括號方框最特殊//特殊符號()優先順序最高2加加減減是單目//++--是單目運算子,優先順序為2級3運算關係和邏輯

4雙目左向右算起//運算關係和邏輯是雙目運算子,最常用,運算順序為從左向右算起

5三目賦值很靠後//三目運算子,賦值運算子優先順序分別是13級和14級6但有逗號來兜底//逗號優先順序最低,為15級7取非嘆號很特殊

8他要放在單目裡//特別要注意的是!雖然是邏輯運算子,但是屬於單目運算子

所以整體的順口溜為

括號方框最特殊

加加減減是單目

運算關係和邏輯

雙目左向右算起

三目賦值很靠後

但有逗號來兜底

取非嘆號很特殊

他要放在單目裡

編的不是很押韻,但記下來應付考試絕對夠用了希望可以幫到大家 @二弟目的是,祝大家考試順利

2樓:自動化數位化之芯

先記憶基礎的,再在基礎基礎上拓展。

c++中的算術運算子、關係運算子和邏輯運算子的優先順序如下:

邏輯非!》算術運算子》關係運算子〉邏輯與、邏輯或

3樓:

優先順序:

括號 > 單目[!, +正, -負] > 單目位邏輯[~] > 算數[*乘,/除,%餘,+加,-減]

> 位移[<<,>>] > 關係[>,>=,<,邏輯[&&,||] > 三目[? :] > 賦值[=]總結一:單目必然大於雙目,雙目必然大於三目

4樓:太初有為

優先順序是給編譯器看的,區分優先順序最好的方法就是加括號。沒必要為了方便編譯器記一堆優先順序麻煩自己吧?啥?寫一堆不帶括號的條件表示式逼格會高?那都是屁嗑。

5樓:陳碩

呃,至少,位運算(bitwise operator)一定要條件反射般加上括號。

手頭正好有乙個 BSD kernel 裡用錯優先順序的例子,[base] Diff of /head/sys/netinet/udp_usrreq.c。這個 bug 是 1993 年 5 月引進的 [csrg] Diff of /sys/netinet/udp_usrreq.

c,存活了 4 年半,1998 年 1 月才被修復。

6樓:

括號非自加,

運算把手拉,

關係和邏輯,

把值賦給它。

這個是大學學習C語言時編的,優先順序降序排列,括號優先順序最高,然後是非(!),自加、自減運算,最後是賦值。

7樓:陳良喬

各種運算子的優先順序,至今我都沒有記住,也沒有打算去記這些繁瑣的東西那麼我是怎麼解決運算子的優先順序問題的呢?

讓表示式盡量簡單,這樣在同乙個表示式中的運算子就比較少了,我只需要記住小學時候學習的乘除高於加減,基本上就不會遇到運算子的優先順序的問題了

使用括號明確地表達運算順序,不依賴於運算子的預設優先順序,如果需要調整運算順序,用括號明確表達。比如,!a&&b,我就不知道到底是先計算!

還是先計算&&,但是有了括號,我想讓他先先計算!就先計算!——(!

a)&&b,想讓他先計算&&就先計算&&——!(a&&b),根本用不著去記那些讓人頭疼的運算子優先順序

把握了這兩點,我就不需要記那些複雜繁瑣的運算子的優先順序了感謝#@林文 的補充:

優先順序只需要記得乘除高於加減,括號高於一切我深以為然。

在《C程式設計伴侶》和《我的第一本C++書》中,有更詳盡的闡述。

可以參考有客棧

c 中的運算子優先順序是如何實現的?

42nd Mu00 乙個簡單的寫法是 假設一元運算子比所有的二元運算子優先順序都高,二元運算子優先順序固定則優先順序高的則一定是優先順序低的操作符的子項接下來可以令乙個函式接收層級負責生成每層優先順序對應的解析函式 可以是模板函式 這樣呼叫最低優先順序對應的解析函式,就可以獲得根節點只需要乙個函式和...

如何過載 運算子?

XZiar operator返回乙個double 或者不就夠了,使用時裡的第二個是指標自帶。不過存多維陣列的話我還是推薦扁平化 C 怎麼實現效率盡可能高地帶邊界檢查的多維陣列模板類? 果凍蝦仁 與其過載不如過載 你所需要的操作它都能滿足,而且也不失優雅。這種表達,很容易聯想到一種資料型別,那就是矩陣...

python的邏輯運算子 and,or,not 和普通的邏輯運算子( )有何區別?

追遠 J 先糾正題主的乙個小錯誤。跟 同屬一家的運算子應該是 而非 這個問題還挺有意思 對問題本身的回答其實並不複雜 原則上講,and,or,not針對布林值 True False 進行運算,就是字面上的與或非的功能,確實可以稱之為邏輯運算子 類似C C 中的 而 則對應C C 中所謂的 按位運算子...