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

Độ ưu tiên và kết hợp của toán tử trong C


Độ ưu tiên toán tử quyết định nhóm các hạng tử trong biểu thức. Toán tử * có độ ưu tiên cao hơn +. Ví dụ: x = 7 + 3 * 2 => x = 13.

Bảng độ ưu tiên (từ cao đến thấp) và kết hợp:

Phân loạiToán tửKết hợp
Postfix() [] -> . ++ --Trái sang phải
Unary+ - ! ~ ++ -- (type)* & sizeofPhải sang trái
Multiplicative* / %Trái sang phải
Additive+ -Trái sang phải
Shift<< >>Trái sang phải
Relational< <= > >=Trái sang phải
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
Logical AND&&Trái sang phải
Logical OR||Trái sang phải
Conditional?:Phải sang trái
Assignment= += -= *= /= %= >>= <<= &= ^= |=Phải sang trái
Comma,Trái sang phải

Ví dụ

#include <stdio.h>
int main() {
    int a = 20, b = 10, c = 15, d = 5, e;
    e = (a + b) * c / d;      // (30 * 15) / 5 = 90
    printf("Value of (a + b) * c / d is : %d\n", e);
    e = ((a + b) * c) / d;    // 90
    printf("Value of ((a + b) * c) / d is : %d\n", e);
    e = (a + b) * (c / d);    // 30 * 3 = 90
    printf("Value of (a + b) * (c / d) is : %d\n", e);
    e = a + (b * c) / d;      // 20 + 30 = 50
    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