Appendix B: C++ Operators, Precedence, and Associativity Rules
Hussam Ghunaim, Ph.D.
C++ has many operators, precedence, and associativity rules. Below is a short list. (source: C++ built-in operators, precedence, and associativity | Microsoft Learn)
Operator Description | Operator | Alternative |
---|---|---|
Group 1 precedence, no associativity | ||
Scope resolution | :: |
|
Group 2 precedence, left to right associativity | ||
Function call | () |
|
Postfix increment | ++ |
|
Postfix decrement | -- |
|
Static type conversion | static_cast |
|
Group 3 precedence, right to left associativity | ||
Size of object or type | sizeof |
|
Prefix increment | ++ |
|
Prefix decrement | -- |
|
Logical not | ! |
not |
Unary negation | - |
|
Unary plus | + |
|
Address-of | & |
|
Indirection | * |
|
Group 5 precedence, left to right associativity | ||
Multiplication | * |
|
Division | / |
|
Modulus | % |
|
Group 6 precedence, left to right associativity | ||
Addition | + |
|
Subtraction | - |
|
Group 8 precedence, left to right associativity | ||
Less than | < |
|
Greater than | > |
|
Less than or equal to | <= |
|
Greater than or equal to | >= |
|
Group 9 precedence, left to right associativity | ||
Equality | == |
|
Inequality | != |
not_eq |
Group 13 precedence, left to right associativity | ||
Logical AND | && |
and |
Group 14 precedence, left to right associativity | ||
Logical OR | || |
or |
Group 15 precedence, right to left associativity | ||
Conditional | ? : |
|
Assignment | = |
|
Multiplication assignment | *= |
|
Division assignment | /= |
|
Modulus assignment | %= |
|
Addition assignment | += |
|
Subtraction assignment | -= |
|
Group 16 precedence, left to right associativity | ||
Comma | , |