关于C语言的一道选择题,大家帮我看看好吗?

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:54:44
要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确招待此功能的函数是:
A. funa(int *x,int *y)
{int *p;
*p=*x;*x=*y;*y=*p;
}
B. funb(int x,int y)
{int t;
t=x;x=y;y=t;
}
C.func(int x,int y)
{*x=*x+*y;*y=*x-*y;*x=*x-*y;
}
为什么B项不正确??

如果我没记错的话
B这种形式传的是形参,也就是说,在函数内部把x和y交换了
但在函数外部,并没有交换x和y

答案是A:
显然不是B啊~~
B,不能改变原来的数据.
不知道怎么说来着. 要想改变原来函数变量的值,就必须把地址的值传给它,即要用指针的~!