最近自学完了严奶奶和李老师的数据结构,两本书在代码方面也是有很大差异的,严奶奶用了很多的伪代码,李老师就讲的比较详细。当时学的时候发现他们所用的形参格式不同,查找了网上很多资料才明白区别,肯定有很多人像我当初一样搞不懂,废话不多说上解释。
插入一个细节:
typedef struct
{
int a;
char b;
float c;
}List1, *List2;
这里List1* 与List2是等价的,可以理解为这个结构体的名字叫List1,而这个结构体的指针类型叫List2。因此在定义List1 *p和List2 p本质上是一样的,都是一个指向这个结构体类型的指针。
解释完这个就好办了,下面就来解释*&和&的区别。
当函数为method(Link1 *&p),既可以修改p所指向的地址又可以修改p所指向地址的值。当函数为method(Link &p),只能修改p所指向地址的值。
形参写成Link *p和Link &p的意思可以理解为是一样的。
有不对的和讲述不够专业的地方欢迎大家来指正!嘿嘿