精華區beta C_and_CPP 關於我們 聯絡資訊
這是以前看書的筆記,除了一般常見的運算優先順序和結合順序 的整理之外,還有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
VictorTom:純推不下; 小弟自首我都用()解決問題....(羞/淚奔Q_Q~) 07/03 23:50
zlw:> Greater than 這個有加顏色是打錯還是特別意思? 07/03 23:51
VictorTom:(竊笑) 樓上z大被BBS回文符號的變色給騙了....XDDD 07/03 23:53
llewxam:BBS系統讀到 ">" 為首會自動變色 07/03 23:53
VictorTom: 引 07/03 23:53
zlw:想起來了,果然是回文的符號沒錯... 07/03 23:53
VictorTom:看到assign group的好懷念, 以前助教課都會拐學生.... 07/03 23:55
VictorTom:+=, *=, &=, != ... != 不是 Not to/from/by/with 喔XD 07/03 23:57
flax00298:問一下一樓的做法:其實這樣才是好的CODEING STYLE吧 07/04 09:57
flax00298:不然要看的時候還要在那邊想... 07/04 09:57
zerodevil:?:其實也是有結合性的 a?b:c?d:e是a?b:(c?d:e) 07/04 11:02
zerodevil:應該算是R-L (?) 07/04 11:02
FRAXIS:應該是樓上說的沒錯 謝謝! 07/04 11:16
※ 編輯: FRAXIS 來自: 140.119.162.51 (07/04 11:20)
herman602:這篇可以m了 07/04 12:27