基本的優先順序需要記住:
指標最優,單目運算優於雙目運算。如正負號。
先乘除(模),後加減。
先算術運算,後移位運算,最後位運算。
請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.
邏輯運算最後計算。
c語言常用運算子的優先順序口訣是:「單算關邏條賦逗」;
如果加入位運算子,完整口訣是:「單算移關與,異或邏條賦」。
■「算」表示算術運算子:乘、除和求餘(*,/,%)級別高於加減(+,-);
■「移」表示按位左移(<<)和位右移(>>);
■「關」表示關係運算子:大小關係(>,>=,<,<=)級別高於相等不相等關係(==,!=);
■「與」表示按位與(&);
■「異」表示按位異或(^);
■「或」表示按位或(|);
■「邏」表示邏輯運算子:邏輯與(&&)級別高於邏輯或(||);
■「條」表示條件運算子(? :);
■「賦」表示賦值運算子(=,+=,-=,*=,/=,%=,>>=,<<=,&=,^=, |=,!=);
◆另,逗號運算子(,) 級別最低,口訣中沒有表述,需另加記憶..
優先順序
運算子
名稱或含義
使用形式
結合方向 說明
1
後置++
後置自增運算子
變數名++
左到右
後置--
後置自減運算子
變數名--
[ ]
陣列下標
陣列名[整型表示式]
( )
圓括號
(表示式)/函式名(形參表)
.
成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->成員名
2-
負號運算子
-表示式
右到左單目運算子
(型別)
強制型別轉換
(資料型別)表示式
前置++
前置自增運算子
++變數名
單目運算子
前置--
前置自減運算子
--變數名
單目運算子 *
取值運算子
*指標表示式
單目運算子 &
取位址運算子
&左值表示式
單目運算子 !
邏輯非運算子
!表示式
單目運算子 ~
按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof 表示式/sizeof(型別)
3/
除 表示式/表示式
左到右雙目運算子 *
乘表示式*表示式
雙目運算子 %
餘數(取模)
整型表示式%整型表示式
雙目運算子
4+
加 表示式+表示式
左到右雙目運算子 -
減表示式-表示式
雙目運算子
5
<< 左移
表示式《表示式
左到右雙目運算子
>> 右移
表示式》表示式
雙目運算子
6
> 大於
表示式》表示式
左到右雙目運算子
>=
大於等於
表示式》=表示式
雙目運算子
< 小於
表示式《表示式
雙目運算子
<=
小於等於
表示式<=表示式
雙目運算子
7==
等於 表示式==表示式
左到右雙目運算子 !=
不等於表示式!= 表示式
雙目運算子
8&
按位與
整型表示式&整型表示式
左到右雙目運算子
9^
按位異或
整型表示式^整型表示式
左到右雙目運算子
10|
按位或
整型表示式|整型表示式
左到右雙目運算子
11&&
邏輯與
表示式&&表示式
左到右雙目運算子
12||
邏輯或
表示式||表示式
左到右雙目運算子
13?:
條件運算子
表示式1? 表示式2: 表示式3
右到左三目運算子
14=
賦值運算子
變數=表示式
右到左
/= 除后賦值
變數/=表示式
*= 乘後賦值
變數*=表示式
%= 取模後賦值
變數%=表示式
+= 加後賦值
變數+=表示式
-= 減後賦值
變數-=表示式
<<=
左移後賦值
變數<<=表示式
>>=
右移後賦值
變數》=表示式
&= 按位與後賦值
變數&=表示式
^= 按位異或後賦值
變數^=表示式
|= 按位或後賦值
變數|=表示式
15,
逗號運算子
表示式,表示式,…
左到右從左向右順序運算
轉換說明符:
%a(%a) 浮點數、十六進製制數字和p-(p-)記數法(c99)
%c 字元
%d 有符號十進位制整數
%f 浮點數(包括float和doulbe)
%e(%e) 浮點數指數輸出[e-(e-)記數法]
%g(%g) 浮點數不顯無意義的零"0"
%i 有符號十進位制整數(與%d相同)
%u 無符號十進位制整數
%o 八進位制整數 e.g. 0123
%x(%x) 十六進製制整數0f(0f) e.g. 0x1234
%p 指標
%s 字串
%% "%"
C語言運算子的「優先順序口訣」
c語言運算子的 優先順序口訣 希望對初學c語言的同志有所幫助 當然,應用這個口訣的前提是你認識所有的c語言的運算子。優先訣括號成員第一 括號運算子 成員運算子 全體單目第二 所有的單目運算子比如 正 負 指標運算 乘除餘三,加減四 這個 餘 是指取餘運算即 移位五,關係六 移位運算子 關係 等 等於...
C語言運算子優先順序和口訣
因運算子的優先順序順序不太好記憶,且易造成一些費解的問題。經整理後,希望對大家有所幫助 序號 運算子 口訣 01 圓括號 陣列下標 成員選擇 物件 成員選擇 指標 括號成員第一,全體單目第二 02 自增 自減 正 負 邏輯非 取反 取位址 sizeof 長度 取值 type 強制型別 03 乘 除 ...
C語言運算子優先順序和口訣
一共有十五個優先順序 1 2 負號 取變數位址 type 強制型別 sizeof 3 4 5 6 7 8 9 10 11 12 13 14 15 就著多吧 結合性 2 13 14 是從右至左 其他都是 從左至右有問題可以在交流的 共同進步 括號成員第一 括號運算子 成員運算子.全體單目第二 所有的單...