#include<stdio.h>
huan(int *p,int *q){int t;t=*p;*p=*q;*q=t;}int main(){
int a=3,b=10; huan(&a,&b);printf("%d %d",a,b);
}
这里我最疑惑的是不是改变*p的值就改变了a的值,为此,我专门敲了段代码,验证一下
#include<stdio.h> int main(){int a=3,*p;p=&a;printf("%d %d\n",a,*p); *p=10; printf("%d %d",a,*p); }
不出所料,的确是这样的,*p和a是等值得,改变其中一个另一个也要改变
p只是a的地址罢了