C++函数传递指向指针的指针的应用

传递指向指针的引用
假设我们想编写一个与前面交换两个整数的 swap 类似的函数,实现两个指
针的交换。已知需用 * 定义指针,用 & 定义引用。现在,问题在于如何将这两
个操作符结合起来以获得指向指针的引用。这里给出一个例子:
// swap values of two pointers to int
void ptrswap(int *&v1, int *&v2)
{
int *tmp = v2;
v2 = v1;
v1 = tmp;
}
形参
int *&v1
的定义应从右至左理解:v1 是一个引用,与指向 int 型对象的指针相关联。也
就是说,v1 只是传递进 ptrswap 函数的任意指针的别名。

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 void change_ptr(int *&p1,int *&p2)
 6 {
 7     int *temp;
 8     temp=p1;
 9     p1=p2;
10     p2=temp;
11 }
12 int main()
13 {
14     int a1=10;
15     int a2=12;
16     int *p1=&a1,*p2=&a2;
17     cout<<"p1="<<p1<<endl;
18     cout<<"p2="<<p2<<endl;
19     change_ptr(p1,p2);
20     cout<<"p1="<<p1<<endl;
21     cout<<"p2="<<p2<<endl;
22 
23     system("pause");
24     return 1;
25 }
原文地址:https://www.cnblogs.com/yanliang12138/p/4217080.html