题目
填空,使得程序输出结果是: 5,3
#include <iostream>
using namespace std;
void swap(// 在此处补充你的代码)
{
int * tmp = a;
a = b;
b = tmp;
}
int main()
{
int a = 3,b = 5;
int * pa = & a;
int * pb = & b;
swap(pa,pb);
cout << *pa << "," << * pb;
return 0;
}
答案
int* &a, int* &b
解析
要理解这个内容,应该先看这段使用指针实现的代码。
void swap(int* a,int * b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
两者代码比较,很明显能看到区别。如果只使用指针,代码就包含大量的*,这样可读性就显得很差。
这里其实是引用指针类型的变量,也就是将带*的指针换了个不带的其他名字,这样函数就会显得更易读。