cout输出
int a[] = {1,3,5,7,9};
int *p = a;
cout<<*(++(++p))<<*(p++);
out:73
求详细计算过程!
第一个7好理解,第二个3是为什么?
我跟踪确实push 3
cout<<*(++(++p))<<*(p++);
004016E1 mov ecx,dword ptr [ebp-18h]
004016E4 add ecx,4
004016E7 mov dword ptr [ebp-18h],ecx
004016EA mov edx,dword ptr [ebp-18h]
004016ED mov eax,dword ptr [edx]
004016EF mov dword ptr [ebp-1Ch],eax
004016F2 mov ecx,dword ptr [ebp-1Ch]
004016F5 push ecx
004016F6 mov edx,dword ptr [ebp-18h]
004016F9 add edx,4
004016FC mov dword ptr [ebp-18h],edx
004016FF mov eax,dword ptr [ebp-18h]
00401702 add eax,4
00401705 mov dword ptr [ebp-18h],eax
00401708 mov ecx,dword ptr [ebp-18h]
0040170B mov edx,dword ptr [ecx]
0040170D push edx
0040170E mov ecx,offset std::cout (004777e0)
00401713 call @ILT+255(std::basic_ostream<char,std::char_traits<char> >::operator<<) (00401104)
00401718 mov ecx,eax
0040171A call @ILT+255(std::basic_ostream<char,std::char_traits<char> >::operator<<) (00401104)