It has to do with operator precedence. The *
operator has a lower precedence than ++
so it occurs last.
Here's a Wikipedia chart that lists all the operators: http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence
You can see in the chart that postfix ++
has a precedence of 2 while *
dereference has a precedence of 3. (The numbers are slightly backwards, as lower numbers have higher precedence).