*(ptr++) += 123 的理解
这样的话:
【代码1:】
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
int main()
{
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) = *(ptr++) + 123;
printf("%d ,%d\n",*ptr,*(++ptr));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
int main()
{
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d ,%d\n",*ptr,*(++ptr));
system("pause");
return 0;
}
//第一段代码
*(ptr++) = *(ptr++) + 123;
004113E7 mov eax,dword ptr [ptr]
004113EA mov ecx,dword ptr [eax]
004113EC add ecx,7Bh
004113EF mov edx,dword ptr [ptr]
004113F2 mov dword ptr [edx],ecx
004113F4 mov eax,dword ptr [ptr]
004113F7 add eax,4
004113FA mov dword ptr [ptr],eax
004113FD mov ecx,dword ptr [ptr]
00411400 add ecx,4
00411403 mov dword ptr [ptr],ecx
printf("%d ,%d\n",*ptr,*(++ptr));
00411406 mov eax,dword ptr [ptr]
00411409 add eax,4
0041140C mov dword ptr [ptr],eax
0041140F mov esi,esp
00411411 mov ecx,dword ptr [ptr]
00411414 mov edx,dword ptr [ecx]
00411416 push edx
00411417 mov eax,dword ptr [ptr]
0041141A mov ecx,dword ptr [eax]
0041141C push ecx
0041141D push offset string "%d ,%d\n" (415644h)
00411422 call dword ptr [__imp__printf (4182BCh)]
00411428 add esp,0Ch
0041142B cmp esi,esp
0041142D call @ILT+305(__RTC_CheckEsp) (411136h)
*(ptr++) += 123;
004113E7 mov eax,dword ptr [ptr]
004113EA mov ecx,dword ptr [eax]
004113EC add ecx,7Bh
004113EF mov edx,dword ptr [ptr]
004113F2 mov dword ptr [edx],ecx
004113F4 mov eax,dword ptr [ptr]
004113F7 add eax,4
004113FA mov dword ptr [ptr],eax
printf("%d ,%d\n",*ptr,*(++ptr));
004113FD mov eax,dword ptr [ptr]
00411400 add eax,4
00411403 mov dword ptr [ptr],eax
00411406 mov esi,esp
00411408 mov ecx,dword ptr [ptr]
0041140B mov edx,dword ptr [ecx]
0041140D push edx
0041140E mov eax,dword ptr [ptr]
00411411 mov ecx,dword ptr [eax]
00411413 push ecx
00411414 push offset string "%d ,%d\n" (415644h)
00411419 call dword ptr [__imp__printf (4182BCh)]
0041141F add esp,0Ch
00411422 cmp esi,esp
00411424 call @ILT+305(__RTC_CheckEsp) (411136h)