|
|
发表于 2013-1-12 15:02:45
|
显示全部楼层
- #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;
- }
复制代码 |
|