While I get the overall message I'm not sure last question is that unpredictable:
I++ + ++I
If postfix is executed first it returns 0 but prefix returns 2 and the result is 2. If prefix is executed first it returns 1 and then postfix also returns 1, result of the addition is again 2.
What else is ambiguous about this snippet? I can't think of a parse tree that'd evaluate addition before any of the increments - that'd be a syntax error.
If the code were (++i + i++) there could be alternative interpretations, but again ++ requires lvalue...