C語言運算子 (一)

2021-07-23 19:11:33 字數 1823 閱讀 8673

c語言操作符眾多,主要包括:算術運算子、關係運算子、邏輯運算子、賦值運算子、位運算子、單目運算子、條件運算子、逗號運算子

...c

語言眾多的運算子是它為人詬病的乙個原因,但也是它眾多的運算子提供了其他語言所無法比擬的優點。熟練使用運算子將使你工作中達到事半功倍的效果。

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

c語言中的算術運算子有五種:+,

-,*,

/,%

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

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

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

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

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

【注意】:

(1)對於求商運算子「/」,

多數編譯器採用向零取整的方法,如

-5/3

結果為-1

,但少數編譯器則為

-2,所以關於「

/」,要先了解編譯器的規則。

關係運算子用於測試運算元之間的處於何種關係,有六種關係運算子:>,

>=

,<

,<=,!=

,=。分別代表「大於」、「大於或等於」、「小於」、「小於或等於」、「不等於」、「等於」

關係操作符的結果是整數(注意:c語言沒有布林變數)

,有兩種取值:0或

1。c用整數來表示布林型別,這也產生了一些簡寫方法,常用於if或

while

條件中用於測試真假,零值代表為假,任何非

0整數值均為真。如下:

【注意】

c語言中的關係運算子「

==」與賦值運算子「

=」相似,很容易在判斷兩數相等時誤將「

==」寫成「

=」,由於兩種運算均合法,這就在程式中產生了不易除錯的錯誤。因此,在判斷相等時建議將常數(左值

)寫在左面,如

if(5 == a)...

c語言邏輯運算子有三種:&&,

||,!。和關係運算子一樣,它的運算結果也只有兩種取值:0或

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

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

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

【注意】

&&和||

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

0&&5

,由於0

已經確定結果一定為假,則不再對

5判斷;

1||0

,由於1

已經確定結果一定為真,則不再對

0判斷。

賦值運算子有= 和 復合賦值符,其中復合賦值符包括:+=,

-=,*=,

/=,%=,

<<=

,>>=,&=

,^=,|=

。 【拓展】

(1)左值與右值

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

)產生的中間結果。

【注意】

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

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

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

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

C語言運算子(一)

二 自增自減運算子 三 強制型別轉換運算子 四 bug解析 五 總結 運算子在我們的c語言學習中起到乙個至關重要的地位,所以學號運算子還是很有必要的。下面我們就來了解一下各種不同的運算子吧。首先是算術運算子,算數運算子多數使用在數學程式運算中,下面是常見的幾個算數運算子 符號解釋 優先順序結合性 乘...

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...

C語言 運算子和 運算子

變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...