关于链表指针的问题

看一下这段代码、我一直郁闷第一道红线那里定义关键字为什么前面要加*号,*号有什么用?第二道红线那里frist为什么还要加*号呢?后面的x为什么又不加了?first和x有什... 看一下这段代码、

我一直郁闷第一道红线那里定义关键字为什么前面要加*号,*号有什么用?
第二道红线那里frist为什么还要加*号呢?后面的x为什么又不加了?first和x有什么区别?
展开
 我来答
yanglei5658
2015-05-09 · TA获得超过4756个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:525万
展开全部
首先,要分清楚这里面有两种类型,一种是listnode,它表示链表的节点,另一种是listnode *,它表示指向链表节点的指针,同时又定义listpointer表示listnode *这种类型。
至于insert函数中,为什么first的类型是listpointer *,也就是listnode **,指向链表节点的指针的指针,这是因为,在插入的过程中,我们需要对表头first进行修改,并且要将修改之后的值传递出来,如果只是listnode类型的话,在里面修改first的指向,(比如空链表第一次插入一个值),修改之后的情况传递不出函数,因此需要指针的指针,当然,使用listnode &也是可以的。
第二个参数x的类型为什么是listpointer,这个其实并不是什么特定的要求,不同的书上可能叙述也不同。这里的意思是,我们先在外面创建一个插入的节点newNode,下面我们用x指向这个新节点,那么我在插入节点到链表的时候,需要把新结点传递给insert函数,这里就用指向这个节点的指针传递。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式