#include<stdio.h>
void swap(int **m,int **n){//二级指针交换
int *i;
i=*m;
*m=*n;
*n=i;
}
void swap2(int &n,int &m){//地址引用交换
int t;
t=n;
n=m;
m=t;
}
void swap3(int *n,int *m){//一级指针交换
int temp=*n;
*n=*m;
*m=temp;
}
int main(){
int a,b,*pa,*pb;
pa=&a;
pb=&b;
scanf("%d%d",pa,pb);
swap(&pa,&pb);//交换了指针*pa,*pb的指向,a,b的值未改变
printf("\n1:............\n");
printf("a=%d,b=%d\n",*pa,*pb);
printf("a=%d,b=%d",a,b);
/*以下两种都修改了a,b的值*/
printf("\n2:............\n");
swap2(a,b);//
printf("a=%d,b=%d\n",a,b);
printf("a=%d,b=%d\n",a,b);
printf("\n3..............\n");
swap3(&a,&b);
printf("a=%d,b=%d\n",a,b);
printf("a=%d,b=%d\n",a,b);
return 0;
}
输入
20 40
运行结果
1:…
a=40,b=20
a=20,b=40
2:…
a=40,b=20
a=40,b=20
3…
a=20,b=40