C 語言筆記 — 算術運算

Sharon Peng
4 min readJul 18, 2019

--

這張我們會提到以下五點:

  1. 算術運算子 (Arithmetic Operators)
  2. 算數的優先次序 (Operator Precedence)
  3. 型態轉換 (Type conversion)
  4. 賦值 (Assignment Operators)
  5. 遞增、遞減運算子 (Increment & Decrement)

C語言支援運算有「+ 加、- 減、* 乘、/ 除、% 餘數(modulus division)」,上述的運算符號,我們稱他們為算術運算子。

以下為範例:

為什麼小數點都是到第六位呢?

因為這是裡面預設的選項,若想要指定要到小數點第幾位的話,以下示範

再來是比較陌生的%餘數符號,我們通常會這樣表示,

10 % 3 = 1 答案會是兩數相除的餘數,也就是 1

10 / 3 = 3 直接是兩數相除 3

程式碼

2. 運算的優先次序

再來是算數的先後順序,也就是數學計算哪兩個要先開始,大部分的順序通常是從左至右,「先乘除後加減」(非常洗腦的一句話),若有想要先做運算的部分,我們可以給他括號,提高他的優先次序。

3. 型態轉換

當我們的運算由不同資料型態所組成時,他們會自動轉換資料型態,這樣的過程,我們稱「資料型態轉換」。舉例,當整數和浮點數做運算時,編譯器會自動把整數部份直接轉換成浮點數,來去做運算。

4. 賦值(Assignment Operators)

賦值代表用等號(=)把右邊的數字,整個複製給左邊的數

int a = 5;

a = a + 1; // a = 6

我們可以把這個式子寫的更短

a += 1 // same as (a = a + 1;)

其他的運算符號也可以這樣使用

5. 遞增、遞減運算子

若只有加一或減一的話,我們可以使用++,- -, 來表示。

x ++, //x = x + 1

x- -, // x = x — 1

其中我們又分為前置遞增(prefix, before the variable name)、後置遞增(postfix, after the variable name),這兩個的不同有些複雜,所以我們下面例子來說明。

z = 3;

x = z- - // 先將3賦值給x,再把 z 減1(z = 2)

y = 3;

x = ++ y // 先把y加1,再賦值給 x (x = 4)

這裡有一個小題目來測試大家有沒有懂遞增遞減的概念:

What is the value of x after the following code:

int x = 10;

int y = 7;

x ++;

x += y- -;

請問最後x為多少?答案在下方

答案是:18 (希望大家都能夠答對)

原因是:我先把10 + 1 = 11,y 先把值給 x (11+7=18),y 再減 1

今天的這個部分有點長,感謝各位耐心的看完~

--

--

Sharon Peng
Sharon Peng

Written by Sharon Peng

一起精進程式能力吧!!

No responses yet