鱼C论坛

 找回密码
 立即注册
查看: 430|回复: 2

[已解决]单链表的操作

[复制链接]
发表于 2023-9-22 13:38:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这里LinkList q是指针类型,但是图片中一开始并没有将其赋值为NULL,这样会造成什么问题吗?为什么编译器跑的时候不会报错?
最佳答案
2023-9-22 16:11:00
本帖最后由 jackz007 于 2023-9-22 16:21 编辑

       创建链表节点的时候把指向下个节点的指针初始化为 NULL(0 值),意思就是新节点默认作为链表的尾结点,下一个节点尚不存在。这样,在循环遍历链表节点的时候,就可以通过检查节点的下个节点指针的值是否为 NULL(0 值)来判断是否已经完成了对链表全部节点的遍历。
       如果不对新节点的下个节点指针赋 NULL 值,那么,在循环遍历链表节点的时候,又根据什么来判断是否已经到达链表的尾结点了呢?所以,赋 NULL 值完全是用户自己的约定,与程序语言逻辑及编译器本身并不存在任何的关系。
屏幕截图 2023-09-22 133558.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-22 13:38:25 | 显示全部楼层
不将指针类型初始化为NULL可能会导致指针指向一个未知的内存地址,这样会导致程序运行时出现不可预测的错误,例如访问非法内存地址,导致程序崩溃。但是编译器并不会检查未初始化的指针,因为这是程序员的责任。因此,程序员需要在使用指针之前将其初始化为NULL,以避免潜在的错误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-9-22 16:11:00 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2023-9-22 16:21 编辑

       创建链表节点的时候把指向下个节点的指针初始化为 NULL(0 值),意思就是新节点默认作为链表的尾结点,下一个节点尚不存在。这样,在循环遍历链表节点的时候,就可以通过检查节点的下个节点指针的值是否为 NULL(0 值)来判断是否已经完成了对链表全部节点的遍历。
       如果不对新节点的下个节点指针赋 NULL 值,那么,在循环遍历链表节点的时候,又根据什么来判断是否已经到达链表的尾结点了呢?所以,赋 NULL 值完全是用户自己的约定,与程序语言逻辑及编译器本身并不存在任何的关系。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 04:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表