单链表问题----指针指向方面有些不懂!!!

哈利^路亚 2017-07-28 10:24:01


这是我的理解:在循环中,先给结构体 *s 分配一个空间,给结构体赋值并使结构体指针元素(next)指向 结构体 L ,然后把 s 的内容赋值给了 L 。 下面又一次循环,再分配一片空间给了 *s 赋值并使结构体指针元素(next)指向 结构体 L(这时候的 L 的内容改变了 但是地址并没有改变),然后把 s 的内容赋值给了 L 。。。。。。。
但是如果结构体 L 的地址并没有变化,以后每一次的新结构体的next都会指向 L ;如果L的地址发生的变化,就是每一次 L = s; 这一条语句,那就可以说通了。。所以,是 L = s; 这一条语句的作用吗? 是怎么作用的? 如果不是的话,又是咋回事呢?
...全文
417 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yi19861209 2017-07-30
  • 打赏
  • 举报
回复
konsy_dong 2017-07-29
  • 打赏
  • 举报
回复 1
引用 2 楼 qq_39209116 的回复:
好像明白了,,是这样吗? s -> next 读取的指针L的内容,而L的内容是每一次循环中新开辟的结构体空间的地址。这样的话新的结构体总是指向“旧”的结构体,形成链表。而最新的那个节点就是首节点,L指针是头指针。
想当于就是每次都从链表的头部插入啊,L=s是为了下一次如果要插入时,能够将新的s的next指向L,如果没有插入,那为L就为头指针
赵4老师 2017-07-28
  • 打赏
  • 举报
回复
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633
自信男孩 2017-07-28
  • 打赏
  • 举报
回复
这是头插方法建立链表,比如输入的x是1, 2 ,3那么,链表中的头就是3,其次是2, 1;
哈利^路亚 2017-07-28
  • 打赏
  • 举报
回复
好像明白了,,是这样吗? s -> next 读取的指针L的内容,而L的内容是每一次循环中新开辟的结构体空间的地址。这样的话新的结构体总是指向“旧”的结构体,形成链表。而最新的那个节点就是首节点,L指针是头指针。
灌水号 2017-07-28
  • 打赏
  • 举报
回复
L是个指针, 通过L的指向可以访问到这个链表.跟L的地址有没有变化没有关系.L指针值变化就可以了.

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧