C Mức độ ưu tiên và tính liên kết của các toán tử: Định nghĩa và ví dụ

Trong hướng dẫn này, bạn sẽ tìm hiểu về mức độ ưu tiên và tính liên kết của các toán tử với sự trợ giúp của các ví dụ.

Mức độ ưu tiên của các nhà khai thác

Mức độ ưu tiên của các toán tử xác định toán tử nào được thực thi trước nếu có nhiều hơn một toán tử trong một biểu thức.

Chúng ta hãy xem xét một ví dụ:

 int x = 5 - 17* 6;

Trong C, mức độ ưu tiên *cao hơn -=. Do đó, 17 * 6được đánh giá đầu tiên. Khi đó, biểu thức liên quan -được đánh giá là mức độ ưu tiên của -cao hơn mức độ ưu tiên của =.

Đây là bảng các toán tử ưu tiên từ cao hơn xuống thấp hơn. Tính chất của sự kết hợp sẽ được thảo luận ngay sau đây.

Bảng ưu tiên và liên kết của nhà khai thác

Nhà điều hành Ý nghĩa của toán tử Sự liên kết
()
()
->
.
Lời gọi chức năng
Tham chiếu phần tử mảng
Lựa chọn thành viên gián tiếp Lựa chọn
thành viên trực tiếp
Trái sang phải
!
~
+
-
++
-
&
*
sizeof
(loại)
Phủ định logic
Bitwise (1 's) bổ sung cho
toán tử cộng
unary trừ
Tăng
Decrement
dereference (Address)
tham khảo Pointer
Returns kích thước của một đối tượng
định kiểu (chuyển đổi)
Phải sang trái
*
/
%
Nhân
Chia Số
Trái sang phải
+
-
Binary plus (Addition) Binary plus
(phép trừ)
Trái sang phải
<<
>>
Dịch trái Dịch
phải
Trái sang phải
<
<=
>
> =
Nhỏ hơn
Nhỏ hơn hoặc bằng
Lớn hơn
Lớn hơn hoặc bằng
Trái sang phải
==
! =
Bằng với
Không bằng
Trái sang phải
& Bitwise VÀ Trái sang phải
^ Bitwise độc ​​quyền HOẶC Trái sang phải
| Bitwise HOẶC Trái sang phải
&& Logic AND Trái sang phải
|| Logic HOẶC Trái sang phải
?: Điều hành có điều kiện Phải sang trái
=
* =
/ =
% =
+ =
- =
& =
=
| =
<< =
>> =
Nhiệm vụ đơn giản
sản phẩm Gán
Gán thương
Gán còn lại
Gán tổng
Gán chênh lệch
Assign bitwise AND
Assign bitwise XOR
Assign bitwise OR
Gán trái shift
Gán dịch phải
Phải sang trái
, Dấu phân cách của các biểu thức Trái sang phải

Tính liên kết của các nhà khai thác

Tính liên kết của các toán tử xác định hướng mà một biểu thức được đánh giá. Ví dụ,

 b = a;

Ở đây, giá trị của a được gán cho b chứ không phải ngược lại. Đó là bởi vì tính liên kết của =toán tử là từ phải sang trái.

Ngoài ra, nếu có hai toán tử có cùng mức độ ưu tiên (ưu tiên), thì tính kết hợp sẽ xác định hướng mà chúng thực thi.

Chúng ta hãy xem xét một ví dụ:

 1 == 2! = 3

Ở đây, các toán tử ==!=có cùng mức độ ưu tiên. Và, sự liên kết của họ là từ trái sang phải. Do đó, 1 == 2được thực thi đầu tiên.

Biểu thức trên tương đương với:

 (1 == 2)! = 3

Lưu ý: Nếu một câu lệnh có nhiều toán tử, bạn có thể sử dụng dấu ngoặc đơn ()để làm cho mã dễ đọc hơn.

thú vị bài viết...