算术过程求解。。。。
哪位高手能把算术过程写出来,求写,p,q,i,j的算术过程,谢谢!这个问题很强大,甲鱼老师后面有个例题,直接输出一个数自增自剪运算的,你按甲鱼老师的要求自己去调试应该能弄明白!
p=8+7+7 只能意会! 不要把时间放在这些不是很重要的问题上! 这个问题很扯淡的 你换个编译器的结果就会不同
具体你可以随便下个断点然后反汇编看代码这个没法解释只能解释在我的电脑上是怎么运算的
但这个结果有可能和你的编译器计算出来的不同
你要想看的话 其实论坛已经有N多人解释过了你可以搜索下 啃啃 发表于 2013-10-19 18:15 static/image/common/back.gif
这个问题很强大,甲鱼老师后面有个例题,直接输出一个数自增自剪运算的,你按甲鱼老师的要求自己去调试应该 ...
*^_^* 在我的电脑上是 7 + 7 + 8 p = (i++) + (i++) + (i++);
00401036 mov eax,dword ptr ;此时eax = 5
00401039 add eax,dword ptr ;eax = 10
0040103C add eax,dword ptr ;在加一下,eax = 15
0040103F mov dword ptr ,eax ;把eax放到dword ptr 里面就得出p的值了
00401042 mov ecx,dword ptr
00401045 add ecx,1 ;这里执行完后 i = 6
00401048 mov dword ptr ,ecx
0040104B mov edx,dword ptr
0040104E add edx,1 ;执行完后 i = 7
00401051 mov dword ptr ,edx
00401054 mov eax,dword ptr
00401057 add eax,1 ;完后 i = 8
0040105A mov dword ptr ,eax ;把 eax的值放到dword ptr 里面就得出 i 的值了
你可以在vc6.0上反汇编调试的看一下,利用这个方法j与q的值得执行过程也就这样就出来了,但对于不同的编译器来说,结果可能是不同的
实际之中,用不到这样吧 这个问题不同的编译器可能结果不同, 要研究的话反汇编看一下汇编代码,其实实际中几乎不会这么用,不要把时间浪费在这个上面
呵呵,你这帖子,跟以下这个帖子很像呀:
http://bbs.fishc.com/thread-40063-1-1.html
你去看上面那个例子就懂了,我在里面有回复说明原因的。
页:
[1]