Expressions and Operators
An expression is a combination of operators and operands. In the simplest case, an expression consists simply of a constant, a variable, or a function call. Expressions can also serve as operands, and can be joined together by operators into more complex expressions.
Every expression has a type and, if the type is not
void, a value. Some examples of expressions
follow:
4 * 512 // Type: int
printf("An example!\n") // Type: int
1.0 + sin(x) // Type: double
srand((unsigned)time(NULL)) // Type: void
(int*)malloc(count*sizeof(int)) // Type: int *In expressions with more than one operator, the
precedence
of the operators determines the grouping
of operands with operators. The arithmetic operators
*, /, and %,
for example, take precedence over + and
-. In other words, the usual rules apply for the
order of operations in arithmetic expressions. For example:
4 + 6 * 512 // equivalent to 4 + (6 * 512)
If a different grouping is desired, parentheses must be used:
(4 + 6) * 512
Table 1-8 lists the precedence of operators.
|
Priority |
Operator |
Grouping |
|
1 |
|
left to right |
|
2 |
|
right to left |
|
3 |
|
left to right |
|
4 |
|
left to right |
|
5 |
|
left to right |
|
6 |
|
left to right |
|
7 |
|
left to right |
|
8 |
|
left to right |
|
9 |
|
left to right |
|
10 |
|
left to right |
|
11 |
|
left to right |
|
12 |
|
left to right |
|
13 |
|
right to left |
|
14 |
|
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access