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