C語言運算子

2021-09-18 04:48:11 字數 3242 閱讀 8181

目錄

算術運算子

關係運算子

邏輯運算子

位運算子

賦值運算子

特殊運算子

運算子的優先順序

運算子描述例項

+加法運算子

int a = 5 + 5;

int b = a + 5;

-減法運算子,負值運算子

int a = 10 -5;

int b = -5;*乘法

int a = 3 * 5;

int b = a * 2;

/除法(得到商)

float a = 10.0 / 4;

float b = 10 / 4;

%取餘(得到餘數)

int a = 5 % 2;

int b = 2 % 5;

++自增

int a = 2;

int b = a ++;

int c = ++ a;

--自減

int a = 5;

int b = a --;

int c = -- a;

運算子描述

例項==

檢查兩個運算元的值是否相等,如果相等則表示式的值為真。

a == b

!=檢查兩個運算元的值是否不相等,如果不相等則表示式的值為真。

a != b

>

檢查左運算元的值是否大於右運算元的值,如果是則表示式的值為真。

a > b

<

檢查左運算元的值是否小於右運算元的值,如果是則表示式的值為真。

a < b

>=

檢查左運算元的值是否大於或者等於右運算元的值,如果是則表示式的值為真。

a >= b

<=

檢查左運算元的值是否小於或等於右運算元的值,如果是則表示式的值為真。

a <= b

運算子描述

例項&&

邏輯與運算子。如果兩個運算元都為真,則表示式的值為真。

a && b

||邏輯或運算子。兩個運算元中有乙個為真,則表示式的值為真。

a || b

!邏輯非運算子。如果運算元為真,則表示式的值為假;如果運算元為假,則表示式的值為真。

!a說明:

利用!!作用於乙個運算元,可以得到取值只有0和1的表示式的值。

運算子描述例項&

按位與運算子

a & b

|按位或運算子

a | b

~按位取反運算子

~ a^

異或運算子

a ^ b

<<

左移運算子。將左運算元的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補0)。

a << n

>>

右移運算子。將左運算元的各二進位制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

a >> n

說明:《和》運算子作用於整數相當於乘以或者除以2^n,不能作用於浮點數。

運算子描述例項=

把右運算元的值賦給左運算元

a = 2;

+=把右運算元加上左運算元的結果賦值給左運算元

a += 2;

-=把左運算元減去右運算元的結果賦值給左運算元

a -= 2;

*=把右運算元乘以左運算元的結果賦值給左運算元

a *= 2;

/=把左運算元除以右運算元的結果賦值給左運算元

a /= 2;

%=把左運算元除以右運算元的餘數賦值給左運算元

a %= 2;

<<=

把左運算元左移右運算元的位數的結果賦值給左邊運算元

a <<= 2;

>>=

把左運算元右移右運算元的位數的結果賦值給左邊運算元

a >>= 2;

&=把左右運算元按位與的結果賦值給左運算元

a &= b;

|=把左右運算元按位或的結果賦值給左運算元

a |= b;

^=把左右運算元按異或的結果賦值給左運算元

a ^= b;

運算子描述

例項sizeof()

獲取變數或型別所占用的記憶體位元組數

sizeof(a);//返回變數a的位元組數

sizeof(int);//返回型別int的位元組數

&取位址運算子

&a;//返回變數a的記憶體位址

*取值運算子

*a;//返回變數a的記憶體位址儲存的值

? :條件運算子

(a > 0 )? (b = 1) : (b = 0);//如果a大於0則b賦值1,否則b賦值0

優先順序運算子

描述結合方向

1[ ]

陣列下標

從左到右

( )圓括號。(表示式);函式名(形參)

.成員選擇(結構體變數)

->

成員選擇(結構體指標)2-

負號運算子

從右到左

( )強制型別轉換

++自增運算子

--自減運算子

*取值運算子

&取位址運算子

!邏輯非運算子

~按位取反運算子

sizeof( )

獲取變數或者型別占用的位元組數3*

乘法運算子

從左到右

/除法運算子

%取餘運算子4+

加法運算子

從左到右

-減法運算子

5<<

左移運算子

從左到右

>>

右移運算子

6>

大於從左到右

>=

大於等於

<

小於<=

小於等於7==

等於從左到右

!=不等於8&

按位與從左到右9^

異或從左到右10|

按位或從左到右

11&&

邏輯與從左到右

12||

邏輯或從左到右

13? :

條件運算子

從右到左14=

賦值運算子

從右到左

+=加後賦值

-=減後賦值

*=乘後賦值

/=除后賦值

%=取餘後賦值

<<=

左移後賦值

>>=

右移後賦值

&=按位與後賦值

^=異或後賦值

|=按位或後賦值15,

逗號運算子

從左到右

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...

C語言 運算子和 運算子

變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...

C語言運算子

1級優先順序左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子 字尾增量運算子 字尾增量運算子 2級優先順序右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首增量運算子 負號運算子 型別 型別轉換運算子 指標運算子 位址與運算子 sizeof 長度運算子 3級優先順序左結合 ...