Thứ tự ưu tiên (Operator Precedence) quyết định thứ tự tính toán khi biểu thức có nhiều toán tử. Toán tử ưu tiên cao hơn được tính trước.
Kết hợp (Associativity) quyết định thứ tự khi các toán tử có cùng ưu tiên. Có 2 loại: Left-to-Right (trái sang phải) và Right-to-Left (phải sang trái).
Bảng thứ tự ưu tiên và kết hợp (tóm tắt)
| Mức | Toán tử | Ý nghĩa | Kết hợp |
|---|---|---|---|
| 1 | () [] -> . | Gọi hàm, mảng, truy cập struct | L→R |
| 2 | ! ~ + - ++ -- & * sizeof | Toán tử đơn ngôi | R→L |
| 3 | * / % | Nhân, chia, dư | L→R |
| 4 | + - | Cộng, trừ | L→R |
| 5 | << >> | Dịch bit trái, phải | L→R |
| 6 | < <= | So sánh nhỏ hơn | L→R |
| 7 | == != | So sánh bằng/khác | L→R |
| 8 | & | Bitwise AND | L→R |
| 9 | ^ | Bitwise XOR | L→R |
| 10 | | | Bitwise OR | L→R |
| 11 | && | Logic AND | L→R |
| 12 | || | Logic OR | L→R |
| 13 | ?: | Toán tử điều kiện | L→R |
| 14 | = *= /= %= += -= &= ^= |= <<= >>= | Gán và gán kết hợp | R→L |
| 15 | , | Phân cách | L→R |