这个你的了解堆栈内存结构才行
p=&i;
a=(*p)++; 这个等价于 a=(*p);(*p)++; ,也就是a = 10;(*p) = 11了,也就是i = 11;
b=*(p++);等价于 b = *p; p++; 也就是b = 11;p指向上一个内存单元。这个内存单元不是你分配的,所以里面的数据为未知了。
所以c=*p; c的值是一个不确定的。
也就是i = 11,a=10,b=11,c=不确定
我这边反汇编是
int i=10, j=20, k=30, a, b, c, *p;
00413D8E mov dword ptr [i],0Ah
00413D95 mov dword ptr [j],14h
00413D9C mov dword ptr [k],1Eh
p=&i;
00413DA3 lea eax,[i]
00413DA6 mov dword ptr [p],eax
a=(*p)++;
00413DA9 mov eax,dword ptr [p]
00413DAC mov ecx,dword ptr [eax]
00413DAE mov dword ptr [a],ecx
00413DB1 mov edx,dword ptr [p]
00413DB4 mov eax,dword ptr [edx]
00413DB6 add eax,1
00413DB9 mov ecx,dword ptr [p]
00413DBC mov dword ptr [ecx],eax
b=*(p++);
00413DBE mov eax,dword ptr [p]
00413DC1 mov ecx,dword ptr [eax]
00413DC3 mov dword ptr [b],ecx
00413DC6 mov edx,dword ptr [p]
00413DC9 add edx,4
00413DCC mov dword ptr [p],edx
c=*p;
00413DCF mov eax,dword ptr [p]
00413DD2 mov ecx,dword ptr [eax]
00413DD4 mov dword ptr [c],ecx
查看各值