# Include <stdio. h> int main () {int A = 4; printf ("A = 4 \ n"); printf ("(a) * (++) = % d \ TA = % d \ n ", (a) * (++ A), a); A = 4; printf (" (++) * (++ A) = % d \ TA = % d \ n ", (++ A) * (++ A), a); A = 4; printf ("(a ++) * (a ++) = % d \ TA = % d \ n", (a ++) * (a ++ ), a); A = 4; printf ("(a ++) * (A) = % d \ TA = % d \ n", (a ++) * (a), a); scanf ("% d", & );}
Disassembly code:
Running result:
The result shows that if a pre-auto-incrementing symbol exists in an expression, the auto-incrementing operation is performed in sequence, and the value of the expression is calculated using the auto-incrementing value. For example, when a = 4 (a) * (++ A) is 25, not 4*5 = 20. Similarly, the post-auto-incrementing symbol uses the original value to calculate the value of the expression, and then executes the auto-incrementing operation in sequence.
Have you said this today?