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:

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
:> 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.