形参与实参
#include"stdio.h"void fun(int*a,int*b)
{
int *k;
k=a;a=b;b=k;
}
main()
{
int a=1,b=2,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
printf("%d%d",*x,*y);
}
为什么调用fun后*x和*y的值没有改变呢,不理解了,高人指点
2011-06-13 10:57
2011-06-13 16:31
......
2011-06-13 17:26
程序代码:void fun(int *a,int *b)
{
int *k;
k=a;a=b;b=k;
}
和
void fun(int *a,int *b)
{
int k;
k=*a;*a=*b;*b=k;
}
传递的时候到底发生了什么?为什么会不一样呢,都是传的地址啊?第一个把两个指针交换了,第二个把指针里的内容交换了
2011-06-16 09:26
2011-06-16 09:57
2011-06-16 10:00