posted 18 years ago
In the first example "a[ ++n ]" the increment is performed BEFORE evaluating the value of n.
So, the expressions becomes "a[ 0+1 ] = ++n", that is: "a[ 1 ] = ++n".
n now has value of 1, and it is incremented on the left side of " = ":
"a[ 1 ] = 1+1", that is: "a[ 1 ] = 2"
a[ 0 ] remains with the default value of 0.
In the second example "a[ ++n ]" the increment is performed AFTER evaluating the value of n.
So, the expressions becomes "a[ 0 ] = ++n".
Only then n is assigned the value of 1, and it is incremented on the left side of " = ":
"a[ 0 ] = 1+1", that is: "a[ 0 ] = 2"
a[ 1 ] remains with the default value of 0.