问题
填空题
写出下列程序的执行结果。 swap(p1,p2) int*p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; } main() {int a,b,*p1,*p2; scanf("%d%d",&a,&b); p1=&a;p2=&b; if(a<b)swap(p1,p2); printf("\na=%d,b=%d\n",a,b); } 若a=7,b=8,则程序的运行结果为______。
答案
参考答案:a=8,b=7
解析:本题中,swap(p1,p2)函数的作用是交换两个形参的值,因为函数的形参是地址,形参和实参进行的是地址传递,所以通过swap函数可以实现数据交换的目的。在主函数中,if语句的控制条件a<b成立(a=7,b=8),所以调用swap函数交换a、b的值。