C語言操做符

C語言的操做符分爲:算術操做符、移位操做符、位操做符、賦值、單目操做符、關係操做符、邏輯操做符、條件操做符、逗號操做符、下標引用、函數調用和結構成員等,在這簡單介紹下這幾種操做符。數組

一、算術操做符:+、- 、* 、/、%函數

其中‘%’只接受兩個整型操做數,其返回的值是餘數而不是商。除了‘%’,其餘的操做符既適用於浮點型又適用於整數類型。當‘/’操做符的兩個操做數都是整數時,他執行整數運算,在其餘狀況下執行浮點數除法。指針

二、移位操做符:簡單的把一個值的位向左或向右移動。table

  • 在左移位中,最左邊的幾位被丟棄,右邊多出的幾個空位由0補齊。左移位操做符爲:<<
1 0 0 1 0 1 1 1

 

向左移3位  邏輯移位變量

1 0 1 1 1 0 0 0

 

向左移3位 算術移位引用

1 0 1 1 1 0 0 0

 

 

  • 右操做符存在一個左操做符未曾面臨的問題。從左邊移入新位時,有兩種選擇方案:邏輯移位(左邊移入新位全用0補充)、算術移位(左邊移入的位由原先該值的符號位決定,符號位位1則移入的位均爲1,符號位爲0則移入的位均爲0)。右移位操做符爲:>>。
1 1 0 1 0 0 1 1

 

 向右移3位  邏輯移位二進制

0 0 0 1 1 0 1 0

 

向右移3位 算術移位float

1 1 1 1 1 0 1 0

 

 

移位操做符的左操做數的值將移動由右操做數指定的位數,兩個操做數必須爲整數。如:6<<4,6表示的二進制數向左移動4位。tab

 

 

0 1 1 0 1 0 1 1

 

向右移3位  邏輯移位語言

0 0 0 0 1 1 0 1

 

向右移3位 算術移位

0 0 0 0 1 1 0 1

 

 

 

三、位操做符:對他們的操做數的各位執行AND、OR、XOR等邏輯操做

  AND(&):兩個位數都是1,結果爲1,不然爲0;

  OR(|):兩個位都是0,結果爲0,不然爲1;

  XOR(^):兩個位上的數不一樣結果爲1,不然爲0。

他們要求的操做數爲整數類型。

如:

 

&(與操做符) 0 1
0 0 0
1 0 1
|(或操做符) 0 1
0 0 1
1 1 1
^(異操做符) 0 1
0 0 1
1 1 0

  

 

 

 

四、賦值:把右操做數的值存儲於左操數;賦值操做符的求值順序是從右到左。

如:a=b=c+2 等同於 a=(b=c+2)

複合賦值符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=

上面的複合操做符運算相似於’+=‘操做符。如a+=2等同於a=a+2,a<<=2等同於a=a<<2;

五、單目操做符:只接受一個操做數。它們是:

!:邏輯反操做,操做數爲真,結果爲0,操做數爲假,結果爲1;如 :!7=0。

~:對整型類的操做數進行求補操做,操做數中原先爲1的爲變爲0;原先爲0的變爲。

&:產生它操做數的地址。如  int a,*b;  b=&a;  &操做符取a的地址賦值給指針變量b。

* :間接訪問操做符,與指針一塊兒使用,用於訪問指針所指向得值。如上面一行的代碼,表達式b的值是變量a的地址,但表達式*b的值則是變量a得值

sizeof:判斷它操做數的類型長度。

(類型):強制類型轉換符,用於顯示的把一種類型轉換爲另一種類型。如:

 int a;

(float)a;

把整型變量a轉換爲浮點型。

+、-:產生操做數的正負值

++、--:操做數的值被增長或減小1。

六、關係操做符:>, >=, <, <=, !=, ==

關係操做符的值是整數,而不是布爾值,他能夠賦值給整型變量,一般用於if或while語句中,做爲測值表達式

七、邏輯操做符:&&,||

&&操做符的優先級較低,&&操做符老是首先進行左操做數求值,若是值爲真,而後緊接着對右操做數進行求值。若是左操做數求值爲假,就再也不進行右操做數。||操做符也是先求左操做數,若是爲真就不進行右操做符求值。

八、條件操做符:條件操做符接受三個參數;用法以下:

表達式1?表達式2:表達式3

首先計算表達式1的值,爲真整個表達式的值爲表達式2的值,不計算表達式3的值;爲假則爲表達式3的值,不計算表達式2的值

九、逗號操做符:用於將兩個或多個表達式分隔開來,這些表達式自左向右求值,整個逗號的表達式的值爲最後那個表達式的值。用法:

表達式1,表達式2,表達式3,.......表達式n

十、下標引用、函數調用和結構成員

下標引用:經常使用於數組、指針

函數操做符接受一個或多個操做數,第一個操做數是你但願調用的函數名,剩餘的操做數是傳遞給函數的參數

結構成員: . 和 -> 用於訪問一個結構的成員。若是是個結構變量,那麼s.a就是訪問結構s中名叫a的成員。當遇到一個指向結構的指針,訪問他的成員須要用 ->

相關文章
相關標籤/搜索