O'Reilly logo

C Pocket Reference by Ulla Kirch-Prinz, Peter Prinz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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.

Table 1-8. Precedence of operators

Priority

Operator

Grouping

1

() [] -> .

left to right

2

! ~ ++ -- + - (type) * & sizeof

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

= += -= *= ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required