C語言運算子整理

2021-09-01 13:56:28 字數 2020 閱讀 4552

從新學了一下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 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...