優先順序運算子
結合律助記
1::
從左至右
作用域2
a++
、a--
、
type()
、type{}
、
a()
、a
、
.
、->
從左至右
字尾自增減、
函式風格轉型、
函式呼叫、下標、
成員訪問
3!
、~
、
++a
、--a
、+a
、-a
、
(type)
、sizeof
、&a
、
*a
、
new
、new
、delete
、delete
從右至左邏輯非、按位非、
字首自增減、正負、
c 風格轉型、取大小、取址、
指標訪問、
動態記憶體分配
4.*
、->*
從左至右
指向成員指標
5a*b
、a/b
、a%b
從左至右
乘除、取模 7
<<
、>>
從左至右
按位左右移
從左至右
大小比較
11^
從左至右
按位異或
12|
從左至右
按位或16
,
從左至右
逗號
--摘自《c語言程式設計實用問答》問題:如何記住運算子的15種優先順序和結合性?
解答:c語言中運算子種模擬較繁多,優先順序有15種,結合性有兩種。
如何記憶兩種結合性和15種優先順序?下面講述一種記憶方法。
結合性有兩種,一種是自左至右,另一種是自右至左,大部分運算子的結合性是自左至右,只有單目運算子、三目運算子的賦值運算子的結合性自右至左。
優先順序有15種。記憶方法如下:
記住乙個最高的:構造型別的元素或成員以及小括號。
記住乙個最低的:逗號運算子。
剩餘的是
一、二、三、賦值。
意思是單目、雙目、三目和賦值運算子。
在諸多運算子中,又分為:
算術、關係、邏輯。
兩種位操作運算子中,移位運算子在算術運算子後邊,邏輯位運算子在邏輯運算子的前面。再細分如下:
算術運算子分 *,/,%高於+,-。
關係運算子中,〉,〉=,<,<=高於==,!=。
邏輯運算子中,除了邏輯求反(!)是單目外,邏輯與(&&)高於邏輯或(||)。
邏輯位運算子中,除了邏輯按位求反(~)外,按位與(&)高於按位半加(^),高於按位或(|)。
這樣就將15種優先順序都記住了,再將記憶方法總結如下:
去掉乙個最高的,去掉乙個最低的,剩下的是
一、二、三、賦值。雙目運算子中,順序為算術、關係和邏輯,移位和邏輯位插入其中。
運算子優先順序 C 運算子優先順序
c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...
C 運算子優先順序表
precedence operator description example associativity1 grouping operator array access member access from a pointer member access from an object scopin...
運算子優先順序表
c 語言運算子優先順序 詳細列表 運算子的優先順序 語言中,運算子的運算優先順序共分為15級。1 級最高,15級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。而在乙個運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。運算子的結合性 語言中各運算子的結合性分為兩種...