天天看點

C語言運算符:(一)

C語言操作符衆多,主要包括:算術運算符、關系運算符、邏輯運算符、指派運算符、位運算符、單目運算符、條件運算符、逗号運算符...C語言衆多的運算符是它為人诟病的一個原因,但也是它衆多的運算符提供了其他語言所無法比拟的優點。熟練使用運算符将使你工作中達到事半功倍的效果。

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

1.算術運算符

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

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

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

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

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

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

【注意】:

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

2.關系運算符

關系運算符用于測試操作數之間的處于何種關系,有六種關系運算符:>,>=,<,<=,!=,=。分别代表“大于”、“大于或等于”、“小于”、“小于或等于”、“不等于”、“等于”

關系操作符的結果是整數(注意:C語言沒有布爾變量),有兩種取值:0或1。C用整數來表示布爾類型,這也産生了一些簡寫方法,常用于if或while條件中用于測試真假,零值代表為假,任何非0整數值均為真。如下:

【注意】

C語言中的關系運算符“==”與指派運算符“=”相似,很容易在判斷兩數相等時誤将“==”寫成“=”,由于兩種運算均合法,這就在程式中産生了不易調試的錯誤。是以,在判斷相等時建議将常數(左值)寫在左面,如if(5 == a)...

3.邏輯運算符

C語言邏輯運算符有三種:&&,||,!。和關系運算符一樣,它的運算結果也隻有兩種取值:0或1。

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

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

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

【注意】

&&和||均具有斷路特性,即若根據一個操作數就能得知整個結果則将不再判斷第二個操作數。如:0&&5,由于0已經确定結果一定為假,則不再對5判斷;1||0,由于1已經确定結果一定為真,則不再對0判斷。

4.指派運算符

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

【拓展】

(1)左值與右值

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

【注意】

1.指派運算符的左面隻能是左值。

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

一方面,指派運算符書寫簡便、便于閱讀。

另一方面,避免由于多次使用同一變量或表達式産生的副作用。

C語言運算符:(一)

繼續閱讀