從新學了一下c語言,發現每次看過c語言中的運算子之後,過一段時間便忘了各種運算子的優先順序及結合順序,每次都要翻書,各種苦逼,好吧,這次順便整理一下。
優先順序
運算子
名稱或含義
使用形式
結合方向 說明
1 陣列下標
陣列名[常量表示式]
左到右 ()
圓括號(表示式)/函式名(形參表) .
成員選擇(物件)
物件.成員名
->
成員選擇(指標)
物件指標->成員名 2
-負號運算子
-表示式
右到左單目運算子
(型別)
強制型別轉換
(資料型別)表示式 ++
自增運算子
++變數名/變數名++
單目運算子 --
自減運算子
--變數名/變數名--
單目運算子 *
取值運算子
*指標變數
單目運算子 &
取位址運算子
&變數名
單目運算子 !
邏輯非運算子
!表示式
單目運算子 ~
按位取反運算子
~表示式
單目運算子
sizeof
長度運算子
sizeof(表示式) 3
/ 除表示式/表示式
左到右雙目運算子 *
乘表示式*表示式
雙目運算子 %
餘數(取模)
整型表示式/整型表示式
雙目運算子 4
+ 加表示式+表示式
左到右雙目運算子 -
減表示式-表示式
雙目運算子 5
<< 左移
變數《表示式
左到右雙目運算子
>> 右移
變數》表示式
雙目運算子 6
> 大於
表示式》表示式
左到右雙目運算子
>=
大於等於
表示式》=表示式
雙目運算子
< 小於
表示式《表示式
雙目運算子
<=
小於等於
表示式<=表示式
雙目運算子 7
== 等於
表示式==表示式
左到右雙目運算子 !=
不等於表示式!= 表示式
雙目運算子 8
&按位與
表示式&表示式
左到右雙目運算子 9
^按位異或
表示式^表示式
左到右雙目運算子 10
|按位或
表示式|表示式
左到右雙目運算子 11
&&邏輯與
表示式&&表示式
左到右雙目運算子 12
||邏輯或
表示式||表示式
左到右雙目運算子 13
?:條件運算子
表示式1? 表示式2: 表示式3
右到左三目運算子 14
=賦值運算子
變數=表示式
右到左 /=
除后賦值
變數/=表示式 *=
乘後賦值
變數*=表示式 %=
取模後賦值
變數%=表示式 +=
加後賦值
變數+=表示式 -=
減後賦值
變數-=表示式
<<=
左移後賦值
變數<<=表示式
>>=
右移後賦值
變數》=表示式 &=
按位與後賦值
變數&=表示式 ^=
按位異或後賦值
變數^=表示式 |=
按位或後賦值
變數|=表示式 15
,逗號運算子
表示式,表示式,…
左到右從左向右順序運算
說明:同一優先順序的運算子,運算次序由結合方向所決定。
簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子
C ?運算子整理
例如 a null null a.x 這是最常見的問號?運算子。支援 所有版本c c 中null值不能賦值給值型別,如果值型別需要設定可為空則須用 system.nullable t定義,簡寫成t?t 例如 system.nullable total 可簡寫為 int?total 支援 net fr...
C語言 運算子與 運算子
我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...
C語言 運算子和 運算子
變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...