++*p++;
00411427 mov eax,dword ptr [p]
0041142A mov ecx,dword ptr [eax]
0041142C add ecx,1
0041142F mov edx,dword ptr [p]
00411432 mov dword ptr [edx],ecx
00411434 mov eax,dword ptr [p]
00411437 add eax,4
0041143A mov dword ptr [p],eax
++p;
0041144A mov eax,dword ptr [p]
0041144D add eax,4
00411450 mov dword ptr [p],eax
++*p;
0041143D mov eax,dword ptr [p]
00411440 mov ecx,dword ptr [eax]
00411442 add ecx,1
00411445 mov edx,dword ptr [p]
00411448 mov dword ptr [edx],ecx
*p++;
0041144A mov eax,dword ptr [p]
0041144D add eax,4
00411450 mov dword ptr [p],eax
p++;
00411453 mov eax,dword ptr [p]
00411456 add eax,4
00411459 mov dword ptr [p],eax
거참 누가 이런 코드를 쓰는지 .... 이런 문제를 냈는지 궁금하다만, 제대로 이해하고 있는가를 평가하기 위해서 만들어냈겠지
디버그 모드로 디어셈블 해서 보면
++*p++ 과 ++*p; *p++; 하고 결과가 똑같다.
즉 ++*p에서는 *p=*p+1 역할을 하고
*p++는 p++ 역할을 한다.
즉 *(p++) 정도?
0041145C mov eax,dword ptr [p]
0041145F add eax,4
00411462 mov dword ptr [p],eax
역시 같이 처리하는구나.. :-)
이는 우선순위가 *보다 ++나 --가 높다는것을 의미하는 거겠지...?
모르는 부분이 있을때는 디어셈해서 보면 더 자세히 알 수 있다는것 중요 ;-)