作者FRAXIS (喔喔)
看板C_and_CPP
標題[情報] 運算優先順序表
時間Fri Jul 3 23:48:37 2009
這是以前看書的筆記,除了一般常見的運算優先順序和結合順序
的整理之外,還有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