Toán Tử Gán Trong Ngôn Ngữ Lập Trình C

Xin chào các bạn, những nhà lập trình tương lai! Hôm nay, chúng ta sẽ bơi lội vào thế giới kỳ diệu của các toán tử gán trong ngôn ngữ lập trình C. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ đồng hành cùng bạn trong hành trình này bước به bước. Khi hết bài hướng dẫn này, bạn sẽ gán giá trị như một chuyên gia!

C - Assignment Operators

Các Toán Tử Gán Là Gì?

Trước khi bắt đầu, hãy hiểu rõ về các toán tử gán. Hãy tưởng tượng chúng như dấu bằng (=) bạn đã sử dụng trong lớp toán học, nhưng với sức mạnh siêu anh hùng! Chúng được sử dụng để gán giá trị cho các biến trong chương trình của bạn. Nhưng trong C, chúng có thể làm nhiều hơn nhiều so với việc gán đơn giản.

Toán Tử Gán Đơn Giản (=)

Hãy bắt đầu với điều cơ bản - toán tử gán đơn giản. Đó là nền tảng của tất cả các thao tác gán trong C.

Cách Hoạt Động

Toán tử gán đơn giản được biểu thị bởi dấu bằng (=). Nó lấy giá trị ở bên phải và gán nó cho biến ở bên trái.

Dưới đây là một ví dụ đơn giản:

int tuoi;
tuoi = 25;

Trong đoạn mã này, chúng ta đang khai báo một biến số nguyên có tên tuoi và sau đó gán nó giá trị 25. Đơn giản như vậy!

Gán Nhiều Lần

Bạn cũng có thể kết hợp nhiều gán cùng nhau. Hãy xem một ví dụ:

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

Đoạn mã này gán giá trị 10 cho ba biến: x, y và z. Nó hoạt động từ phải sang trái, vì vậy trước tiên z nhận 10, sau đó y nhận giá trị của z (là 10), và cuối cùng x nhận giá trị của y (cũng là 10).

Khởi Tạo Biến

Bạn cũng có thể sử dụng toán tử gán khi khai báo biến:

int chieuCao = 180; // Khai báo và khởi tạo trong một dòng
float pi = 3.14159;
char danhGia = 'A';

Đây là cách tuyệt vời để đặt các giá trị khởi tạo cho biến ngay khi bạn tạo chúng.

Các Toán Tử Gán Đích

Bây giờ, hãy nâng cấp! Các toán tử gán đích như là các đường tắt. Chúng thực hiện một phép toán và gán trong một bước. Hãy xem chúng một:

Cộng Gán (+=)

Toán tử += cộng đồng với phép toán bên phải và gán kết quả cho phép toán bên trái.

int diem = 10;
diem += 5; // Tương đương với: diem = diem + 5;
printf("Điểm: %d\n", diem); // Đầu ra: Điểm: 15

Trừ Gán (-=)

Toán tử -= trừ phép toán bên phải khỏi phép toán bên trái và gán kết quả cho phép toán bên trái.

int sinhLuu = 3;
sinhLuu -= 1; // Tương đương với: sinhLuu = sinhLuu - 1;
printf("Sinh lực còn lại: %d\n", sinhLuu); // Đầu ra: Sinh lực còn lại: 2

Nhân Gán (*=)

Toán tử *= nhân phép toán bên trái với phép toán bên phải và gán kết quả cho phép toán bên trái.

int luc = 2;
luc *= 3; // Tương đương với: luc = luc * 3;
printf("Mức lực: %d\n", luc); // Đầu ra: Mức lực: 6

Chia Gán (/=)

Toán tử /= chia phép toán bên trái cho phép toán bên phải và gán kết quả cho phép toán bên trái.

float tien = 100.0;
tien /= 2; // Tương đương với: tien = tien / 2;
printf("Tiền còn lại: %.2f\n", tien); // Đầu ra: Tiền còn lại: 50.00

Phần Dư Gán (%=)

Toán tử %= tính phần dư khi phép toán bên trái được chia cho phép toán bên phải và gán kết quả cho phép toán bên trái.

int banhKeo = 10;
banhKeo %= 3; // Tương đương với: banhKeo = banhKeo % 3;
printf("Bánh keo còn lại: %d\n", banhKeo); // Đầu ra: Bánh keo còn lại: 1

Gán AND Nhị Phân (&=)

Toán tử &= thực hiện phép AND nhị phân và gán kết quả cho phép toán bên trái.

int a = 5; // Nhị phân: 0101
a &= 3;    // Nhị phân: 0011
printf("Kết quả: %d\n", a); // Đầu ra: Kết quả: 1

Gán OR Nhị Phân (|=)

Toán tử |= thực hiện phép OR nhị phân và gán kết quả cho phép toán bên trái.

int b = 5; // Nhị phân: 0101
b |= 3;    // Nhị phân: 0011
printf("Kết quả: %d\n", b); // Đầu ra: Kết quả: 7

Gán XOR Nhị Phân (^=)

Toán tử ^= thực hiện phép XOR nhị phân và gán kết quả cho phép toán bên trái.

int c = 5; // Nhị phân: 0101
c ^= 3;    // Nhị phân: 0011
printf("Kết quả: %d\n", c); // Đầu ra: Kết quả: 6

Gán Dịch Trái (<<=)

Toán tử <<= thực hiện phép dịch trái và gán kết quả cho phép toán bên trái.

int d = 5; // Nhị phân: 0101
d <<= 1;   // Dịch trái 1
printf("Kết quả: %d\n", d); // Đầu ra: Kết quả: 10

Gán Dịch Phải (>>=)

Toán tử >>= thực hiện phép dịch phải và gán kết quả cho phép toán bên trái.

int e = 8; // Nhị phân: 1000
e >>= 1;   // Dịch phải 1
printf("Kết quả: %d\n", e); // Đầu ra: Kết quả: 4

Bảng Tóm Tắt Các Toán Tử Gán

Dưới đây là bảng hữu ích tóm tắt tất cả các toán tử gán mà chúng ta đã nói đến:

Toán tử Mô tả Ví dụ Tương đương với
= Gán đơn giản x = 5; x = 5;
+= Cộng gán x += 3; x = x + 3;
-= Trừ gán x -= 3; x = x - 3;
*= Nhân gán x *= 3; x = x * 3;
/= Chia gán x /= 3; x = x / 3;
%= Phần dư gán x %= 3; x = x % 3;
&= Gán AND nhị phân x &= 3; x = x & 3;
|= Gán OR nhị phân x |= 3; x = x | 3;
^= Gán XOR nhị phân x ^= 3; x = x ^ 3;
<<= Gán dịch trái x <<= 2; x = x << 2;
>>= Gán dịch phải x >>= 2; x = x >> 2;

Và đó là thế! Bạn đã mới qua một chuyến du lịch hấp dẫn qua các toán tử gán trong C. Hãy nhớ, luyện tập sẽ làm bạn hoàn hảo. Thử viết một đoạn mã sử dụng các toán tử này, và bạn sẽ sớm thấy mình sử dụng chúng một cách dễ dàng.

Chúc bạn lập trình vui vẻ, những nhà lập trình C tương lai!

Credits: Image by storyset