C語言學習筆記 操作符總結

2021-09-29 13:11:49 字數 2953 閱讀 5850

算術操作符

移位操作符

位操作符

賦值操作符

單目操作符

關係操作符

邏輯操作符

條件操作符

逗號表示式

下標引用,函式呼叫和結構成員

+求兩個數的和

-求兩個數的差

*求兩個數的積

/求兩個數的商

%取模(兩個數相除的餘數)

注意事項:左移操作符

<<

右移操作符

>>

邏輯移位和左移類似

int a = 5;

其二進位制序列是:

0000 0000 0000 0000 0000 0000 0000 0101

右移一位的結果就是:

0000 0000 0000 0000 0000 0000 0000 0010 (a>>1)

算數移位左邊不能直接用0填充,要根據資料的符號位來決定

int a = -1;

其二進位制序列(補碼)是:

1111 1111 1111 1111 1111 1111 1111 1111

由於a是負數,在移位時右邊填充的不是0,而是最高位的符號位:1;

所以右移一位的結果是:

1111 1111 1111 1111 1111 1111 1111 1111 (a>>1)

注意事項:&

按位與丨

按位或^

按位異或

& 按位與

0 & 0為0; 0 & 1 為0; 1 & 1為1;

int a = 5;

int b = 6;

二進位制序列分別是:

0000 0000 0000 0000 0000 0000 0000 0101

0000 0000 0000 0000 0000 0000 0000 0110

a & b的結果就是:

0000 0000 0000 0000 0000 0000 0000 0100

| 按位或

0 | 0為0; 0 | 1為1; 1 | 1為1;

int a = 5;

int b = 6;

a | b的結果就是:

0000 0000 0000 0000 0000 0000 0000 0111

^ 按位異或

0 ^ 0為0; 0 ^ 1為1; 1 ^ 1為0;

int a = 5;

int b = 6;

a ^ b的結果就是:

0000 0000 0000 0000 0000 0000 0000 0011

注意事項:=

把乙個變數的值或者乙個數值複製給另乙個變數;

int a = 1;

把1賦值給a變數;

int b = a;

把a變數的值賦值給b變數;

賦值運算子可以連續使用(不推薦);

int c = b = a ;

+=「x += y」 == 「x = x + y」

-=「x -= y」 == 「x = x - y」

*=「x *= y」 == 「x = x * y」

/=「x /= y」 == 「x = x / y」

%=「x %= y」 == 「x = x % y」

>>=

「x >>= y」 == 「x = x >> y」

<<=

「x <<= y」 == 「x = x << y」

!邏輯反操作-負值

+正值&取位址

sizeof

運算元型別長度(以位元組為單位)

~對乙個數的二進位制按位取反

–前置,後置–

++前置,後置++

*間接訪問操作符(解引用操作符)

(型別)

強制型別轉換

注意事項:sizeof不是函式,是乙個運算子!>

大於<

小於》=

大於等於

<=

小於等於

!=不相等

==等於

注意事項:不要將「==」和「=」搞混了!&&

邏輯與丨

邏輯或邏輯與 && ,當 && 符號兩邊表示式的值都為真的時候,結果為真;否則都為假。

邏輯或 || ,當 || 符號兩邊表示式的值都為0的時候,結果為假;否則都為真。

注意事項:

&&在運算時,從左到右依次判斷,如果左邊的表示式為假;則不會再判斷右邊的表示式(如果右邊是乙個賦值表示式,也不會被止執行)。

同理,||在運算時如果左邊的表示式為真,則不會再判斷右邊的表示式

exp1 ? exp2 : exp3

若exp1的值為真,則執行exp2,否則執行exp3。

逗號表示式,就是用逗號隔開的多個表示式。從左向右依次執行。整個表示式的結果是最後乙個表示式的結果。

int a = 2;

int b = 3;

int c = (a, b, a + b);

執行結束後c的值為5;

#include

void

test1()

void

test2

(const

char

*str)

intmain()

3.訪問乙個結構的成員

. 結構體.成員名

-> 結構體指標->成員名

#include

struct stu ;

void

set_age1

(struct stu stu)

void

set_age2

(struct stu* pstu)

intmain()

C語言學習總結 操作符

算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 除了 操作符之外,其他的幾個操作符可以作用於整數和浮點數。對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。對於 操作符如果兩個運算元都為整數,執行整數除法。...

C語言學習筆記 和 操作符

1 運算子用於在預處理期將巨集的引數轉換為字串 2 的轉換作用是在預處理期完成的,因此只在巨集定義中有效,即其他地方不能用 運算子 3 用法 define string x x printf s n string hello world 注意,hello world 不加引號!include def...

C語言操作符學習總結

操作符分類 除法 如果兩個運算元為整數,執行整數除法,只要有浮點型就執行浮點數除法。模 只能對整數進行 兩個數都為整數 左移 exp int a 10 b a 1 a 10 b 20 右移 exp int a 10 1 原碼 10000000 00000000 00000000 00000001 反...