#include <stdio.h>
int fun1(int *a,int *b,int *c)
{
int *temp;
temp=a;a=b;b=temp;
*temp=*b;*b=*c;*c=*temp;
}
int main()
{
int a=5,b=7,c=3;
int *p1=&a,*p2=&b,*p3=&c;
fun1(p1,p2,p3);
printf("%d,%d,%d",a,b,c);
return 0;
}
fun1函数中,a和b交换的时候是操作的指针,所以对外面的ab没有影响。
bc交换的时候,操作的是指针指向的值,会对外面的bc产生影响。但是,这时候b实际是a的地址,所以a指向的值被变成了3