问题 问答题

请编写函数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;

}

解析:

本题主要考查点是函数的参数传递,指针与引用的区别。指针存放的是它指向的数据的地址,而引用就是给变 量起一个别名,两者都是传址调用。调用指针,实参需要使用取地址&,形参需要使用取内容,而引用调用与一般调用只在形参上不同,使用引用符号&,其他的完全相同。

选择题
判断题