先摘錄譚浩強《c程式設計》對運算子優先順序的兩點說明:
1. 同一優先順序的運算子,運算次序由結合方向來決定。
例如:a) * 與 / 具有相同的優先級別,其結合方向為自左向右,因此3 * 5 / 4的運算次序是先乘後除;
b) - 和 ++ 為同一優先順序,結合方向為自右向左,因此 - i ++ 相當於 - ( i ++ )。
2. 從上述表中可以大致歸納出各類運算子優先順序:
初等執行符->單目運算子->算術運算子->關係運算子->邏輯運算子->條件運算子->賦值運算子->逗號運算子
經過分析總結,編成順口溜6句以助記憶:
初等單目一二級, // 初等運算子和單目運算子分別是第1、2優先順序
乘除求餘加減移, // 這句裡面的運算子全歸為算術運算子,移表示移位
關係等於不等於, // 關係運算子(< <= > >=)
按位與來異或或, // 位運算子優先順序順序: & -> ^ -> |
邏輯與或條件弱, // 邏輯運算子優先順序順序: && -> ||,後面跟著優先順序比較低(弱)的條件運算子
賦值逗號一點破。 // 賦值,逗號最低
優先順序
運算子
名稱或含義
使用形式
結合方向
說明1
陣列下標
陣列名[常量表示式]
左到右()
圓括號(表示式)/函式名(形參表)
.成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->成員名2-
負號運算子
-表示式
右到左單目運算子
(型別)
強制型別轉換
(資料型別)表示式
++自增運算子
++變數名/變數名++
單目運算子
--自減運算子
--變數名/變數名--
單目運算子
*取值運算子
*指標變數
單目運算子
&取位址運算子
&變數名
單目運算子
!邏輯非運算子
!表示式
單目運算子
~按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof(表示式)3/
除表示式/表示式
左到右雙目運算子*乘
表示式*表示式
雙目運算子
%餘數(取模)
整型表示式/整型表示式
雙目運算子4+
加表示式+表示式
左到右雙目運算子-減
表示式-表示式
雙目運算子
5<<
左移變數《表示式
左到右雙目運算子
>>
右移變數》表示式
雙目運算子
6>
大於表示式》表示式
左到右雙目運算子
>=
大於等於
表示式》=表示式
雙目運算子
<
小於表示式《表示式
雙目運算子
<=
小於等於
表示式<=表示式
雙目運算子7==
等於表示式==表示式
左到右雙目運算子
!=不等於
表示式!= 表示式
雙目運算子8&
按位與表示式&表示式
左到右雙目運算子9^
按位異或
表示式^表示式
左到右雙目運算子10|
按位或表示式|表示式
左到右雙目運算子
11&&
邏輯與表示式&&表示式
左到右雙目運算子
12||
邏輯或表示式||表示式
左到右雙目運算子
13?:
條件運算子
表示式1? 表示式2: 表示式3
右到左三目運算子14=
賦值運算子
變數=表示式
右到左/=
除后賦值
變數/=表示式
*=乘後賦值
變數*=表示式
%=取模後賦值
變數%=表示式
+=加後賦值
變數+=表示式
-=減後賦值
變數-=表示式
<<=
左移後賦值
變數<<=表示式
>>=
右移後賦值
變數》=表示式
&=按位與後賦值
變數&=表示式
^=按位異或後賦值
變數^=表示式
|=按位或後賦值
變數|=表示式15,
逗號運算子
表示式,表示式,…
左到右從左向右順序運算
快速記憶 C語言 php的運算子優先順序 結合性
author selfimpr blog mail lgg860911 yahoo.com.cn 閱讀另由於是php程式設計師,所以對php的對應優先順序做類似分析.最後是用php和c中的?結合性的不同解釋 結合性 的問題.不正確的地方請各位指出.c語言運算子優先順序 共計15個等級 1.非運算子 ...
C 運算子優先順序記憶
為了方便自己記憶,將幾乎所有運算子編成口訣記憶 圓方括號域,箭頭一句號 位反邏非長強制,正負增減值取地 乘除加減再移位,大小等等等不等 八位與九位異或,十一二邏輯與或 條件賦值後逗號 1.圓方括號域,箭頭一句號 1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成員選擇 物件...
C 語言運算子優先順序(記憶口訣)
優先順序運算子 名稱或含義 使用形式 結合方向說明1 陣列下標 陣列名 常量表示式 左到右 圓括號 表示式 函式名 形參表 成員選擇 物件 物件.成員名 成員選擇 指標 物件指標 成員名2 負號運算子 表示式 右到左單目運算子 型別 強制型別轉換 資料型別 表示式 自增運算子 變數名 變數名 單目運...