地址传递,两结果怎么不同?
#include"stdio.h"void main()
{
void swap(int *x,int *y);
int a=10,b=20;
printf("a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("after swap\ta=%d,b=%d\n",a,b);
}
void swap(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
printf("in swap x=%d,y=%d\n",*x,*y);
}
a=10 b=20
x=20 y=10
a=20 b=10
#include"stdio.h"
void main()
{
void swap(int *x,int *y);
int a=10,b=20;
printf("a=%d,b=%d\n",a,b);
swap(&a,&b);
printf("after swap\ta=%d,b=%d\n",a,b);
}
void swap(int *x,int *y)
{
int *t;
t=x;
x=y;
y=t;
printf("in swap x=%d,y=%d\n",*x,*y);
}
a=10 b=20
x=20 y=10
a=10 b=20