变量、指针、引用的区别

本文详细解析了单链表中LinklistL、Linklist&L和Linklist*L的区别,介绍了如何通过不同类型参数来实现对链表的不同操作,如仅修改链表内容而不改变指针本身的情况,以及需要修改指针本身的场景。

Linklist L 、 Linklist &L 和 Linklist *L的区别

单链表的定义

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;  // LNode一般指节点时用,Linklist 一般指链表是用

当函数参数为Linklist L时,意味着只改变或操作指针所指链表的内容,而不需要改变L这个指针

LNode *GetElem(Linklist L,int i)

当参数为Linklist &L or Linklist *L,意味着需要改变或操作L这个指针本身,可以类比修改形参的内容时,需要加引用符或者变成指针类型才能在退出函数调用的时候让内容也修改

Status InitList(Linklist &L)
{
    L=(Linklist)malloc(sizeof(struct LNode));
    ......
}

(*L)=(Linklist)malloc(sizeof(struct LNode)); //L前面要加*,表示L所指向的那个指针
p = (*L)->next
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越狱兔崽子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值