l-z-h 发表于 2023-9-22 13:38:21

单链表的操作

这里LinkList q是指针类型,但是图片中一开始并没有将其赋值为NULL,这样会造成什么问题吗?为什么编译器跑的时候不会报错?

isdkz 发表于 2023-9-22 13:38:25

不将指针类型初始化为NULL可能会导致指针指向一个未知的内存地址,这样会导致程序运行时出现不可预测的错误,例如访问非法内存地址,导致程序崩溃。但是编译器并不会检查未初始化的指针,因为这是程序员的责任。因此,程序员需要在使用指针之前将其初始化为NULL,以避免潜在的错误。

jackz007 发表于 2023-9-22 16:11:00

本帖最后由 jackz007 于 2023-9-22 16:21 编辑

       创建链表节点的时候把指向下个节点的指针初始化为 NULL(0 值),意思就是新节点默认作为链表的尾结点,下一个节点尚不存在。这样,在循环遍历链表节点的时候,就可以通过检查节点的下个节点指针的值是否为 NULL(0 值)来判断是否已经完成了对链表全部节点的遍历。
       如果不对新节点的下个节点指针赋 NULL 值,那么,在循环遍历链表节点的时候,又根据什么来判断是否已经到达链表的尾结点了呢?所以,赋 NULL 值完全是用户自己的约定,与程序语言逻辑及编译器本身并不存在任何的关系。
页: [1]
查看完整版本: 单链表的操作