swap的用法?

来源:百度知道 编辑:UC知道 时间:2024/05/28 17:10:29
17.若输入5和2后,下面程序的运行结果是( )
void swap(x1,x2)
int *x1, *x2;
{int *x;
x=x1;x1=x2;x2=x;}
main( )
{int a,b,*p1,*p2;
scanf(〃%d,%d〃,&a,&b);
p1=&a,p2=&b;
if(a>b) swap(p1,p2);
printf(〃%d,%d\n〃,*p1,*p2);}
A.5,2 B.5,5 C.2,5 D.2,2
答案是a,为什么不是c?

选A

注意一下,swap交换的是自身的变量x1,x2的地址,
并不是他们指向的地址中的数据
所以,不影响mian中的a,b值

swap函数交换的是地址,没有改变值
把swap最后一句改成 *x=*x1;*x1=*x2;*x2=*x; 就选c了