L->next与L

单链表中L->next=s ; 和L=s;的区别:

根据链表的结构来分析~
struct Link{
     int  data;
     struct *next;
};

然后我们定义一个 链表    Link L=NULL; 这句话的意思就说,我定义了一个指针 L,L指向内存中以Link 结构形式开辟的一块空间的地址,当你将NULL赋值给L,表示L不指向空间的任何位置。即,我们定义了一个空链表。

L->next 是典型的用指针访问数据的形式,L->next=s表示将s的地址记录进L的指针域中,而L=s则是将s的地址给L,行为是舍弃头节点,将s作为新的头节点。

如果你移动了头指针,那么头指针新位置之前的所有节点都将丢失,一般移动头节点都发生在销毁链表的时候,否则不会轻易的移动头指针,不过如果你是自定义的指针让他指向头节点,那是没关系的。。。。
L 其实只是指针,指向内存中的一个地址,这个地址被一个LINK  类型的数据占据,我们在  L=S 时,是修改了 L的指向,将L指向S所指向的地址,比如说,L 原来指向 北京  S原来指向上海,,,,,你将L=s,,,,,就是让L指向了上海   并没有影响北京,  但是由于北京没有指针指向他   所以我们就找不到她了   那么他就相当于被抛弃了.

L=s  是将S的首地址给了  L~  L->next=s  才是将s给了next.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值