Alan,

You always should try in practice after you read, so you could check if you're right. How to check?

Here is how I think in my head about them ("++x", "x--", "--x"), like about a standalone expressions.

At the beginning you have x = 3.

1. x = 3

2. Since it is pre-increment, you

__increment "x" first__ (3+1),

__only then you place__ it in expression

int y = 4 * 5 / ...

3. As you know, your "x" is 4 now. Next step you have post-decrement (x--). So you

__first place__ your current "x" value to expression,

__then decrement__.

int y = 4 * 5 / 4 + ...

4. You know from previous step. That your "x" after was placed to expression, then had to be decremented (4 - 1 = 3). So the last one you have is "--x". And current "x" is 3. So again,

__decrement first__ again, and only

__then place__ to expression.

int y = 4 * 5 / 4 + 2

5. And, since first multiplication/division, then addition,

you should think about it as:

int y = ((4 * 5) / 4) + 2

So you have:

int y = 20 / 4 + 2;

int y = 5 + 2;

int y = 7;

Hope it helps a bit.