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 |
|
Get C Pocket Reference now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.