求助一道c语言题目?

划横线的这句话是什么意思... 划横线的这句话是什么意思 展开
 我来答
岔路程序缘

2019-11-11 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3366万
展开全部
这一行是定义一个slist类型的指针,指针的名字是next。
在链表中,这个指针指向下一个slist数据的地址,从而使数据形成一个“链”。
有什么疑问请留言。
更多追问追答
追问
我不太明白他为什么不在花括号在定义 这属于嵌套定义吗
追答
严格来说,这里的“定义”应该叫做“声明”(更确切一些称呼应该是“含有”)。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白狼圣狂
2019-11-11 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:70%
帮助的人:31.9万
展开全部
一个struct slist的指针,这个指针可以被动态分配内存,链表结构(一个指向下一个)
[数据]---->[数据]---->[数据]---->...---->[NULL]
这种结构好像排队一样,便于管理,属于高级结构
追问
我不明白的是 他为什么不在花括号之外定义
追答

你的意思是那一种?

  1. 为什么要用struct结构体,并且把变量定义在结构体里?

  2. 为什么要把struct slist*指针定义在结构体里,而不能定义在结构体外?

如果是第一种, 原因是便于管理,比如:

int age_1, age_2;

char* name_1, *name_2;

struct People

{

int age;

char* name;

}

哪个好管理?是第二种好管理,如果用第一种要声明好多变量,而第二种只需声明2个struct People,用成员运算符就好了,每个People有不同的属于自己的值

如果是第二种,如果你没学链表就没多大碍,当第一种问题对待,那么你要换个角度看,struct slist*是一只手,它可以牵着另一个struct slist结构体(存这另一个结构体的地址),这样你可以不断的动态分配内存再不断的让他们首尾相连,这然就是个队列

struct a

{

int num;

struct a* next;

};

//-------xx------

struct a* one = (struct a*)malloc(sizeof(struct a)); //动态分配内存

one->next = (struct a*)malloc(sizeof(struct a)); //直接为里面的struct a* next分配内存

one->next->next = (struct a*)malloc(sizeof(struct a)); //直接为里面的struct a* next里面的struct a* next分配内存

one->next->next->num = 87;

经过上面的操作后你有了一个嵌套的数据体

struct a* one{一个地址}-------指向----->struct a ???{int num;struct a* next{一个地址}-----指向------>....--->struct a???{int num{87};struct a* next{???/NULL}}}

你就有1个指针指向了一个数据列

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路过者天蝎96
2019-11-10 · TA获得超过3743个赞
知道大有可为答主
回答量:3573
采纳率:79%
帮助的人:2406万
展开全部
就是一个指向slist 这种结构体的指针
更多追问追答
追问
为啥不在指针外调用呢
为啥不在结构体外调用呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
XNF阿萨斯
2019-11-11 · TA获得超过115个赞
知道答主
回答量:115
采纳率:35%
帮助的人:14.8万
展开全部
结构体类型的指针,指向该结构体本身
追问
他代表的是下一个元素的地址吗
追答
不是,只是个具有指向结构体本身功能的指针而已,和其下一个元素毫无关联,除非你写进去了下个结构体包含的数据
举个在文件内部传递的例子
slist return_list;

static slist hoding_list;
某function里面
return.next->data = hoding_list.data; /*你想要指向的数据,没被赋值或初始化为0*/
return.nex->next =hoding_list.list; /**/
楼下有大佬讲挺细了,list就是方便取用,你可以把指针本身进行赋值化,然后你指的对象是唯一的,变成类似数组形式的结构体.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-11-10
展开全部
在结构体内调用该结构体创建一个指针类型的结构体(有点绕,说白了就是用指针调用自己)
追问
他的意义是什么呢
还有为啥不在指针外而是指针内呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式