形参实参,指针引用

来源:百度知道 编辑:UC知道 时间:2024/06/02 15:43:02
LNode是结构体链表

定义时
void InitList(LNode *&HL)
调用时
InitList(HL)//这是对的HL 是指针

定义时
void InitList(LNode &HL)
调用时
InitList(HL)??怎么用

定义时
void InitList(LNode *HL)
调用时
InitList(HL)??怎么用?

如果HL是指针则:

定义时
void InitList(LNode &HL)
应该这么用
InitList(*HL);
注意上面的*不是表示指针,而是表示取HL所指向的内容。

定义时
void InitList(LNode *HL)
则应该这么用
InitList(HL);

但这只是单纯的从语法来回答你的问题的,对于你这个函数,我想函数的意图是初始化一个链表,并且头结点HL初始为NULL。
那么你这里的参数HL就必须是个指针的引用或指针的指针了。
否则
void InitList(LNode &HL)
的形式调用InitList(*HL)时会报错(访问无效地址)
void InitList(LNode *HL)
的形式调用InitList(HL)时HL还是会为NULL(值传递,头结点没有返回出来),而产生内存泄漏。

1、
定义时
void InitList(LNode &HL)
调用时
InitList(HL)??怎么用
==============
LNode HL;
InitList(HL);

2、
定义时
void InitList(LNode *HL)
调用时
InitList(HL)??怎么用?
==============
LNode HL;
InitList(&HL);