Các toán tử được sử dụng để thực hiện các thao tác trên các biến và giá trị.

1. Toán tử số học (Arithmetic operators)

Các toán tử số học được sử dụng để thực hiện các phép toán thông thường: 

  • + (cộng) 
  • - (trừ) 
  • * (nhân) 
  • / (chia) 
  • % (phép chia dư) 
  • ++ (tăng giá trị của 1 biến lên 1, ví dụ ++x)
  • -- (giảm giá trị của biến đi 1, ví dụ --x)

2. Toán tử quan hệ (Relational operators)

  • ==: kiểm tra nếu 2 toán hạng bằng nhau hay không. Nếu đúng thì trả về là true
  • !=: kiểm tra nếu giá trị của 2 toán hạng có bằng nhau không. Nếu sai (2 giá trị không bằng nhau) thì trả về true
  • >: lớn hơn
  • <: nhỏ hơn
  • >=: lớn hơn hoặc bằng
  • <=: nhỏ hơn hoặc bằng

3. Toán tử logic (Logical operators) 

  • &&: toán tử AND logic - ví dụ A&&B là true (khác 0) nếu cả A và B khác 0
  • ||: toán tử OR - ví dụ: A||B là false (bằng 0) nếu cả A và B bằng 0
  • !: toán tử NOT - ví dụ: A = false thì !A = true
 
#include <stdio.h>
int main() {
int x = 5;
int y = 3;
// Returns 1 (true) because one of the conditions are true (5 is greater than 3, but 5 is not less than 4)
printf("Toán tử OR: %d\n", x > 3 || x < 4);

// Returns false (0) because ! (not) is used to reverse the result
printf("Toán tử NOT: %d\n", !(x > 3 && x < 10));
// Returns 1 (true) because 5 is greater than 3 AND 5 is less than 10
printf("Toán tử AND: %d\n", x > 3 && x < 10);
return 0;
}

4. Toán tử thao tác bit (bitwise operators)

  • Toán tử thao tác bit & (AND): lấy hai số làm toán hạng và thực hiện AND trên mỗi bit của hai số. Kết quả của AND chỉ là 1 nếu cả hai bit đều là 1.  
  • Toán tử thao tác bit | (OR): lấy hai số làm toán hạng và thực hiện OR trên mỗi bit của hai số. Kết quả của OR là 1 nếu 1 trong hai bit là 1.
  • Toán tử thao tác bit ^ (XOR theo bit): lấy hai số làm toán hạng và thực hiện XOR trên mỗi bit của hai số. Kết quả của XOR là 1 nếu hai bit khác nhau.
  • Toán tử thao tác bit << (dịch trái): nhận hai số, dịch trái các bit của toán hạng thứ nhất, toán hạng thứ hai quyết định số lượng vị trí cần dịch.
  • Toán tử thao tác bit >> (dịch phải) nhận 2 số, dịch sang phải các bit của toán hạng thứ nhất, toán hạng thứ hai quyết định số lượng vị trí cần dịch.
  • Toán tử thao tác bit ~ (NOT): lấy một số và đảo ngược tất cả các bit của nó.

5. Toán tử gán (Assignment Operators)

  • =: gán giá trị từ những toán hạng bên phải cho toán hạng bên trái x = y + 5; x = 6
  • +=: cộng thêm toán hạng bên phải vào toán hạng bên trái và gán giá trị kết quả cho toán hạng bên trái: x+=5 (x = x+5)
  • -=: trừ đi toán hạng bên phải vào toán hạng bên trái và gán giá trị kết quả cho toán hạng bên trái: x-=5 (x = x-5)
  • *=:  nhân toán hạng bên phải với toán hạng bên trái và gán giá trị kết quả cho toán hạng bên trái: x*=5 (x = x*5)
  • /=: chia toán hạng bên trái cho toán hạng bên trái và gán giá trị kết quả cho toán hạng bên trái: x/=5 (x = x/5)

6. Toán tử đặc biệt (Special Operators)

  • sizeof: Kích thước bộ nhớ (tính bằng byte) của một kiểu dữ liệu hoặc một biến
#include <stdio.h>

int main() {
int intVar;
float floatVar;
double doubleVar;
char charVar;

printf("%lu\n", sizeof(intVar)); // kết quả 4
printf("%lu\n", sizeof(floatVar)); // kết quả 4
printf("%lu\n", sizeof(doubleVar)); //kết quả 8
printf("%lu\n", sizeof(charVar));//kết quả 1

return 0;
}