我有一个将指针int
作为参数的函数,当我第一次运行代码时,结果是:
-47 30 30
我想知道为什么,在第二次通过后,现在的值是
47 -46 -46
我似乎无法理解它,请帮助我理解代码的流程。
#include <stdio.h>
void mystery(int *, int *, int *);
int main(void) {
int p = -47, *q, r = 31;
q = &r;
printf("%d %d %d\n", p++, *q, --r);
mystery(q, &r, &p);
printf("%d %d %d\n", p, *q, r);
return 0;
} /* End of main. */
void mystery (int *x, int *y, int *z) {
*x = *y;
*y = (*z)++;
*z = 47;
return;
} /* End of mystery */