C++ có 5 toán tử số học cơ bản:
- Cộng (+)
- Trừ (-)
- Nhân (*)
- Chia (/)
- Chia lấy dư (% - Modulo)
Ví dụ cơ bản
Các toán tử này có thể thực hiện trên mọi phép toán số học trong C++. Hãy xem ví dụ sau:
#include <iostream>
using namespace std;
int main() {
int a = 21;
int b = 10;
int c;
c = a + b;
cout << "Line 1 - Value of c is: " << c << endl;
c = a - b;
cout << "Line 2 - Value of c is: " << c << endl;
c = a * b;
cout << "Line 3 - Value of c is: " << c << endl;
c = a / b;
cout << "Line 4 - Value of c is: " << c << endl;
c = a % b;
cout << "Line 5 - Value of c is: " << c << endl;
return 0;
}
Kết quả đầu ra
Line 1 - Value of c is: 31
Line 2 - Value of c is: 11
Line 3 - Value of c is: 210
Line 4 - Value of c is: 2
Line 5 - Value of c is: 1
Toán tử gán kết hợp (Compound Assignment Operators)
Ngoài các toán tử cơ bản, C++ còn cung cấp các toán tử gán kết hợp dưới dạng e1 op= e2, tương đương với e1 = e1 op e2 nhưng e1 chỉ được đánh giá một lần.
| Toán tử | Mô tả |
|---|---|
| *= | Nhân vế trái với vế phải, gán kết quả vào vế trái |
| /= | Chia vế trái cho vế phải, gán kết quả vào vế trái |
| %= | Lấy dư vế trái cho vế phải, gán kết quả vào vế trái |
| += | Cộng vế phải vào vế trái, gán kết quả vào vế trái |
| -= | Trừ vế phải từ vế trái, gán kết quả vào vế trái |
Ví dụ sử dụng toán tử gán kết hợp
#include <iostream>
using namespace std;
int main() {
int a = 3, b = 2;
a += b; // a = 5
cout << a << endl;
a -= b; // a = 3
cout << a << endl;
a *= b; // a = 6
cout << a << endl;
a /= b; // a = 3
cout << a << endl;
return 0;
}
Kết quả
5
3
6
3
Lưu ý quan trọng: Gán kết hợp cho kiểu liệt kê (enum) sẽ gây lỗi biên dịch. Nếu toán hạng trái là con trỏ, toán hạng phải phải là con trỏ hoặc biểu thức hằng số bằng 0. Nếu toán hạng trái là kiểu nguyên, toán hạng phải không được là con trỏ.