首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这是为什么。希望有人能帮小弟我详解一下

2012-02-15 
这是为什么。希望有人能帮我详解一下intcount1count(count++)+(count++)+(count++)输出结果count为6;而

这是为什么。希望有人能帮我详解一下
int   count=1;
count=(count++)+(count++)+(count++);
输出结果count为6;

int   count=1;
count=(++count)+(++count)+(++count);
输出结果count为10;

我不理解怎么能算到的;

请大家帮我分析解答一下,谢谢

[解决办法]
int count=1;
count=(count++)+(count++)+(count++)
先做count = count + count + count = 3;
然后做count++;count++;count++

0041FE35 mov eax,dword ptr [count] ;eax = count = 1
0041FE38 add eax,dword ptr [count] ;eax = eax + count = 1 + 1 = 2
0041FE3B add eax,dword ptr [count] ;eax = eax + count = 2 + 1 = 3
0041FE3E mov dword ptr [count],eax ;count = eax = 3
0041FE41 mov ecx,dword ptr [count] ;ecx = count = 3
0041FE44 add ecx,1 ;ecx = ecx + 1 = 4
0041FE47 mov dword ptr [count],ecx ;count = ecx = 4
0041FE4A mov edx,dword ptr [count] ;edx = count = 4
0041FE4D add edx,1 ;edx = edx + 1 = 5
0041FE50 mov dword ptr [count],edx ;count = edx = 5
0041FE53 mov eax,dword ptr [count] ;eax = count = 5
0041FE56 add eax,1 ;eax = eax + 1 = 6
0041FE59 mov dword ptr [count],eax ;count = eax = 6


int count=1;
count=(++count)+(++count)+(++count)
先做count++;count++;count++使count = 4;
然后做count = count + count + count = 4+4+4 = 12
0041FE35 mov eax,dword ptr [count] ;eax = count = 1
0041FE38 add eax,1 ;eax + 1 = 2
0041FE3B mov dword ptr [count],eax ;count = eax = 2
0041FE3E mov ecx,dword ptr [count] ;ecx = count = 2
0041FE41 add ecx,1 ;ecx + 1 = 3
0041FE44 mov dword ptr [count],ecx ;count = ecx = 3
0041FE47 mov edx,dword ptr [count] ;edx = count = 3
0041FE4A add edx,1 ;edx + 1 = 4
0041FE4D mov dword ptr [count],edx ;count = edx = 4
0041FE50 mov eax,dword ptr [count] ;eax = count = 4
0041FE53 add eax,dword ptr [count] ;eax = eax + count = 8
0041FE56 add eax,dword ptr [count] ;eax = eax + count = 8 + 4 = 12
0041FE59 mov dword ptr [count],eax ;count = eax = 12

热点排行