swap在另一个空间开辟内存,return以后这个空间就清空了
![](https://img-blog.csdnimg.cn/img_convert/6386abaaef34904b7ebbaadf6d0f4a67.png)
因此要使用指针,操作指针时就是操作a,b的地址
#include <stdio.h>
void swap(int *x,int *y){
int t;
t=*x;
*x=*y;
*y=t;
}
int main(){
void swap(int *x,int *y);
printf("请输入交换前a、b的值:\n");
int a,b;
scanf("%d %d",&a,&b);
int *pa=&a;int *pb=&b;
swap(pa,pb);
printf("交换后a、b的值:\na=%d , b=%d",*pa,*pb);
}
![](https://img-blog.csdnimg.cn/img_convert/e80a0ad7f2df3093ca5e7d2be17a57d5.png)