[情報] 運算優先順序表

看板C_and_CPP (C/C++)作者 (喔喔)時間16年前 (2009/07/03 23:48), 編輯推噓8(806)
留言14則, 7人參與, 最新討論串1/1
這是以前看書的筆記,除了一般常見的運算優先順序和結合順序 的整理之外,還有lvalue和rvalue的區別,以及控制evaluation order的整理。 運算子 說明 範例 結果 結合性 控制運算順序 () Grouping (exp) exp N/A No ---------------------------------------------------------------------------- () Function call rexp(rexp,rexp) rexp L-R No [] Subscript rexp[rexp] lexp L-R No . Structure member lexp.member lexp L-R No -> Struct pointer member lexp->member lexp L-R No ++ Postfix increment lexp++ rexp L-R No -- Postfix decrement lexp-- rexp L-R No ---------------------------------------------------------------------------- ! Logical negate !rexp rexp R-L No ~ One's complement ~rexp rexp R-L No + Unary plus +rexp rexp R-L No - Unary minus -rexp rexp R-L No ++ Prefix increment ++lexp rexp R-L No -- Prefix decrement --lexp rexp R-L No * Indirection *rexp lexp R-L No & Address of &lexp rexp R-L No sizeof Size in bytes sizeof rexp rexp R-L No sizeof(type) rexp R-L No ----------------------------------------------------------------------------- (type) Type conversion (type)rexp rexp R-L No ----------------------------------------------------------------------------- * Multiplication rexp * rexp rexp L-R No / Division rexp / rexp rexp L-R No % Integer remainder rexp % rexp rexp L-R No ----------------------------------------------------------------------------- + Addition rexp + rexp rexp L-R No - Subtraction rexp - rexp rexp L-R No ----------------------------------------------------------------------------- << Left shift rexp << rexp rexp L-R No >> Right shift rexp >> rexp rexp L-R No ----------------------------------------------------------------------------- > Greater than rexp > rexp rexp L-R No >= Greater than or equal rexp >= rexp rexp L-R No < Less than rexp < rexp rexp L-R No <= Less than or equal rexp <= rexp rexp L-R No ----------------------------------------------------------------------------- == Equal to rexp == rexp rexp L-R No != Not equal to rexp != rexp rexp L-R No ----------------------------------------------------------------------------- & Bitwise AND rexp & rexp rexp L-R No ----------------------------------------------------------------------------- ^ Bitwise exclusive OR rexp ^ rexp rexp L-R No ----------------------------------------------------------------------------- | Bitwise inclusive OR rexp | rexp rexp L-R No ----------------------------------------------------------------------------- && Logical AND rexp && rexp rexp L-R Yes ----------------------------------------------------------------------------- || Logical OR rexp || rexp rexp L-R Yes ----------------------------------------------------------------------------- ?: Conditional rexp?rexp:rexp rexp R-L Yes ----------------------------------------------------------------------------- = Assignment lexp = rexp rexp R-L No += Add to lexp += rexp rexp R-L No -= Subtract from lexp -= rexp rexp R-L No *= Multiply by lexp *= rexp rexp R-L No /= Divide by lexp /= rexp rexp R-L No %= Modulo by lexp %= rexp rexp R-L No <<= Shift left by lexp <<= rexp rexp R-L No >>= Sgift right by lexp >>= rexp rexp R-L No &= AND with lexp &= rexp rexp R-L No ^= Exclusive OR with lexp ^= rexp rexp R-L No |= Inclusive OR with lexp |= rexp rexp R-L No ----------------------------------------------------------------------------- , Comma rexp, rexp rexp L-R Yes -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.162.51

07/03 23:50, , 1F
純推不下; 小弟自首我都用()解決問題....(羞/淚奔Q_Q~)
07/03 23:50, 1F

07/03 23:51, , 2F
> Greater than 這個有加顏色是打錯還是特別意思?
07/03 23:51, 2F

07/03 23:53, , 3F
(竊笑) 樓上z大被BBS回文符號的變色給騙了....XDDD
07/03 23:53, 3F

07/03 23:53, , 4F
BBS系統讀到 ">" 為首會自動變色
07/03 23:53, 4F

07/03 23:53, , 5F
07/03 23:53, 5F

07/03 23:53, , 6F
想起來了,果然是回文的符號沒錯...
07/03 23:53, 6F

07/03 23:55, , 7F
看到assign group的好懷念, 以前助教課都會拐學生....
07/03 23:55, 7F

07/03 23:57, , 8F
+=, *=, &=, != ... != 不是 Not to/from/by/with 喔XD
07/03 23:57, 8F

07/04 09:57, , 9F
問一下一樓的做法:其實這樣才是好的CODEING STYLE吧
07/04 09:57, 9F

07/04 09:57, , 10F
不然要看的時候還要在那邊想...
07/04 09:57, 10F

07/04 11:02, , 11F
?:其實也是有結合性的 a?b:c?d:e是a?b:(c?d:e)
07/04 11:02, 11F

07/04 11:02, , 12F
應該算是R-L (?)
07/04 11:02, 12F

07/04 11:16, , 13F
應該是樓上說的沒錯 謝謝!
07/04 11:16, 13F
※ 編輯: FRAXIS 來自: 140.119.162.51 (07/04 11:20)

07/04 12:27, , 14F
這篇可以m了
07/04 12:27, 14F
文章代碼(AID): #1AJYXMP7 (C_and_CPP)
文章代碼(AID): #1AJYXMP7 (C_and_CPP)