懂c++兄弟们帮个忙啊!

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:30:18
#include<stdio.h>
{
int x=8,y=8,p,q;
p=(x++)+(x++)+(x++);
q=(++y)+(++y)+(++y);
printf("%d,%d,%d,%d",p,q,x,y);
}
谁能用电脑的思维解释一下啊!
在电脑中是如何运行p=,q=,这两部的?
谢谢各位了!
没有啊! 书里说的都很不清楚啊! 书上说"q="的运行结果为33 可实际运行结果为31 我用的是vc++ 教程也是vc的啊! 咋回事啊?

不想给你说这个,VC6会把这个弄错.
下面是我刚用VC6编译的结果。

116: int x=8,y=8,p,q;
00401168 mov dword ptr [ebp-4],8
0040116F mov dword ptr [ebp-8],8
117: p=(x++)+(x++)+(x++);
00401176 mov eax,dword ptr [ebp-4]
00401179 add eax,dword ptr [ebp-4]
0040117C add eax,dword ptr [ebp-4]
0040117F mov dword ptr [ebp-0Ch],eax
00401182 mov ecx,dword ptr [ebp-4]
00401185 add ecx,1
00401188 mov dword ptr [ebp-4],ecx
0040118B mov edx,dword ptr [ebp-4]
0040118E add edx,1
00401191 mov dword ptr [ebp-4],edx
00401194 mov eax,dword ptr [ebp-4]
00401197 add eax,1
0040119A mov dword ptr [ebp-4],eax
118: q=(++y)+(++y)+(++y);
0040119D mov ecx,dword ptr [ebp-8]
004011A0 add ecx,1
004011A3 mov dword ptr [ebp-8],ecx
004011A6