若i=0,分别求两个表达式的值,你给出的答案为多少呢?
(++i)+(++i)+(++i) 6?7?9?
(i++)+(i++)+(i++) 0? 3? 或者其他答案。
我在vc 6.0上做了测试,并把对应的汇编语言也附上。
110: int main(int argc, char* argv[])
111: {
0040D790 push ebp
0040D791 mov ebp,esp
0040D793 sub esp,48h
0040D796 push ebx
0040D797 push esi
0040D798 push edi
0040D799 lea edi,[ebp-48h]
0040D79C mov ecx,12h
0040D7A1 mov eax,0CCCCCCCCh
0040D7A6 rep stos dword ptr [edi]
112: int i=0,k=0;
0040D7A8 mov dword ptr [ebp-4],0
0040D7AF mov dword ptr [ebp-8],0
113: k=(++i)+(++i)+(++i);
0040D7B6 mov eax,dword ptr [ebp-4]
0040D7B9 add eax,1
0040D7BC