#include <stdio.h>
void main()
{
int a=-1,b=1;
void f1(int x,int y),f2(int * x,int * y);
void f3(int * x,int * y),f4(int x,int y);
f1(a,b);
printf("(%d,%d)\n",a,b);
a=-1,b=1;
f2(&a,&b);
printf("(%d,%d)\n",a,b);
a=-1,b=1;
f3(&a,&b);
printf("(%d,%d)\n",a,b);
a=-1,b=1;
f4(a,b);
printf("(%d,%d)\n",a,b);
}
void f1(int x,int y)
{
int t;
t=x;x=y;y=t;
}
void f2(int * x,int * y)
{
int t;
t=*x; *x=*y; *y=t;
}
void f3(int * x,int * y)
{
int * t;
t=x;x=y; y=t;
}
void f4(int x,int y)
{
int *t=malloc(sizeof(t));
*t=x;x=y;y=*t;
}
问一下
为什么第一行输出(-1,1)
第二行输出(1,-1)
第三行输出(-1,1)
第四行输出(-1,1)
不都是交换吗?怎么是这答案?
请高手帮帮忙啊