在由清华大学出版社出版的李春葆主编的第4版《数据结构教程》中出现了一个新的类型——引用型指针(*&),在实现线性表的基本运算的程序中,有的是用指针类型作形参(如:int ListLength(LinkList * L);),有的是用引用型指针类型作形参(如:void InitList(LinkList * &L);)。
那么,两者有什么区别吗?下面就用一个很简单的例子来说明下。
#include <iostream>
using namespace std;
void f(char * p)
{
char *e = "China";
p = e;
cout << p << " ";
}
void g(char * &p)
{
char *e = "China";
p = e;
cout << p << " ";
}
int main()
{
char *p = "English";
cout << "直接指针:";
f(p);
cout << p << endl;
cout << "引用指针:";
g(p);
cout << p << endl;
return 0;
}
结果如下:
由结果我们可以看出:
(1)指针类型作形参————该形参变量在函数中改变了对原来的实参变量没有任何影响
(2)引用型指针类型作形参————该形参变量在函数中改变了,原实参变量也会跟着改变