当前位置: 代码迷 >> C语言 >> x=3 (x++)+(x++)+(x++)得多少?
  详细解决方案

x=3 (x++)+(x++)+(x++)得多少?

热度:198   发布时间:2008-06-01 21:51:04.0
明天问教授去,忽忽~~
----------------解决方案--------------------------------------------------------
...w  不说着是编译器问题 着题目没意义  我不知道..
----------------解决方案--------------------------------------------------------
这题真的没意义吗?
就是牛顿三大定律也有实用范围
----------------解决方案--------------------------------------------------------
我说编译器问题 你怎么说 ....
----------------解决方案--------------------------------------------------------
xxx说:要有“格物致知”精神!
----------------解决方案--------------------------------------------------------
理解能力差的我不理
----------------解决方案--------------------------------------------------------
思维不正常的大家也不用理

[color=white]
----------------解决方案--------------------------------------------------------
.... 不是我把.. . . . 我说的是实话
----------------解决方案--------------------------------------------------------
关于(++x)+(++x)+(++x)在VC中,经反汇编后
0040102F   mov         eax,dword ptr [ebp-4]  //dword ptr [ebp-4]存放的是变量x
00401032   add         eax,1
00401035   mov         dword ptr [ebp-4],eax
00401038   mov         ecx,dword ptr [ebp-4]
0040103B   add         ecx,1
0040103E   mov         dword ptr [ebp-4],ecx
00401041   mov         edx,dword ptr [ebp-4]
00401044   add         edx,dword ptr [ebp-4]
00401047   mov         eax,dword ptr [ebp-4]
0040104A   add         eax,1
0040104D   mov         dword ptr [ebp-4],eax
00401050   add         edx,dword ptr [ebp-4]
00401053   mov         dword ptr [ebp-4],edx
所以转换成c大致是:
x=3;
x=x+1;  
x=x+1;
x=x+x+(x+1);
至于TC和VC结果不同,是由于编译原理不同,对一些表达式处理不一样。估计是这样。

[[it] 本帖最后由 Kid_X 于 2008-6-1 22:42 编辑 [/it]]
----------------解决方案--------------------------------------------------------
我在想骑士飞行棋 怎么才能实现 让 两个人 同时对站  也就是 A 走完B 走  B 走完A 走  燕子 给点提示把
----------------解决方案--------------------------------------------------------
  相关解决方案