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 the 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 conditional-expression operator.
C includes the following unary operators:
Symbol | Name |
– ~ ! | 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:
Symbol | Name |
* / % | Multiplicative operators |
+ – | Additive operators |
<< >> | Shift operators |
< > <= >= == != | Relational operators |
& | ^ | Bitwise operators |
&& || | Logical operators |
, | Sequential-evaluation operator |
The conditional-expression operator has lower precedence than binary expressions and differs from them in being right associative.
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.