Let me try my hand at clearing this up
First of all, the confusion only arises when the increment (or decrement) ops (++) are used in combination with any other operation, including assignment (=).
If we were to use EITHER postfix OR prefix increment op by itself, it would not matter which we were to use, the result would always be i + 1.
But, as soon as you try and evaluate an incremented operand to something, the difference between prefix and postfix becomes very important: Postfix always EVALUATES to the value BEFORE the operation (incrementing or decrementing), whereas Prefix always evaluates to the value AFTER the operation (the way that makes sense). Here is an example:
i = 0 ;
j = i++ ; // j is still zero
j = ++i ; // NOW j is one
BUT, if we were to use either prefix or postfix op WITHOUT evaluating (assigning):
i = 0 ;
i++ ; // i is now one (same as if we had used ++i)
++i ; // i is now two
Hope that helps,
~Ryan
[This message has been edited by ryan burgdorfer (edited February 22, 2001).]