为了加深对"(*p)++"如何工作的印象,我写了一些测试代码,如:
int main()
{
int a = 3;
int *p = &a;
int b = (*p)++;
int *q = p++;
int c = a++;
int d = c++;
printf("a = %d, b = %d, c = %d, d = %d, p = %#x, q = %#x\n",a, b, c, d, p, q);
}
Run Code Online (Sandbox Code Playgroud)
输出为:a = 5,b = 3,c = 5,d = 4,p = 0xc6dc3490,q = 0xc6dc348c
但我的问题是关于装配(代码是订单而不是关闭和开启):
main:
push rbp
mov rbp, rsp
sub rsp, 48
;int a = 3 : …Run Code Online (Sandbox Code Playgroud)