Chat
Danh mục
Lập trình C++: Thứ tự ưu tiên của các toán tử

Lập trình C++: Thứ tự ưu tiên của các toán tử

Số lượng:
Thêm vào giỏ
Lập trình C++: Thứ tự ưu tiên của các toán tử đã được thêm vào giỏ hàng

Khi viết các biểu thức phức tạp với nhiều toán hạng các bạn có thể tự hỏi toán hạng nào được tính trước, toán hạng nào được tính sau. Ví dụ như trong biểu thức sau:

a = 5 + 7 % 2

có thể có hai cách hiểu sau:

a = 5 + (7 % 2) với kết quả là 6,

hoặc

a = (5 + 7) % 2 với kết quả là 0.

Câu trả lời đúng là biểu thức đầu tiên. Vì nguyên nhân nói trên, ngôn ngữ C++ đã thiết lập một thứ tự ưu tiên giữa các toán tử, không chỉ riêng các toán tử số học mà tất cả các toán tử có thể xuất hiện trong C++. Thứ tự ưu tiên của chúng được liệt kê trong bảng sau theo thứ tự từ cao xuống thấp.

Thứ tựToán tửMô tảAssociativity
1::scopeTrái
2() [ ] -> . sizeofTrái
3++ --tăng/giảmPhải
~Đảo ngược bit
!NOT
& *Toán tử con trỏ
(type)Chuyển đổi kiểu
+ -Dương hoặc âm
4* / %Toán tử số họcTrái
5+ -Toán tử số họcTrái
6<< >>Dịch bitTrái
7< <= > >=Toán tử quan hệTrái
8== !=Toán tử quan hệTrái
9& ^ |Toán tử thao tác bitTrái
10&& ||Toán tử logicTrái
11?:Toán tử điều kiệnPhải
12= += -= *= /= %=
= <<= &= ^= |=
Toán tử gánPhải
13,Dấu phẩyTrái

Associativity định nghĩa trong trường hợp có một vài toán tử có cùng thứ tự ưu tiên thì cái nào sẽ được tính trước, toán tử ở phía xa nhất bên phải hay là xa nhất bên trái.

Nếu bạn muốn viết một biểu thức phức tạp mà lại không chắc lắm về thứ tự ưu tiên của các toán tử thì nên sử dụng các ngoặc đơn. Các bạn nên thực hiện điều này vì nó sẽ giúp chương trình dễ đọc hơn.

(Theo OurViet Network