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

Các toán tử C++ với độ ưu tiên và tính kết hợp

Độ ưu tiên toán tử (operator precedence) xác định cách nhóm các hạng tử trong một biểu thức. Tính kết hợp (associativity) của một toán tử là thuộc tính xác định cách các toán tử cùng độ ưu tiên được nhóm khi không có dấu ngoặc. Điều này ảnh hưởng đến cách biểu thức được đánh giá. Một số toán tử có độ ưu tiên cao hơn các toán tử khác; ví dụ, toán tử nhân có độ ưu tiên cao hơn toán tử cộng:

Ví dụ: x = 7 + 3 * 2; ở đây, x được gán 13, không phải 20 vì toán tử * có độ ưu tiên cao hơn +, nên nó nhân 3*2 trước rồi mới cộng vào 7.

Dưới đây là bảng độ ưu tiên toán tử, từ cao nhất (đầu bảng) xuống thấp nhất (cuối bảng). Trong một biểu thức, toán tử độ ưu tiên cao hơn sẽ được đánh giá trước.

Nhóm Toán tử Tính kết hợp
Hậu tố (Postfix)() [] -> . ++ --Trái sang phải
Đơn ngôi (Unary)+ - ! ~ ++ -- (type)* & sizeofPhải sang trái
Nhân chia (Multiplicative)* / %Trái sang phải
Cộng trừ (Additive)+ -Trái sang phải
Dịch bit (Shift)<< >>Trái sang phải
Quan hệ (Relational)< <= > >=Trái sang phải
Bằng nhau (Equality)== !=Trái sang phải
Bitwise AND&Trái sang phải
Bitwise XOR^Trái sang phải
Bitwise OR|Trái sang phải
Logic AND&&Trái sang phải
Logic OR||Trái sang phải
Điều kiện (Conditional)?:Phải sang trái
Gán (Assignment)= += -= *= /= %= >>= <<= &= ^= |=Phải sang trái
Dấu phẩy (Comma),Trái sang phải