int i=0,a=0;
a=(i++)+(++i)+(i++);
结果是a=3;i=3;
VC执行过程
a=(i++)+(++i)+(i++);
00401566 mov eax,dword ptr [ebp-4]
00401569 add eax,1 //i++
0040156C mov dword ptr [ebp-4],eax //i=1
0040156F mov ecx,dword ptr [ebp-4] //ecx=i
00401572 add ecx,dword ptr [ebp-4] //ecx+=i
00401575 add ecx,dword ptr [ebp-4] //ecx+=i
00401578 mov dword ptr [ebp-8],ecx //a=ecx
0040157B mov edx,dword ptr [ebp-4]
0040157E add edx,1 //i=i+1
00401581 mov dword ptr [ebp-4],edx
00401584 mov eax,dword ptr [ebp-4]
00401587 add eax,1 //i=i+1
0040158A mov dword ptr [ebp-4],eax
由此可看出 先执行++i,后执行=,最后才执行两个i++。