lr******@yahoo.com (Luai) wrote in message news:<64**************************@posting.google. com>...
I made my midterm exam in the C language course.
I lost 18 marks off 100 because I didn't relaize this killing fact:
in (for loops) there is no difference between incrementing the loop in
these two ways:
for (i=0; i < 10 ; ++i)
and
for (i=0; i < 10 ; i++)
( notice the difference is between i++ and ++i )
What are your comments on this.
A proper understanding of the pre and post ++ and -- operators is
vital if you're going to be programming in C. I don't know if that
particular question should have been worth 18 points, though.
The expression i++ evaluates to the current value of i; as a *side
affect*, i is incremented some time before the next sequence point.
The expression ++i evaluates to the current value of i *plus 1*; as a
*side affect*, i is incremented sometime before the next sequence
point.
The -- operator works the same way, just replace "plus" with "minus"
and "increment" with "decrement".
In both cases above, you don't care about what the expression
evaluates to, just the side effect (incrementing i by 1), so either
expression works just as well. OTOH, if the autoincrement/decrement
expression is part of a larger expression, one or the other may be
called for. For example, given a variable i initialized to 1, the
expressions
j = i++ * 2 /* i == 1, j = 1 * 2 */
and
j = ++i * 2 /* i == 1, j = 2 * 2 */
will assign different results for j, so whether you use pre- or
post-increment does matter.