psxgameedit怎么用:[C语言]超级菜鸟初学编程的疑问...

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 22:47:23
悬赏分:0 - 离问题结束还有 14 天 23 小时
int m;
m=1;
m++;
printf("%d",m);

和 int m;
m=1;
printf("%d",m++);
为什么我感觉两个运行结果应该一样
可事实却不一样里?=.=
都是m++只是摆的地方不一样就不一样了:(

把第二个程序的“m++”改为“++m”就是一样的了

m++是先取值,后+1。这样,第二个程序的输出就是1了。
改为++m后,先+1,后取值,这样第二个程序的输出才是2。

m++先取值后加1
第二个中的输出语句,先取m的值此时等于一,然后m+1=2,输出的时候已取m=1,输出即为一。若再次 printf("%d",m);此时输出为2。这就是为什么第一个输出为1第二个为2的原因。
将把第二个“m++”改为“++m”两个输出结果就相同了

楼上回答的很正确啊?要慢慢体会啊