C語言中的賦值運算符

你好,未來的程式設計師!今天,我們將深入C語言中賦值運算符的奇妙世界。如果你從未寫過一行代碼,也別擔心——我會逐步引導你完成這次學習之旅。在這個教程結束時,你將能夠像專業人士一樣進行賦值!

C - Assignment Operators

賦值運算符是什麼?

在我們深入之前,讓我們先了解賦值運算符是什麼。把它們想成你在數學課上用過的等號(=),但它們擁有超能力!賦值運算符用於將值賦給程序中的變量。但在C語言中,它們能做的遠不止簡單的賦值。

簡單賦值運算符 (=)

讓我們從基礎開始——簡單賦值運算符。它是C中所有賦值操作的基础。

它是如何工作的

簡單賦值運算符由等號(=)表示。它將右側的值賦給左側的變量。

這裡有一個簡單的例子:

int age;
age = 25;

在這段代碼中,我們聲明了一個名為age的整數變量,然後將其賦值为25。就是這麼簡單!

多重賦值

你也可以將賦值操作連在一起。讓我們看一個例子:

int x, y, z;
x = y = z = 10;

這段代碼將值10賦給所有三個變量:x、y和z。它從右到左工作,所以首先z得到10,然後y得到z的值(即10),最後x得到y的值(也是10)。

初始化變量

你也可以在聲明變量時使用賦值運算符:

int height = 180; // 一行完成聲明和初始化
float pi = 3.14159;
char grade = 'A';

這是一種在創建變量時為其設置初始值的絕佳方法。

增強賦值運算符

現在,讓我們提升一個等級!增強賦值運算符就像捷徑一樣。它們在一個步驟中執行操作和賦值。讓我們一一看看它們:

加法賦值 (+=)

+=運算符將右操作數加到左操作數上,並將結果賦給左操作數。

int score = 10;
score += 5; // 等同於:score = score + 5;
printf("Score: %d\n", score); // 輸出:Score: 15

減法賦值 (-=)

-=運算符從左操作數中減去右操作數,並將結果賦給左操作數。

int lives = 3;
lives -= 1; // 等同於:lives = lives - 1;
printf("Lives remaining: %d\n", lives); // 輸出:Lives remaining: 2

乘法賦值 (*=)

*=運算符將左操作數乘以右操作數,並將結果賦給左操作數。

int power = 2;
power *= 3; // 等同於:power = power * 3;
printf("Power level: %d\n", power); // 輸出:Power level: 6

除法賦值 (/=)

/=運算符將左操作數除以右操作數,並將結果賦給左操作數。

float money = 100.0;
money /= 2; // 等同於:money = money / 2;
printf("Money left: %.2f\n", money); // 輸出:Money left: 50.00

餘數賦值 (%=)

%=運算符計算左操作數除以右操作數的餘數,並將結果賦給左操作數。

int cookies = 10;
cookies %= 3; // 等同於:cookies = cookies % 3;
printf("Leftover cookies: %d\n", cookies); // 輸出:Leftover cookies: 1

位元AND賦值 (&=)

&=運算符執行位元AND操作,並將結果賦給左操作數。

int a = 5; // 二進制:0101
a &= 3;    // 二進制:0011
printf("Result: %d\n", a); // 輸出:Result: 1

位元OR賦值 (|=)

|=運算符執行位元OR操作,並將結果賦給左操作數。

int b = 5; // 二進制:0101
b |= 3;    // 二進制:0011
printf("Result: %d\n", b); // 輸出:Result: 7

位元XOR賦值 (^=)

^=運算符執行位元XOR操作,並將結果賦給左操作數。

int c = 5; // 二進制:0101
c ^= 3;    // 二進制:0011
printf("Result: %d\n", c); // 輸出:Result: 6

左移賦值 (<<=)

<<=運算符執行左移操作,並將結果賦給左操作數。

int d = 5; // 二進制:0101
d <<= 1;   // 向左移動1位
printf("Result: %d\n", d); // 輸出:Result: 10

右移賦值 (>>=)

>>=運算符執行右移操作,並將結果賦給左操作數。

int e = 8; // 二進制:1000
e >>= 1;   // 向右移動1位
printf("Result: %d\n", e); // 輸出:Result: 4

賦值運算符總結表

這裡有一個方便的表格,總結了我們學習的所有賦值運算符:

運算符 描述 示例 等同於
= 簡單賦值 x = 5; x = 5;
+= 加法賦值 x += 3; x = x + 3;
-= 減法賦值 x -= 3; x = x - 3;
*= 乘法賦值 x *= 3; x = x * 3;
/= 除法賦值 x /= 3; x = x / 3;
%= 餘數賦值 x %= 3; x = x % 3;
&= 位元AND賦值 x &= 3; x = x & 3;
|= 位元OR賦值 x |= 3; x = x | 3;
^= 位元XOR賦值 x ^= 3; x = x ^ 3;
<<= 左移賦值 x <<= 2; x = x << 2;
>>= 右移賦值 x >>= 2; x = x >> 2;

就是這樣!你已經對C語言中的賦值運算符進行了一次全面的了解。請記住,孰能生巧。嘗試使用這些運算符寫一些代碼,你很快就會發現自己能夠輕鬆地使用它們。

祝編程愉快,未來的C語言程式設計師!

Credits: Image by storyset