#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
这里LNode是struct LNode的别名,即可以直接用LNode定义该类型的结构体变量,如 LNode a,a是一个结构体变量。
LinkList是struct LNode *的别名,即可以直接用LinkList定义指向结构体变量的指针,如LinkList L,
这里LinkList L与LNode *L是等价的,都是定义一个结构体指针。
当需要对L本身的值进行改变时(就是L指向一个新的地址),就需要传的是LinkList &L,如果传的是L那么不能改变L只能改变L所指向的内容 。如果对列表的头指针(L)本身进行改变的话,方法的参数的是&L,不然此方法无效。如果只是改变的是L所指向的内容的话,可以是&L也可以是L。
如:void Fun(int &a)
&这里并不是取地址的意思,而是形参a成为了实参变量的别名,这种传递,将导致形参a成为实参的别名,函数内部对形参a的操作也就变成了对于实参的操作,这种操作节省了复制的麻烦过程。