C语言中建立动态链表要用双重指针吗?那个双重指针有什么作用?

各位大侠们,麻烦解释的具体一点,我就这里搞不懂啦!

举个例吧,
假如一个结构:LinkNode
初始化:Initial(LinkNode **p);//这里就是双指针

那么在调用就这样,
LinkNode *p;
Initial(&p);

原理就是,如果你要通过函数来改变某个参数的值,那么就要传该参数的地址进去。
这里p是一个指针,所以要传指针的地址进去,也就是一个指向指针的指针;
初始化函数Initial(LinkNode *(*p));(*p)是指针,*(*p)就是传指针的地址进去了,意思就这样,不知道你听不听得懂。

不管动态还是静态,只要是要通过函数来改变指针类型数据的值,就要用双重指针。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-28
楼上讲得不错
再帮补充一下细节:

这样调用
LinkNode *p = NULL;
Initial(&p);

经过 Initial(&p) 的作用后,p就不再是 NULL 了,而是一个真正可用的链表指针

关于c语言链表 创建动态单向链表时为什么需要结构体指针p1和p2 一个...
首先,头指针不能丢,需要保存的,而p1是从头指针得到首节点后,查看当前指向节点的next是否为空判断是否尾节点,如果不是尾节点,或者说当前节点的next不为NULL则p1将被赋值成这个next以便找到链表下一个节点,而p1一开始存储的头指针就会被冲掉,所以在进行操作后p1就不能被当成链首指针来用了。其次...

带你一起看看:双重指针在C\/C++中的全景解析:内存管理与数据结构的桥梁...
双重指针在C\/C++中的应用广泛,特别是在需要修改指针本身而非其所指向内容的场景。本文旨在全面解析双重指针在内存管理和数据结构操作中的作用,并提供具体实例代码。首先,我们探讨了双重指针的使用背景。在需要动态分配内存、操作链表、树等数据结构或传递高级函数参数时,双重指针技术显得尤为重要。理解这一...

C语言中:链表中的指针与指针域的区别
指针是C语言中的一个数据类型。在链表的节点中,可能包含多个指针。2 指针域是指的链表中用来指向相关节点的指针,一般是下一个,对于双向链表,也包括指向上一个的指针。3 对于链表节点,可以分为数据域和指针域两部分。数据域中可能包含有指针类型。指针域中必然是指针类型。

C语言 链表 指针问题
1、删除指针,并不会释放他指向的内存地址。2、如果你指向的地址还需要用,为什么要删除其指针。同一个地址可以有多个指针。你可以在结构里定义2个链表指针,分别是正向和反向,这样你输入的的时候,就直接得到正反两个链表了。我写了案例,你参考吧。include <stdio.h>#include <malloc.h>#define si...

C语言 void ds_init(node **pNode)形参为两个星号是什么意思呀,
两个“*”号的指针变量,表示指针的指针,问题中的pNode指向的对象还是一个指针。下图是一个示例:

求问c语言单向链表和双向链表与循环链表的区别
打个比方。把链表节点看作是一个人,把链表指针看作是人的手(左手是前向指针,右手是后向指针)。非循环的单向链表是这样的:若干个人排成一排,每个人都抬起右手指向他右边的人,最右边的人的右手指向了空气(NULL)。如果要想找到这一排中任意一个人,必须从排头(链表头)开始沿手指的方向挨个...

数据结构 单链表的初始化为什么要定义一个双重指针啊,定义成简单指针不...
楼主查阅的那些资料是对的。链表名是一个地址常量,你可以把它看成是一个常量指针,即不能改变它的指向的指针,所以你只能改变链表中除头结点外的指针,而不能改动整个链表。LinkList *head定义二级指针增强了函数的移植能力。

麻烦讲解一下C语言中的链表
双向链表和单链表类似,就是多了一个指向区,指向当前节点的上一个节点,好处是,因为单链表只能顺序向下读取,而不能你想读取,双项链就可以任意方向读取数据了。一般链表在应用时,会额外建立一个链表头。在链表头里会有一些方便对链表操作的东西。比如你说的free指针,链表的第一节点地址,链表的尾...

c语言中,动态链表可不可以用二进制格式保存到文件中?
可以使用二进制格式存储。需要注意的是,链表的指针域,可以不存入二进制文件,或者说,存进去也没有用处。指针域的值,是指向其它单元的地址值,而地址值是动态分配的,从文件中读出时,该段内存很可能已经失效,所以再直接使用存储值就会出问题。正确的做法是:1 将链表按节点存放到二进制文件中,是否...

在c语言中如果这样声明指针,char **p=NULL; 使用了两个取消引用运算符...
这是双重指针,可以这样写char *p[]=NULL,意思是定义了一个指针数组,数组元素都是指针。

相似回答