1. 程式人生 > >C語言運算子:(一)

C語言運算子:(一)

C語言操作符眾多,主要包括:算術運算子、關係運算符、邏輯運算子、賦值運算子、位運算子、單目運算子、條件運算子、逗號運算子...C語言眾多的運算子是它為人詬病的一個原因,但也是它眾多的運算子提供了其他語言所無法比擬的優點。熟練使用運算子將使你工作中達到事半功倍的效果。

由於C語言運算子很多,本節主要先講解前四種:算術運算子、關係運算符、邏輯運算子、賦值運算子,這四種運算子是我們用的最頻繁的,幾乎每天都會用到。

1.算術運算子

C語言中的算術運算子有五種:+-*/%

+:雙目運算子,求兩數之和。

-:雙目運算子,求兩數之差。

*:雙目運算子,求兩數乘積。

/:雙目運算子,求兩數的商。

%:雙目運算子,求兩數的模(即餘數),兩邊應當都為整數

【注意】:

(1)對於求商運算子/,多數編譯器採用向零取整的方法,如-5/3結果為-1,但少數編譯器則為-2,所以關於“/”,要先了解編譯器的規則。

2.關係運算符

關係運算符用於測試運算元之間的處於何種關係,有六種關係運算符:>>=<<=!==。分別代表“大於”、“大於或等於”、“小於”、“小於或等於”、“不等於”、“等於”

關係操作符的結果是整數(注意:C語言沒有布林變數),有兩種取值:01C用整數來表示布林型別,這也產生了一些簡寫方法,常用於ifwhile條件中用於測試真假,零值代表為假,任何非0整數值均為真。如下:

【注意】

C語言中的關係運算符“

==”與賦值運算子“=”相似,很容易在判斷兩數相等時誤將“==”寫成“=”,由於兩種運算均合法,這就在程式中產生了不易除錯的錯誤。因此,在判斷相等時建議將常數(左值)寫在左面,如if(5 == a)...

3.邏輯運算子

C語言邏輯運算子有三種:&&||!。和關係運算符一樣,它的運算結果也只有兩種取值:01

&&:與運算子,雙目運算子,兩者均真則結果為真,其一為假則結果為假。

||:或運算子,雙目運算子,其一為真則結果為真,兩者均假則結果為假。

!:非運算,單目運算子。非零值則為假,零值則為真。

【注意】

&&||均具有斷路特性,即若根據一個運算元就能得知整個結果則將不再判斷第二個運算元。如:

0&&5,由於0已經確定結果一定為假,則不再對5判斷;1||0,由於1已經確定結果一定為真,則不再對0判斷。

4.賦值運算子

賦值運算子有= 和 複合賦值符,其中複合賦值符包括:+=-=*=/=%=<<=>>=&=^=|=

【拓展】

(1)左值與右值

字面意思來講,左值就是出現在運算子左面的值,右值就是出現在運算子右面的值。通常來說:左值是有名字的變數;而右值則沒有相應的變數,它一般是右運算操作(如加減運算、函式呼叫,不包括賦值運算)產生的中間結果。

【注意】

1.賦值運算子的左面只能是左值。

2.建議使用複合運算子,原有有二:

一方面,賦值運算子書寫簡便、便於閱讀。

另一方面,避免由於多次使用同一變數或表示式產生的副作用。