求助自增自减相关问题
今天看实例碰见了一些问题,才发现自己的学习质量好差啊。
#include <stdio.h>
int main()
{
int i=5;
printf("\n %d,%d,%d\n",++i,i,--i);
printf("\ni = %d\n",i--);
return 0;
}
运行结果为
5,5,5
i=5
#include <stdio.h>
int main()
{
int i=5;
printf("\n %d,%d,%d\n",++i,i,++i);
printf("\ni = %d\n",i--);
return 0;
}
运行结果为
7,7,7
i=7
有哪位达人能帮我分析下么,我有点想不通。
[解决办法]
VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
不要写连自己也预测不了结果的代码!