当前位置: 代码迷 >> C语言 >> 小程序` 不明白
  详细解决方案

小程序` 不明白

热度:406   发布时间:2007-11-25 09:40:38.0
2个程序应该完全一样,如果不一样那可能是编译器对代码优化上处理的不好。(关掉优化)
----------------解决方案--------------------------------------------------------
++a  是先自加
a++  是后自加,,
单独用是一样的。
但  如:
b = a++;//是先把a的植传给 b ,才自加一
b = ++a;//是先自加一,,才传给b,,,,
是不一样的,
如果先 a = 3;...则  第一个b = 3,,第二个b = 4;
----------------解决方案--------------------------------------------------------
10L的
你要理解a++和++a的概念~~!两个性质是不一样的
4楼解释的很好`
----------------解决方案--------------------------------------------------------
你们这些人都没看轻楼主的代码吗!

楼主的代码 a++;  和 ++a; 是单独的语句。

所以结果应该是一样的,如果不一样那就可能能编译器优化出了的问题。
----------------解决方案--------------------------------------------------------
printf("%d", ++a);  与 printf("%d", a++);  才不一样。
----------------解决方案--------------------------------------------------------
回复 4# 的帖子
是的,自加存在一个进入CPU加法运算器先后的顺序,a++,和++a 进入的时间不一样
----------------解决方案--------------------------------------------------------
printf("%d", ++a);  与 printf("%d", a++);  才不一样。

/*****************/
a++;
printf("%d\n", a);



++a;
printf("%d\n", a);

结果应该是一样的。

a++ 与 ++a 是一个单独的语句,那么不过下加还是后加,到了下一条语句a的值都是 + 1。


/*  帖子不能编辑,所以发了N贴   */
----------------解决方案--------------------------------------------------------
对于第一次a=0,当然运行到下一行时,也就是printf("%d\n",a);然后
a=a+1;此时a=1;
对4楼的最不理解之处就在于上面这句话?!
在这个程序中a++;
                     ++a;
都是单独成语句的
所以这个单独语句执行后,a都被加了1,并不是上面那句“也就是printf("%d\n",a);然后a=a+1;此时a=1;”
困惑中。。。。。。
----------------解决方案--------------------------------------------------------
你要是在printf("%d\n",a++);就是先输出A的值在执行A+=1;要是++A就是先执行A+=1;在输出值,但是要是不在输出语句中就想楼主那样,他们的结构都是要让A自加之后在输出结构。
----------------解决方案--------------------------------------------------------
7:        i++;
00401036   mov         eax,dword ptr [ebp-4]
00401039   add         eax,1
0040103C   mov         dword ptr [ebp-4],eax
8:        ++j;
0040103F   mov         ecx,dword ptr [ebp-8]
00401042   add         ecx,1
00401045   mov         dword ptr [ebp-8],ecx
i++;
++j;
单独成句,在反汇编中指令的循序是一样的
先是mov 寄存器,内存区
再是add 寄存器,1
然后mob 内存区,寄存器
......
----------------解决方案--------------------------------------------------------
  相关解决方案