C語言入門 如何使用運算子

前述文章已經介紹了c語言的控制語句(判斷/迴圈/轉向),控制語句是c語言程式執行中的指路標,它控制著c語言程式每一步該走向何處,那c語言運算子的意義就是告訴你為什麼要走向那裡。

運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。C 語言內建了豐富的運算子,並提供了以下型別的運算子:

· 算術運算子

· 關係運算符

· 邏輯運算子

· 位運算子

· 賦值運算子

· 雜項運算子

下面就上述運算子逐一跟大家介紹一下每一種運算子包含哪些運算,其意義及用法如何。

Ø

算術運算子

算數運算子,顧名思義就是用來做整數的加減乘除的,常用的算數運算子有加、減、乘、除、取餘、自加和自減等,其符號和用法如下表格:

C語言入門 如何使用運算子

需要指出的是,上述算數符中比較容易出錯的幾種符號用法

1)“%”取餘算數符

c語言中%的意思是整數相除取餘數,就是計算的結果了,%的運算分三種情況

z=x%y,如果x

z=x%y,如果x=y,那程式運算的結果就是z=0,

z=x%y,如果x>y,那程式運算的結果就是x除以y整除後的餘數。

2)自加/減(++/——)

以++來說(“——”一樣,不作累述),C語言中x++和++x是有區別的。

首先二者的運算過程不同:

x++表示先使用x的值,然後再對x做加1處理;

++x表示先對x做加1處理,然後再使用x的值;

雖然,對於x變數本身來說,x++、++x最終x的值都是自加1,但是對於呼叫這個變數的其他算數來說意義就不一樣了,這裡使用的時候是需要非常注意的。

這裡給大家舉個例子應該就清晰了,定義變數x = 10,那如下算數之後的值分別是

z = x++;運算後 z = 10;x = 11;

z = ++x;運算後 z = 11;x = 11;

Ø

關係運算符

關係運算符在c語言中一般是用來判斷算術或變數的值直接大小關係,並返回真/假判斷結果的運算演算法,其主要包含如下符號

C語言入門 如何使用運算子

舉個簡答的程式例子,定義變數x=10,y=4,z=x-y,如果z等於0,則清除變數x、y的值。

C語言入門 如何使用運算子

Ø

邏輯運算子

所謂的邏輯運算子,就是隻在條件判斷中出現非單一條件的時候,條件與條件之間的處理關係。常用的邏輯運算子如下表

C語言入門 如何使用運算子

需要注意的是,其中的x/y可以是變數,常數也可以是運算過程。比如:

C語言入門 如何使用運算子

Ø

位運算子

位運算子,顧名思義就是作用的位之間的運算,主要運算如下

C語言入門 如何使用運算子

Ø

賦值運算子

賦值運算子就是給某個變數分配數值的運算,主要賦值運算子如下

C語言入門 如何使用運算子

賦值運算子基本是基礎賦值與上述算術/邏輯運算子的組合體,所以此處不作展開舉例。

Ø 雜項運算子

雜項運算子沒有統一的描述,其作用分別如下

C語言入門 如何使用運算子

其中Sizeof()和?:可能大家會相對陌生一點,此處稍微展開一下

Sizeof()

sizeof是C語言的一種單目運算子,如C語言的其他運算子++、——等。它並不是函式。sizeof運算子以位元組形式給出了其運算元的儲存大小。運算元可以是一個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。

1、用於資料型別

sizeof使用形式:sizeof(type); 注:資料型別必須用括號括住。

其結果就是讀取型別佔用的位元組數,比如sizeof(unsigned char) = 1

2、用於變數

sizeof使用形式:sizeof(var_name)或sizeof var_name

變數名可以不用括號括住。如sizeof (var_name),sizeof var_name等都是正確形式。帶括號的用法更普遍,大多數程式設計師採用這種形式。

注意:sizeof運算子不能用於函式型別,不完全型別或位欄位。不完全型別指具有未知儲存大小的資料型別,如未知儲存大小的陣列型別、未知內容的結構或聯合型別、void型別等。如sizeof(max)若此時變數max定義為int max(),sizeof(char_v) 若此時char_v定義為char char_v [MAX]且MAX未知,sizeof(void)都不是正確形式。

其他複雜的用法此處不作展開,有興趣的朋友可以一起討論。

?:運算子

其一般使用的表示式如下

x = exp1? exp2 : exp3

如果exp1為真(非0) ,那麼整個條件表示式x的值與exp2的值相同;

如果exp1為假(0),那麼整個條件表示式的值x與exp3的值相同;

需要把兩個值中的一個賦值給變數時,就可以用條件表示式。典型的例子是,把兩個值中的最大值賦值給變數:

max = (a > b) ? a : b;

如果a大於b ,那麼將max值設定為a;否則,設定為b。

其作用相當於用if else的條件判斷

if (a < b) max = a;

else max = b;

以上為c語言中常用運算子的簡單介紹,運算子另外一個最重要的需要注意的地方就是運算的優先順序順序,篇幅有限此處不作介紹,如果大家有興趣可在評論區留言,如果需求的孩童們比較多作者會專門開一章節介紹運算子的優先順序及注意事項。

另外,作者所有文章都是作者自己的筆記,代表作者本人觀點,大家有用的可以參考並點個贊留個言什麼的支援一下作者,覺得無用的請忽略,有錯誤的也歡迎大家指正,共同進步

[碰拳]