天天看點

C語言中的一系列操作符

C語言中有一系列的操作符,這些操作符你是否都認識呢?

想要學好C語言首先你得有一種空杯心态,是以不管認不認識都和我們一起再看一遍吧!

C語言中的操作符:

C語言中主要包括算術操作符、移位操作符、位操作符、指派操作符、單目操作符、關系操作符、邏輯操作符、條件操作符、逗号表達式等。讓我們一一來看看它們到底如何使用吧!

算數操作符: +、-、* 、/、%

算術操作符中的+、-、* 相信大家都會,但一些初學者就分不清楚/和%的差別(悄悄告訴你我幾個月前也分不清)。

C語言中的一系列操作符
C語言中的一系列操作符

其實a/b的結果就是a除以b的商,而a%b就是a除以b所得的餘數,就像代碼中7除以2商3餘1,是以7/2等于3,而7%2等于1。

移位操作符: <<、>>

左移操作符與右移操作符相似,我們就以左移操作符舉例吧。

C語言中的一系列操作符
C語言中的一系列操作符

那麼為什麼結果是10呢?

其實數字在電腦中是以二進制方式儲存的,而int型的大小為4個位元組,也就是32個比特位,是以5的二進制表示為00000000000000000000000000000101,a<<1也就是将a的二進制位統一向左移動一位,空出來的用0補齊,将變換後的二進制轉換為十進制輸出即可。

C語言中的一系列操作符

而a<<1後的二進制所對應的十進制數便是10,是以輸出為10。

位操作符: &、|、^

位操作符的運算機制很相似,隻是規則不同而已。它們都是先把待操作數轉化為二進制,将它們二進制每一位的數字進行比較,然後進行操作。

&:二進制對應位兩個都為1則為1,否則為0。

|:二進制對應位兩個都為0則為0,否則為1。

^:二進制對應位相同則為0,不同則為1。

C語言中的一系列操作符
C語言中的一系列操作符

指派操作符: =、+=、-=、*=、/=、&=、|=、^=、<<=、>>=

指派操作符在我看來就是簡化了一下語句:

C語言中的一系列操作符

其他的以此類推即可。雖然剛開始看起來有點别扭,但當你看多了也就習慣啦^ _ ^

單目操作符:

操作符 操作符的作用
! 邏輯反操作
- 負值
+ 正值
& 取位址
sizeof 操作數的類型長度(以位元組為機關)
~ 對一個數的二進制按位取反
- - 前置、後置- -
++ 前置、後置++
* 間接通路操作符(解引用操作符)
(類型) 強制類型轉換

單目操作符,顧名思義其操作數隻有一個。

關系操作符: >、>=、<、<=、!=、==

關系操作符比較簡單,但要注意使用 ==時,不要寫成=了,初學者需要特别注意這一點。

邏輯操作符: &&、||

&&:兩邊為真即為真,否則為假。

||:兩邊為假才為假,否則為真。

(它們都是為真傳回1,為假傳回0。)

C語言中的一系列操作符

條件操作符: expr1?expr2:expr3

該表達式中,如果expr1為真,則傳回expr2的值,否則傳回expr3的值。

C語言中的一系列操作符

逗号表達式: expr1,expr2,expr3,…,exprN

繼續閱讀