社区
C++ 语言
帖子详情
为什么链表初始化必须用二级指针呢
南城啊呀呀呀
2019-05-05 04:51:05
这几天在自学数据结构,看到链表初始化必须用二级指针,但是看代码感觉用一级指针就可以
请大佬帮忙解答一下
...全文
690
2
打赏
收藏
为什么链表初始化必须用二级指针呢
这几天在自学数据结构,看到链表初始化必须用二级指针,但是看代码感觉用一级指针就可以请大佬帮忙解答一下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CaptainXue
2019-05-10
打赏
举报
回复
通俗一点的理解是一级指针作为参数时,我们只是改变该指针(地址)里面的值,而二级指针是把它的地址传给参数,我们可以更改它的地址👌
Italink
2019-05-05
打赏
举报
回复
2
记住一句话,无论函数形参如何变化,实参都不变,如果你要说传指针进去就能改变?我就得打你的脸了,指针的内容是什么?地址是吧,指针所指的地址变了吗?没变啊,所以实参还是没变,但你可以访问这个地址,然后在这个地址上做一些操作。所以回到你那个问题,为什么要用二级指针,是因为要改变一级指针的地址(malloc分配空间的地址),所以才需要用二级指针。
链表
初始化
为什么传
二级指针
,建表传一级指针
本文深入解析
链表
的基本操作,包括创建、
初始化
及销毁过程。重点讲解了一级指针与
二级指针
在
链表
操作中的应用,以及如何通过指针修改
链表
结构。通过具体实例,阐述了在不同情况下选择使用一级指针或
二级指针
的原因。
为什么
初始化
链表
要
二级指针
,头插法只要一级指针?
本文深入解析C语言中
链表
初始化
需
二级指针
而头插法仅需一级指针的根本原因:C语言参数按值传递,
初始化
需修改指针变量本身的地址(即改变其存储的内存地址),
必须
通过
二级指针
间接访问并更新原始指针;头插法则只需修改指针所指向节点的内容(如next域),一级指针已足够。核心在于区分‘修改指针本身’与‘修改指针指向的内容’。
为什么C
初始化
链表
需要
二级指针
本文讲解了一级指针和
二级指针
在函数中如何被使用。对于修改一级指针指向的情况,需要通过
二级指针
来实现;而对于只读操作,则直接使用一级指针即可。
C 语言值传递陷阱:为什么
链表
初始化
必须
用 LinkList *L(
二级指针
)?
本文深入剖析C语言中单
链表
初始化
函数
必须
使用LinkList *L(
二级指针
)的根本原因:因C采用值传递机制,若仅传一级指针LinkList L,则函数内对头指针的修改仅作用于副本,无法改变外部实参,导致
链表
未真正
初始化
并引发内存泄漏;而传
二级指针
可获取头指针变量的地址,并通过解引用*操作直接更新其指向,确保
初始化
生效。
单
链表
带头结点&不带头结点
本文详细介绍了单
链表
中使用头结点的方法及其优势,对比了带与不带头结点的
初始化
、插入等操作的区别,并解释了为什么带头结点的
链表
初始化
通常需要使用
二级指针
。
C++ 语言
65,212
社区成员
250,516
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章