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 18 lists the precedence of operators.
Table 18. 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 

No credit card required