网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月27日
漏签
0
天
c语言吧
关注:
791,131
贴子:
4,301,264
看贴
图片
吧主推荐
视频
游戏
19
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
关于链表有个疑惑,来个大佬解答一下
只看楼主
收藏
回复
为什么学C
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最近在学链表,目前就学了有头的单链表,简单的增删改查!
有时候看别人的代码,或者是B站视频的时候,我看别人用二级指针传参,而我都是用的一级指针传参。
所以我比较疑惑,链表什么情况下要用二级指针传参
希望来个大佬解答一下
变奏的梦想🏃
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
指针是修改指向地址的值。
传一级指针的情况大部分是为了修改节点之间的指向,或者是节点内部存的val,这些都是节点内部的值。
而传二级指针的情况一般是为了更新链表的头部指针head。如果不需要通过封装的函数去修改head,显然,一级指针完全够用了head=node。但是,如果希望通过函数内部来修改head,此时就需要二级指针了。这里面又涉及到形参和实参的问题了
草酱
彩虹面包
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
传什么参取决于怎么设计这个链表,一千个人能写出一千种链表,不是只有书上的一种
贴吧用户_Q13QERb
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你只要想是否要改变指针指向的内容,就像如果只要打印链表内容,那就一级指针因为不需要改变里面内容
如果像增删查改这种要改变的就要二级指针,因为函数返回的是拷贝,只有找到地址去他家里改才能真正改掉
当你学c++里面的引用就明白了,就是这个&,c里面是取地址,有点不记得了不知道是不是叫引用
降谷千纮
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我之前个人思考得出的结论也是2楼那个,如果一个链表没有头节点,那为了修改第一个节点,必须传二级指针,因为要在函数内修改节点必须用指针,一级指针传参就不能修改第一个节点。有了头结点,就可以用上一个节点的next指针来修改。
GTA小鸡
吧主
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你传一个节点指针作为参数,这个指针的指向会在函数运行后更新,那参数就需要是二级指针
比如不带头结点的链表的创建,删除,BST的插入删除之类
这些操作的指针值除二级指针外也可以通过返回值传出
不一样的惩
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
指针这东西,就是一块内存,里边儿储存着某块内存的地址,类型是无所谓的,只要你想的话,传long类型都可以
四次元勇士
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
指针参数的字符符号地址下的有一个对象属于函数自有,只有对象也指向一个地址才能通过传参的方式改变指针类的地址数据。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示