我知道 C 语言可以用指针实现数值交换,类似于这样:
void swap(int*x, int*y){ int tp; tp = *x; *x = *y; *y = tp; }
但是我想知道为啥下面这篇代码输出的是 1,2,2,1
1,2,2,1
m,nm,nm,n 的指针交换了但是为啥值没换过来?
int main(){ int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf("%d,%d,%d,%d",m,n,*p,*q); }