请注释以下c语言程序,多谢

#include<stdio.h>structlist{chardata;structlist*next;};structlist*creat(){structlist*... #include <stdio.h>
struct list
{char data;
struct list *next;
};
struct list *creat()
{struct list *h,*p,*q;
char ch;
h=(struct list*)malloc(sizeof(struct list));
p=q=h;
ch=getchar();
while(ch!='?')
{p=(struct list *)malloc(sizeof(struct list));
p->data=ch;
q->next=p;
q=p;
ch=getchar();
}
p->next='\0';
return h;
展开
 我来答
瀚漠
2012-12-19 · 专注C语言发开,Linux系统相关
瀚漠
采纳数:309 获赞数:1286

向TA提问 私信TA
展开全部
#include <stdio.h>
struct list//构建链表结构体:数据和指针
{
char data;
struct list *next;
};
struct list *creat()
{
struct list *h,*p,*q; //定义结构体指针
char ch;
h=(struct list*)malloc(sizeof(struct list)); //为h指针申请空间
p=q=h; //初始化p和q指针
ch=getchar(); //接收输入的字符
while(ch!='?') //只有在接收到的字符为 '?' 时才停止接收
{
p=(struct list *)malloc(sizeof(struct list)); //为p指针申请空间
p->data=ch; //p指向的结构体的数据成员赋值为ch
q->next=p; //q指向的结构体的指针成员指向p,即把p链接到该链表尾部
q=p; //q赋值为p,保证q始终是该链表的最后一个节点,p是每次新增的链表节点
ch=getchar(); //继续接收字符
}
p->next='\0'; //清空p指向的结构体指针
return h; //返回h指针,这里h即为整个链表的头节点,有了头结点即可以获得整个链表的数据
}
追问
指针变量的指向变化,不影响前面的结构体变量吗?就是前面已经存在的那些存储单元。不会因为指针变量引用的单元变化而变化吗?初学,见笑了
是不是和指针指向数组元素的道理一样?
追答
一个链表节点其实是一个结构体,结构体中有一个数据成员和一个指针成员,数据成员保存数据,指针成员保存下一个节点的地址,想要得到链表,就必须用指针成员把每一个结点(结构体)串起来,这里改变指针成员的指向,对前面的结构体无任何影响,因为他们根本就没什么关系,比如链表:a->b->c,另外还一个节点d,我想把它串到链表内,就需要让c的指针成员指向d,即:c->next=d,这一个操作是不会影响a、b、c任何一个节点的,仅仅是改变了c的指针变量的值,c的地址没变,数据变量也没变。
曾听南7L
2012-12-19 · 超过18用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:43.2万
展开全部
#include <stdio.h>
struct list//构建链表结构体:数据和指针
{
char data;//数据成员
struct list *next;//指向下一个节点的指针
};
struct list *creat()//创建链表
{
struct list *h,*p,*q; //定义结构体指针
char ch;
h=(struct list*)malloc(sizeof(struct list)); //为h指针申请空间
p=q=h; //初始化p和q指针
ch=getchar(); //接收输入的字符
while(ch!='?') //只有在接收到的字符为 '?' 时才停止接收
{
p=(struct list *)malloc(sizeof(struct list)); //为p指针申请空间
p->data=ch; //p指向的结构体的数据成员赋值为ch
q->next=p; //q指向的结构体的指针成员指向p,即把p链接到该链表尾部
q=p; //q赋值为p,保证q始终是该链表的最后一个节点,p是每次新增的链表节点
ch=getchar(); //继续接收字符
}
p->next='\0'; //清空p指向的结构体指针
return h; //返回h指针,这里h即为整个链表的头节点,有了头结点即可以获得整个链表的数据
}
追问
指针变量的指向变化,不影响前面的结构体变量吗?就是前面已经存在的那些存储单元。不会因为指针变量引用的单元变化而变化吗?初学,见笑了
是不是和指针指向数组元素的道理一样?
追答
不会的。
每个节点都是 一个结构体,结构体中有个next指针, 用于指向下一个节点的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式