关于指针的指针的问题
head 是头指针因为要对该链表实现 头插法 建立链表
为什么 在写方法时的参数 是 指针的指针
void addBook(struct Book **library)
{
}
因为不是要修改head 指针的指向吗, 直接将新的结点的地址赋值给 head 指针就可以哇, 为什么要通过 指针的指针 来修改head 里存放的指针呢。 在主函数中可以很方便地这样做,但是在别的函数中就不方便了。(无法修改,head是指针)
假如真的这样做,移植性会很差!
而且,在函数中可以改变拷贝实参吗?很明显是不可以的。 建议往大体看。假设 int *p = &a; 如果 p 改变了,是不是直接作用到 a 上面?你只是想添加新的书册,改变的是它们存储的位置而已,不是要改变它们的值。因此,设一个指针来改变它们的指针~ 无符号整形 发表于 2018-8-16 10:20
在主函数中可以很方便地这样做,但是在别的函数中就不方便了。(无法修改,head是指针)
假如真的这样做, ...
还是懵懵的
仅有的倔强 发表于 2018-8-16 11:34
还是懵懵的
除非head是全局变量 否则修改不了啊。(尝试修改拷贝的形参) 仅有的倔强 发表于 2018-8-16 11:34
还是懵懵的
head 是没有改变的,改变的只有 head 的指针~ 看3楼 claws0n 发表于 2018-8-17 16:34
head 是没有改变的,改变的只有 head 的指针~ 看3楼
不好意思 现在才回复
这几天一直在看数据结构
head 不是头指针吗就是 地址呀。
既然它将head 头指针 的指针的指向改变那就赋予给 head 指针一个新的结点的 地址, 不就改变了指针的 指向了吗 仅有的倔强 发表于 2018-8-17 21:42
不好意思 现在才回复
这几天一直在看数据结构
头指针不是地址,指针所存储的资料才是地址~~
指向 head 的指针是没有变的,改变的是 head->next 指针
head 不可能改变,领队不变,新元素插到领队的后面 >> 头插法
复习一下,消化一下。还有不清楚的地方,欢迎提问~ claws0n 发表于 2018-8-17 23:25
头指针不是地址,指针所存储的资料才是地址~~
指向 head 的指针是没有变的,改变的是 head->next 指针
...
不好意思不小心点了反对的撤不回了
嗯嗯嗯 貌似还是懵懵懂懂的就暂且理解 要改变 head 里面存放的 地址,就是改变 头指针的 指向?
页:
[1]