4.2 Operators
There are three types of operators. A unary expression consists of either a unary operator prepended to an operand, or the sizeof keyword followed by an expression. The expression can be either the name of a variable or a cast expression. If expression is a cast expression, it must be enclosed in parentheses. A binary expression consists of two operands joined by a binary operator. A ternary expression consists of three operands joined by the ternary operator. C includes the following unary operators:
| – ~ ! |
Negation and complement operators |
| * & |
Indirection and address-of operators |
| sizeof |
Size operator |
| + |
Unary plus operator |
| ++ –– |
Unary increment and decrement operators |
Binary operators associate from left to right. C provides the following binary operators:
| * / % |
Multiplicative operators |
| + – |
Additive operators |
| << >> |
Shift operators |
| < > <= >= == != |
Relational operators |
| & | ^ |
Bitwise operators |
| && || |
Logical operators |
| , |
Sequential-evaluation operator |
| :> |
Base operator |
Expressions with operators also include assignment expressions, which use unary or binary assignment operators. The unary assignment operators are the increment (++) and decrement (––) operators; the binary assignment operators are the simple-assignment operator (=) and the compound-assignment operators. Each compound-assignment operator is a combination of another binary operator with the simple-assignment operator.