C 語言筆記 — 算術運算
這張我們會提到以下五點:
- 算術運算子 (Arithmetic Operators)
- 算數的優先次序 (Operator Precedence)
- 型態轉換 (Type conversion)
- 賦值 (Assignment Operators)
- 遞增、遞減運算子 (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
今天的這個部分有點長,感謝各位耐心的看完~