在由清华大学出版社出版的李春葆主编的第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)引用型指针类型作形参————该形参变量在函数中改变了,原实参变量也会跟着改变