c语言 函数形参中&的使用

王道书上在定义函数的时候,在形参中的结构体指针变量前加了&,想问两个问题,自己的理解对不对。

链表节点定义为:

typedef struct LNode{
int data;
struct LNode 星号next;
}LNode,星号LinkList;

//星号不加载(=_=)

比如定义函数:

void Del_first(LinkList &L){
L->next = L->next->next;

①想问一下函数形参中的&作用是否是“可以修改实参中结构体指针变量L的值”?
③有时在函数体内,并没有修改变量L的值,仅仅是修改链表中其他节点的值,因为L是地址,所以不加&也是可行的,那是否在如上函数Del_first的形参中加入&只是习惯性的写法,代表要修改某变量的值?

1、引用类型是可以修改L自身地址的
2、Del函数有可能删除链表头,所以需要使用引用类型。如果函数不可能改变链表头,建议不要加引用,因为有可能导致误操作改变链表头