當表示式中只有乙個運算子的時候,例如a + b
,不存在優先順序,因為一定是計算加法。
當表示式中含有2個或2個以上的運算子的時候,表示式被稱為復合表示式(compound expression)。
優先順序(precedence)指的是在計算復合表示式時,運算子按照規定的順序計算。
例如a + b * c
要先計算乘法b * c
再計算加法。
本文將列出c++中所有的運算子及其優先順序。
下面的**,按照優先順序將運算子分組。
組的位置越靠前,優先順序越高;
同一組內的優先順序相同。
(參考《c++ primer(第5版)》)
結合律運算子
功能用例
左值與右值左::
全域性作用域
::name左::
類作用域
class::name左::
命名空間作用域
namespace::name左.
成員訪問
object.member
與運算物件相同
左->
成員訪問
pointer->member
運算物件是乙個指標型別,返回乙個左值
左[ ]
下標expr[expr]左()
函式呼叫
name(expr_list)左()
型別構造
type(expr_list)右++
後置遞增運算子
lvalue++
運算物件是左值,物件原始值的副本作為右值返回右–
後置遞減運算子
lvalue–
運算物件是左值,物件原始值的副本作為右值返回
右typeid
型別id
typeid(type)
右typeid
執行時型別id
typeid(expr)
右explicit cast
型別轉換
cast_name(expr)右++
前置遞增運算
++lvalue
運算物件是左值,物件本身作為左值返回右–
前置遞減運算子
–lvalue
運算物件是左值,物件本身作為左值返回右~
位求反~expr右!
邏輯非!expr
運算物件和求值結果都是右值右-
一元負號
-expr
運算物件和求值結果都是右值右+
一元正號
+expr
運算物件和求值結果都是右值右*
解引用*expr右&
取位址&lvalue右()
型別轉換
(type) expr
右sizeof
物件的大小
sizeof expr
右sizeof
型別的大小
sizeof(type)
右sizeof…
引數包的大小
sizeof…(name)
右new
建立物件
new type
右new
建立陣列
new type[size]
右delete
釋放物件
delete expr
右delete
釋放陣列
delete expr
右noexcept
能否丟擲異常
noexcept(expr)
左->*
指向成員選擇的指標
ptr->*ptr_to_member左.*
指向成員選擇的指標
obj.*ptr_to_member左*
乘法expr * expr
運算物件和求值結果都是右值左/
除法expr / expr
運算物件和求值結果都是右值左%
取模(取餘)
expr % expr
運算物件和求值結果都是右值左+
加法expr + expr
運算物件和求值結果都是右值左-
減法expr - expr
運算物件和求值結果都是右值
左<<
向左移位
expr << expr
左》向右移位
expr >> expr
左<
小於expr < expr
運算物件和求值結果都是右值
左<=
小於等於
expr <= expr
運算物件和求值結果都是右值
左》大於expr > expr
運算物件和求值結果都是右值
左》=大於等於
expr >= expr
運算物件和求值結果都是右值左==
相等expr == expr
運算物件和求值結果都是右值左!=
不相等expr != expr
運算物件和求值結果都是右值左&
位與expr & expr左^
位異或expr ^ expr左|
位或expr | expr左&&
邏輯與expr && expr
運算物件和求值結果都是右值左||
邏輯或expr || expr
運算物件和求值結果都是右值
右? :
條件cond ? expr1 : expr2
當expr1和expr2都是左值或者能轉換成同一種左值型別時,結果是左值;否則結構是右值右=
賦值lvalue = expr
左側運算物件是乙個可修改的左值,結果是乙個左值
右*=, /=, %=
復合賦值
lvalue += expr等
與賦值運算子一樣
右+=, -=
右<<=, >>=
右&=, |=, ^=
右throw
丟擲異常
throw expr左,
逗號expr1, expr2
如果expr2是左值,則結果是左值;否則右值
C64X EDMA優先順序及優先順序佇列
下圖為edma傳輸請求方框圖 從圖中我們可以看到,請求有三種 ll2控制器傳輸請求 l2控制器發布所有用於cache服務的傳輸請求 如訪問非cache記憶體 qdma傳輸等。對c64x dsp,cache服務請求可以在任何優先順序上產生,這可以通過cache配置暫存器 ccfg 的p位來設定。對於讀...
HTML引用CSS樣式方式及左右優先順序
一 引用方式 一 內聯樣式 width 400px height 300px border 4px ddd solid margin 15px auto 內聯樣式 div 二 內部樣式 doctype html text css boxview style head boxview 內容展示文字.d...
nginx之location匹配優先順序及順序
nginx通過server塊中location配置用以匹配不同url訪問 location配置方式主要包括精準匹配 普通匹配和正則匹配 location expression 精準匹配 location expression 普通匹配 location expression 普通匹配 locatio...