Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử gán (Assignment Operators) trong C++

Toán tử gán lưu giá trị vào đối tượng được chỉ định bởi toán hạng trái. Có hai loại phép gán: gán đơn giản (simple assignment), lưu giá trị toán hạng 2 vào đối tượng toán hạng 1; và gán phức hợp (compound assignment), thực hiện phép toán số học, dịch bit, hoặc bitwise trước khi lưu kết quả.

Ví dụ gán đơn giản

#include <iostream>
using namespace std;
int main() {
    int i;
    i = 10;  // Simple Assignment
    cout << i;
    return 0;
}

Kết quả

10

Các toán tử gán phức hợp dạng e1 op= e2, với e1 là l-value có thể sửa đổi, không const, e2 là kiểu số học hoặc con trỏ (nếu op là + hoặc -). Dạng này hoạt động như e1 = e1 op e2 nhưng e1 chỉ đánh giá một lần.

Các toán tử gán phức hợp trong C++:

Toán tử Mô tả
*=Nhân toán hạng 1 với toán hạng 2; lưu kết quả vào đối tượng toán hạng 1.
/=Chia toán hạng 1 cho toán hạng 2; lưu kết quả vào đối tượng toán hạng 1.
%=Lấy modulus toán hạng 1 theo toán hạng 2; lưu kết quả vào đối tượng toán hạng 1.
+=Cộng toán hạng 2 vào toán hạng 1; lưu kết quả vào đối tượng toán hạng 1.
-=Trừ toán hạng 2 từ toán hạng 1; lưu kết quả vào đối tượng toán hạng 1.
<<=Dịch trái toán hạng 1 số bit theo toán hạng 2; lưu kết quả vào đối tượng toán hạng 1.
>>=Dịch phải toán hạng 1 số bit theo toán hạng 2; lưu kết quả vào đối tượng toán hạng 1.
&=Lấy bitwise AND 2 toán hạng; lưu kết quả vào đối tượng toán hạng 1.
^=Lấy bitwise XOR 2 toán hạng; lưu kết quả vào đối tượng toán hạng 1.
|=Lấy bitwise OR 2 toán hạng; lưu kết quả vào đối tượng toán hạng 1.

Ví dụ

#include <iostream>
using namespace std;
int main() {
    int a = 3, b = 2;
    a += b; cout << a << endl;  // 5
    a -= b; cout << a << endl;  // 3
    a *= b; cout << a << endl;  // 6
    a /= b; cout << a << endl;  // 3
    return 0;
}

Kết quả

5
3
6
3

Lưu ý: Gán phức hợp cho enum sinh lỗi. Nếu toán hạng trái là con trỏ, phải phải là con trỏ hoặc hằng số 0. Nếu trái là kiểu nguyên, phải không được là con trỏ.