请教达人一个C语言问题!
i=0;
Z=(++i)+(++i)+(++i)
z等于多少?
为什么?
[解决办法]
[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) 的结果可以这样写:
++i;++i;cout << i + i << endl;