#include <stdio.h>
void huhuan3(int a,int b)// 在互换3中,你紧紧交换的是形参A,B的值
//也就是交换的是实参的一个副本,而没有交换实参的值
{
int t;
t=a;
a=b;
b=t;
}
int main(void)
{
int x,y;
scanf("%d%d",&x,&y);
huhuan3(x,y);
printf("x = %d,y = %d", x , y);
return 0;
}
#include <stdio.h>
void huhuan2(int * p, int * q)
{
int * t;
t=p;
p=q;
q=t; //这里实现交换的是p,q的值 也就是a,和b的地址,所以你输出的时候
// 如果你将下面的输出 改成输出 b,a的地址所指向的值 就可以看到
}
int main(void)
{
int a=3;
int b=5;
huhuan2( &a, &b);//这里进行的是地址传递,传递的是A 和b的地址
printf("%d,%d\n",a,b);
int *p,*q;
p=&a;
q=&b;
printf("%d %d",*q,*p);//也就是这里
return 0;
}
|