问答题 简单应用题 请编写函数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 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<
【正确答案】(1) void swap(int *px,int *py) { int temp; temp=*px; *px=*py; *py=temp; } (2) void swap(int &px,int &py) { int temp; temp=px; px=py; py=temp; }
【答案解析】本题主要考查点是函数的参数传递,指针与引用的区别。指针存放的是它指向的数据的地址,而引用就是给变量起一个别名,两者都是传址调用。调用指针,实参需要使用取地址&,形参需要使用取内容*,而引用调用与一般调用只在形参上不同,使用引用符号&,其他的完全相同。