Thứ tự ưu tiên của toán tử xác định các nhóm trong một biểu thức và quyết định cách tính một biểu thức. Một số toán tử có quyền ưu tiên cao hơn những 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 = 13, không phải 20 vì toán tử * có độ ưu tiên cao hơn +, do đó, thực hiện 3*2 rồi cộng với 7.
Ở đây, các toán tử có mức độ ưu tiên cao nhất sẽ xuất hiện ở đầu bảng, những toán tử có mức độ ưu tiên thấp nhất sẽ xuất hiện ở cuối bảng. Trong một biểu thức, các toán tử có mức độ ưu tiên cao hơn sẽ được thực hiện trước.
Ví dụ:
- 5 + 6 * 7: Trong biểu thức này, toán tử nhân (*) có độ ưu tiên cao hơn toán tử cộng (+), vì vậy biểu thức được tính là 5 + (6 * 7), bằng 5 + 42 = 47 .
- (5 + 6) * 7: Trong biểu thức này, dấu ngoặc đơn được sử dụng để xác định thứ tự các phép tính, vì vậy biểu thức được tính là (5 + 6) * 7 = 11 * 7 = 77.
- 5 * 6 + 7/2: Trong biểu thức này, phép nhân và phép chia có cùng mức độ ưu tiên, vì vậy các phép tính được tính từ trái sang phải, vì vậy biểu thức được tính là (5 * 6) + (7 / 2) = 30 + 3 = 33.
- 5 * (6 + 7) / 2: Trong biểu thức này, dấu ngoặc đơn được sử dụng để chỉ định thứ tự các phép tính, vì vậy biểu thức được tính là 5 * (6 + 7) / 2 = 5 * 13 / 2 = 65 / 2 = 32.
main() {
int a = 20, b = 10, c = 15, d = 5, e;
e = (a + b) * c / d; // ( 30 * 15 ) / 5
printf("Value of (a + b) * c / d is : %d\n", e );
e = ((a + b) * c) / d; // (30 * 15 ) / 5
printf("Value of ((a + b) * c) / d is : %d\n" , e );
e = (a + b) * (c / d); // (30) * (15/5)
printf("Value of (a + b) * (c / d) is : %d\n", e );
e = a + (b * c) / d; // 20 + (150/5)
printf("Value of a + (b * c) / d is : %d\n" , e );
return 0;
}
Kết quả:
Value of (a + b) * c / d is : 90
Value of ((a + b) * c) / d is : 90
Value of (a + b) * (c / d) is : 90
Value of a + (b * c) / d is : 50
0 Nhận xét