读书人

请问达人一个C语言有关问题

发布时间: 2012-03-04 11:13:33 作者: rapoo

请教达人一个C语言问题!
i=0;
Z=(++i)+(++i)+(++i)

z等于多少?
为什么?

[解决办法]

探讨
应该是9吧...

[解决办法]
Assembly code
[color=#00FF00]11:       cout << (++i) + (++i) << endl;[/color]004015A9   push        offset @ILT+195(std::endl) (004010c8)004015AE   mov         edx,dword ptr [ebp-4]004015B1   add         edx,1004015B4   mov         dword ptr [ebp-4],edx004015B7   mov         eax,dword ptr [ebp-4]004015BA   add         eax,1004015BD   mov         dword ptr [ebp-4],eax004015C0   mov         ecx,dword ptr [ebp-4][color=#FF0000]004015C3   add         ecx,dword ptr [ebp-4][/color]004015C6   push        ecx004015C7   mov         ecx,offset std::cout (004767e0)004015CC   call        @ILT+250(std::basic_ostream<char,std::char_traits<char> >::operator<<) (004010ff)004015D1   mov         ecx,eax004015D3   call        @ILT+475(std::basic_ostream<char,std::char_traits<char> >::operator<<) (004011e0)
[解决办法]
上面写的是(++i) + (++i) 的反汇编代码,从上面可以看出来
(++i) + (++i) 的结果可以这样写:
C/C++ code
++i;++i;cout << i + i << endl; 

读书人网 >C++

热点推荐