请编写函数void swap(int *px,int *py)与void swap(int &px,int &PY),实现主程序中变量a和b值的交换。
输出结果如下:
3 2
2 3
注意:部分源程序已存在文件test5_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数相应的花括号中填写若干语句。
文件test5_2.cpp的内容如下:
#include<iostream.h>
void swap(int *px,int *py)
/***1***/
void swap(int &px,int &PY)
/***2**/
void main()
int a=2,b=3;
swap(a,b);
cout<<a<<" "<<b<<endl;
swap(&a,&b);
cout<<a<<" "<<b<<endl;
参考答案:
(A)
void swap(int *px,int *py)
{
int temp;
temp=*px;
*px=*py;
*py=temp;
}
(B)
void swap(int &px,int &PY)
{
int temp;
temp=px;
px=Py;
py=temp;
}
解析:
本题主要考查点是函数的参数传递,指针与引用的区别。指针存放的是它指向的数据的地址,而引用就是给变 量起一个别名,两者都是传址调用。调用指针,实参需要使用取地址&,形参需要使用取内容,而引用调用与一般调用只在形参上不同,使用引用符号&,其他的完全相同。