33,311
社区成员
发帖
与我相关
我的任务
分享
int main(int argc,char * argv[])
{
int a[] = {5,1,3,4};
int *q = a;
printf("%d\n",(*q)++); //输出结果为 5 6
//printf("%d\n",*q++); //输出结果为 5 1
printf("%d\n",*q);
}
int a[] = {1,2,3,4,5};
00ED3508 mov dword ptr [a],1
00ED350F mov dword ptr [ebp-18h],2
00ED3516 mov dword ptr [ebp-14h],3
00ED351D mov dword ptr [ebp-10h],4
00ED3524 mov dword ptr [ebp-0Ch],5
int *q = a;
00ED352B lea eax,[a]
00ED352E mov dword ptr [q],eax
*q++; // q指向a[1]
00ED3531 mov eax,dword ptr [q]
00ED3534 add eax,4
00ED3537 mov dword ptr [q],eax
}
{
int a[] = {1,2,3,4,5};
00ED353A mov dword ptr [a],1
00ED3541 mov dword ptr [ebp-40h],2
00ED3548 mov dword ptr [ebp-3Ch],3
00ED354F mov dword ptr [ebp-38h],4
00ED3556 mov dword ptr [ebp-34h],5
int *q = a;
00ED355D lea eax,[a]
00ED3560 mov dword ptr [q],eax
(*q)++; //q的值不变,a[0] = 2
00ED3563 mov eax,dword ptr [q]
00ED3566 mov ecx,dword ptr [eax]
00ED3568 add ecx,1
00ED356B mov edx,dword ptr [q]
00ED356E mov dword ptr [edx],ecx
}