鱼C论坛

 找回密码
 立即注册
查看: 2647|回复: 8

[已解决]关于指针的指针的问题

[复制链接]
发表于 2018-8-16 10:16:04 | 显示全部楼层 |阅读模式

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

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

x
head 是头指针

因为要对该链表实现 头插法 建立链表

为什么 在写方法时的参数 是 指针的指针

void addBook(struct Book **library)
{
}


因为不是要修改head 指针的指向吗, 直接将新的结点的地址赋值给 head 指针就可以哇, 为什么要通过 指针的指针 来修改head 里存放的指针呢。
最佳答案
2018-8-17 23:25:30
仅有的倔强 发表于 2018-8-17 21:42
不好意思 现在才回复
这几天一直在看数据结构

头指针不是地址,指针所存储的资料才是地址~~
指向 head 的指针是没有变的,改变的是 head->next 指针
head 不可能改变,领队不变,新元素插到领队的后面 >> 头插法
复习一下,消化一下。还有不清楚的地方,欢迎提问~
QQ浏览器截图20180816101020.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 10:20:41 | 显示全部楼层
在主函数中可以很方便地这样做,但是在别的函数中就不方便了。(无法修改,head是指针)
假如真的这样做,移植性会很差!
而且,在函数中可以改变拷贝实参吗?很明显是不可以的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-16 11:06:20 | 显示全部楼层
建议往大体看。假设 int *p = &a; 如果 p 改变了,是不是直接作用到 a 上面?你只是想添加新的书册,改变的是它们存储的位置而已,不是要改变它们的值。因此,设一个指针来改变它们的指针~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-16 11:34:01 | 显示全部楼层
无符号整形 发表于 2018-8-16 10:20
在主函数中可以很方便地这样做,但是在别的函数中就不方便了。(无法修改,head是指针)
假如真的这样做, ...

还是懵懵的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-16 11:46:56 From FishC Mobile | 显示全部楼层
仅有的倔强 发表于 2018-8-16 11:34
还是懵懵的

除非head是全局变量 否则修改不了啊。(尝试修改拷贝的形参)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 16:34:22 | 显示全部楼层

head 是没有改变的,改变的只有 head 的指针~ 看3楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 21:42:11 | 显示全部楼层
claws0n 发表于 2018-8-17 16:34
head 是没有改变的,改变的只有 head 的指针~ 看3楼

不好意思 现在才回复
这几天一直在看数据结构

head 不是头指针吗  就是 地址呀。
既然它将head 头指针 的指针的指向改变  那就赋予给 head 指针一个新的结点的 地址, 不就改变了指针的 指向了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 23:25:30 | 显示全部楼层    本楼为最佳答案   
仅有的倔强 发表于 2018-8-17 21:42
不好意思 现在才回复
这几天一直在看数据结构

头指针不是地址,指针所存储的资料才是地址~~
指向 head 的指针是没有变的,改变的是 head->next 指针
head 不可能改变,领队不变,新元素插到领队的后面 >> 头插法
复习一下,消化一下。还有不清楚的地方,欢迎提问~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2018-8-18 07:52:53 | 显示全部楼层
claws0n 发表于 2018-8-17 23:25
头指针不是地址,指针所存储的资料才是地址~~
指向 head 的指针是没有变的,改变的是 head->next 指针
...

不好意思  不小心点了反对的  撤不回了  

嗯嗯嗯 貌似还是懵懵懂懂的  就暂且理解 要改变 head 里面存放的 地址,就是改变 头指针的 指向?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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