链表为什么用二级指针

作者&投稿:娄饰 (若有异议请与网页底部的电邮联系)

请进,链表初始化为什么要二级指针
使用二级指针,很方便就修改了传入的结点一级指针的值。 如果用一级指针,则只能通过指针修改指针所指内容,却无法修改指针的值,也就是指针所指的内存块。所以创建链表和销毁链表需要二级指针或者一级指针引用。

为什么在链表的删除或者插入的操作中要用二级指针?
都是ListNode类型的指针,只不过最后一句LinkList类型是用typedef定义的,所以没有“*”号。因为删除或者插入操作有时会修改实参的指针(比如头结点为空的时候插入节点,这是就修改了头结点),那么就必须将相应的形参说明为指针的指针,函数电泳时将实参指针的地址传递给相应的形参。例如:刚刚初始化的时候...

为什么链表操作时参数要用二级指针
定义后 head实际上是一个linknode类型的指针,这是我们单单看最后两句的定义而忽略其字面意思而言的话,p和head实际上是同一种类型的变量,都是listnode类型的指针,只不过最后一句linklist类型是用typedef定义的,所以没有“*”号。因为删除或者插入操作有时会修改实参的指针(比如头结点为空的时候插入节...

c语言销--毁链表为什么一定要用二级指针,新手求教
如果这个函数的参数只是一个一级的指针,那么在函数中就没办法把链表的头指针给置为NULL了,因为C里面函数调用时,参数是传值的,传进来的一级指针和原来链表的头指针虽然具有相同的值,但是却保存在两个不同的内存单元,这时即使修改了函数里的头指针的值,外面链表的头指针却是没有收到任何影响。

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

C语言 struct与指针
二级指针,可以理解成结构体子变量指针,通常用来在链表中指向另一个结构体的地址(脱离链表的二级指针实际上也没什么用,所以可以是这样说,它就是指向下个结构地址(成为结点)的指针)。使用二级指针可以方便的存储和访问结构中的数据。在一般情况下,它和普通数组的效果一样。在内存使用方面,内存使用...

急请教数据结构
这涉及到二级指针的问题,当指针作为函数的参数时,在函数内部可以修改指针指向的内容。而不是指针变量本身。因为指针变量也是一种特殊的变量只不过它存储的是变量的地址罢了,要修改他的指向,即它的内容必须将他的地址传给函数。也即使用二级指针。才能达到修改内容的目的。在线性表或栈的初始化中,涉及...

链表的二级指针操作问题。
用一级指针的函数添加结点,到时候ls->next还是空指针。但是用二级指针添加结点就会是ls->next有新值?我不是很明白。而起二级指针ls貌似就么有*ls->next吧。我举个实际例子。传入参数为S,以及指针为L1,二级指针为L2,如果是一级指针传入:其实是传递的是一级指针所指向的内存空间给L1 .假如说S...

C语言链表中释放内存函数的问题,请高手解答。
二级指针的作用就在于,在这个函数内,你可以修改这个函数的主调函数(比如main函数)中链表头结点的指针值。在这个例子中,显而易见的就是,链表释放了内存,head指针应该是NULL。如果上面这段话你能明白的话,那么我的建议是,使用你问题中“可行”的那段代码,并添加*list = NULL;在结尾。或者这样...

指针的用途
作用 :首先主要在数据结构之中当改变指针的时候就需要通过改变指针的指针的值来改变!在数据结构中用处很广.最普遍的比如说链表,通过调用函数改变了链表中的元素,那么整个链表就发生了变化,这种情况下就会用到二级指针 q里面存的是p指针所在的地址,因为int *p是会给指针p分配一个地址,这个地址里面,...

敞素17880411936问: 为什么链表操作时参数要用二级指针 -
驿城区强压回答: 就是一级指针指向下个节点 比如 typedef struct node { int a; struct node* next; }node;

敞素17880411936问: 为什么在链表的删除或者插入的操作中要用二级指针? -
驿城区强压回答: 你好,其实这个问题我当时也迷糊了,后来想想其实也不难,呵呵,我们分析一下:如果用C语言描述单链表如下:typedef struct node{ DataType data;//节点的数据域 struct node *next;//节点的指针域 }ListNode; typedef ListNode *LinkList; ...

敞素17880411936问: 请进,链表初始化为什么要二级指针 -
驿城区强压回答: 简单来说,修改头指针则必须传递头指针的地址,否则传递头指针值即可(即头指针本身).这与普通变量类似,当需要修改普通变量的值,需传递其地址,否则传递普通变量的值即可(即这个变量的拷贝).使用二级指针,很方便就修改了传入的结点一级指针的值. 如果用一级指针,则只能通过指针修改指针所指内容,却无法修改指针的值,也就是指针所指的内存块.所以创建链表和销毁链表需要二级指针或者一级指针引用.

敞素17880411936问: c语言销 -- 毁链表为什么一定要用二级指针,新手求教 -
驿城区强压回答: 2种都是可以的.只是二级指针会修改到头节点.Destroy(head);// 使用此法,此时head的地址没有被设置成NULL // Destroy(&head);// 使用此法,此时head的地址被设置成NULL以下是测试代码.#include#include struct StuNode{ int a; struct ...

敞素17880411936问: 为什么C初始化链表需要二级指针 -
驿城区强压回答: 因为需要在函数体内修改一重指针类型的链表头指针,而C语言的函数参数是传值,所以只能传递一重指针的指针---二重指针到函数体内来修改这个指针了

敞素17880411936问: 链表初始化,关于二级指针 -
驿城区强压回答: linklist **head为参数,是为了取1级指针的地址.首先要知道指针也有一个它自身的地址,而不是只有一个它指向的地址.二级指针指表示 1级指针自身的地址. 也就是说二级指针名是一级指针的地址.下面是我自学时,自己做的一个例子.#...

敞素17880411936问: 指向指针的指针是什么,有什么用? -
驿城区强压回答: 用处相当地大.怎么样函数传递改变一个指针的值,必须通过指向指针的指针,也就是传说中的二级指针.在数据结构中用处很广.最普遍的比如说链表,通过调用函数改变了链表中的元素,那么整个链表就发生了变化,这种情况下就会用到二级指针,因为链表的起始是通过指向头结点的指针来执行的,所以必须要改变这个指针,怎么样使一个指针改变?在形参传递时,必须传递指针的地址,也就是指向指针的指针.太抽象了,慢慢体会

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

敞素17880411936问: 二级指针的用法? -
驿城区强压回答: 指针就是指针,你不要老想着什么二级还是三级,就见怪不怪了 比如说,一个链表栈:struct TStack { int data; struct TStack * next; }; 这个链表里面每个元素都是一个struct TStack *指针.那么怎样写函数,才能通过函数参数进行指针的管理呢...

敞素17880411936问: C语言链表中释放内存函数的问题,请高手解答. -
驿城区强压回答: 首先你要搞明白,List本身已经被定义为Node*类型,因此List*实际上是一个二级指针你的疑问中,如果改成*list = p->next,运行应该是可以通过的.但是不推荐这样做.为什么呢?这就要先理解FreeMem这个函数,为什么用List*做参数,而...


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网