求助一道c语言题目?

为什么最后把p=begin,不是多此一举吗?还有开头structnode*next是什么意思... 为什么最后把p=begin,不是多此一举吗?还有开头struct node *next是什么意思 展开
 我来答
greatReanswer
高粉答主

2019-11-11 · 醉心答题,欢迎关注
知道大有可为答主
回答量:1.9万
采纳率:89%
帮助的人:682万
展开全部
如楼上所说,p的目的主要是保留头指针,方便随时返回,即通过赋值地址的情况,返回到初始值。
第二问其实是定义结构体指针,即指向这个节点的指针,由于在C中,必须要声明和名称一起定义结构体变量,因此才如此写,而C++中用结构体名定义即可。
最后,由于结构体是自己定义的,如果需要使用,则需要定义变量和数组,而不是像数组一样,直接定义,直接使用,还是得多多理解。
追问
第一个 如果不把p指向begin就无法再指向头指针了吗 还是无法理解
此时begin和p都属于头指针吧 指向的地址都一样的
begin和
一缕青尘
2019-11-11 · TA获得超过428个赞
知道小有建树答主
回答量:263
采纳率:76%
帮助的人:61万
展开全部
不是多此一举,如果单从指针的角度来说(不讨论通过s1访问),如果没有p,你用begin指针直接访问链表的各个元素之后,就找不到头指针了(即再也不能访问第一个元素)。第二个问题,struct node看成一起,你就能理解了,跟unsigned int一个道理,标准规定结构体就是这么规定的。
更多追问追答
追问
你好 请问第二个为什么要在结构体中定义 而不是在结构体外呢
就像NODETYPE一样的去定义
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式