操作符總結

2021-09-29 16:31:43 字數 3490 閱讀 2796

操作符是c語言學習中很重要的一部分。下面是我關於c語言學習中,對於操作符的總結。

1、算術操作符: + - * / %

+、-、*、/ :兩個數字相加減乘除。 這四個操作符可以用於整數和浮點數。特別注意用 『 / 』這個操作符時,如果兩個數都為整 數,那麼執行整數除法,有乙個數字為浮點數,則執行浮點數除法。除數為0沒有意義。

% :將兩個數字相除,取餘數。這個操作符的兩個運算元必須是整數。

例如 int a=44;

int b=10;

int c=a%b;

printf("%d",c); 輸出c的結果為4。

2、移位操作符: << >>

<< 左移操作符:(右邊補0,左邊拋棄)乙個數字的二進位制向左移一位,右邊補0

比如 :1 的二進位制: 00000000 00000000 00000000 00000001

左移一位: 00000000 00000000 00000000 00000010 結果為2

>> 右移操作符:1、邏輯移位(無符號數):左邊補0,右邊丟棄。

2、算數移位(有符號數) 左邊用該數字的符號位填充,右邊丟棄。右移時看變數自身的型別。

比如 :

-1 的二進位制位 (原碼)10000000 00000000 00000000 00000001

(反碼)11111111 11111111 11111111 11111110(除符號位,其他位按位取反)

(補碼)11111111 11111111 11111111 11111111(反碼加1)

int a= -1 右移:11111111 11111111 11111111 11111111

unsigned int a= -1 右移:01111111 11111111 11111111 11111111

3、位操作符: & | ^

&:按位與 有0出0,全1為1;

| : 按位或 有1出1,全0為0

^: 按位異或,相異為1,相同為0。

4、賦值操作符:=

5、復合賦值操作符

+= -= *= /= %= >>= <<= &= |= ^=

x=x+10 可以寫成 x+=10

6、單目操作符

! 邏輯反操作

& 取位址

sizeof 操作符的型別長度(以位元組為單位)

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

++ (前置,後置)

– (前置,後置)

(型別) 強制型別轉換

注意:前置++(–):先++(–)再使用 ; 後置++(–): 先使用,再++(–)

sizeof 可以求陣列 元素個數: int a=;

int sum=0;

sum=sizeof(a)/sizeof(a[0]);

sizeof可以求陣列所佔空間大小 printf("%d"sizeof(a));

7、關係操作符

< <= > >= != ==

8、邏輯操作符

&& 邏輯與

|| 邏輯或

&&時,當 乙個表示式不成立時,不在檢查後面的表示式;

|| 時,當乙個表示式成立時,不在檢查後面的表示式。

連線兩個表示式

9、條件操作符

exp1?exp2:exp3

比如:int a=10;

int b=0;

if (a>5)

b=3else

b=-3; 可以改寫為 : a>5?b=3:b=-3

10、逗號表示式

exp1,exp2,exp3,expn

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

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

[ ] 下標引用操作符 :

運算元 : 乙個運算元+乙個索引值。

例如 : int a[10]; // 建立陣列

a[9]=10; //實用下標引用操作符 [ ] 的兩個運算元是 a和9

( ) 函式呼叫操作符 :

運算元:函式名或者是傳遞給函式的引數。(可以為1個或者多個)

例如: void test (int a)

int main()

// 實用( )作為函式呼叫操作符

訪問乙個結構的成員

. 結構體. 成員名

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

例如:

11、隱式型別轉換

整型提公升

意義:表示式的整型運算要在cpu的相應運算器件內執行,cpu內整型運算器(alu)的運算元的位元組長度一般就是int

的位元組長度,同時也是cpu的通用暫存器的長度。

因此,即使兩個char型別的相加,在cpu執行時實際上也要先轉換為cpu內整型運算元的標準長度。

通用cpu(general-purposecpu)是難以直接實現兩個8位元位元組直接相加運算(雖然機器指令中可能有這種

位元組相加指令)。所以,表示式中各種長度可能小於int長度的整型值,都必須先轉換為int或unsignedint,然

後才能送入cpu去執行運算。

整形提公升是按照變數的資料型別的符號位來提公升的

方法://負數的整形提公升

charc1=-1;

變數c1的二進位制位(補碼)中只有8個位元位:

1111111

因為char為有符號的char

所以整形提公升的時候,高位補充符號位,即為1

提公升之後的結果是:

11111111111111111111111111111111

//正數的整形提公升

charc2=1;

變數c2的二進位制位(補碼)中只有8個位元位:

00000001

因為char為有符號的char

所以整形提公升的時候,高位補充符號位,即為0

提公升之後的結果是:

00000000000000000000000000000001

//無符號整形提公升,高位補0

12、操作符的屬性

複雜表示式的求值有三個影響因素:

1、操作符的優先順序; 2、操作符的結合性; 3、是否控制求值順序。

總結操作符

操作符 一 操作符的分類 1.算數操作符 2.位移操作符 3.位操作符 4.賦值操作符 5.單目操作符 6.關係操作符 7.邏輯操作符 8.條件操作符 9.逗號操作符 10.下標引用 函式呼叫和結構成員 二 逐個講解 1 算數操作符 1 除了 操作符之外,其他的幾個操作符可以作用於整數和浮點數。2 ...

操作符總結

通過一段時間的學習,我今天要給大家總結一下操作符。首先呢,操作符分為 算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 下標引用 函式呼叫和結構成員 接下來要具體介紹這些操作符有哪些作用,還有那些要注意的事項。1.算術操作符 除了 操作符之外,...

操作符總結

c語言操作符簡述 1.算數操作符 針對的是整形和浮點型的運算。其中乘除法對於整數的結果是整數,對於浮點數的結果是浮點數。2.移位操作符 右移操作符 右移操作時分為兩種情況 1 算數右移 二進位制有正負之分,補位時要注意符號位 不需要考慮符號位的問題,直接補0即可。3.位操作符 按位與 按位或 按位異...