C++ 運算子優先順序和結合性
運算子優先順序決定了表示式中各項的組合方式。運算子的結合性是一個屬性,它決定了在沒有括號的情況下,相同優先順序的運算子是如何分組的。這會影響表示式的計算方式。某些運算子的優先順序高於其他運算子;例如,乘法運算子的優先順序高於加法運算子。
例如,x = 7 + 3 * 2; 這裡,x 的值為 13,而不是 20,因為 * 運算子的優先順序高於 +,所以它首先計算 3*2,然後加上 7。
這裡,優先順序最高的運算子出現在表格的頂部,優先順序最低的出現在底部。在一個表示式中,優先順序高的運算子將首先計算。
類別 | 運算子 | 結合性 |
---|---|---|
字尾 | () [] -> . ++ - - | 從左到右 |
一元 | + - ! ~ ++ -- (type)* & sizeof | 從右到左 |
乘法 | * / % | 從左到右 |
加法 | + - | 從左到右 |
移位 | << >> | 從左到右 |
關係 | < <= > >= | 從左到右 |
相等 | == != | 從左到右 |
按位與 | & | 從左到右 |
按位異或 | ^ | 從左到右 |
按位或 | | | 從左到右 |
邏輯與 | && | 從左到右 |
邏輯或 | || | 從左到右 |
條件 | ?: | 從右到左 |
賦值 | = += -= *= /= %= >>= <<= &= ^= |= | 從右到左 |
逗號 | , | 從左到右 |
廣告