第11章结构体与共用体.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程要求 ★ 课前请做好预习 ★ 课堂安静,头脑清醒,思维活跃 ★ 认真、保持独立、按时完成并提交作业 ★ 重视上机实践,有效利用上机时间 第十一章 结构体 与 共用体 本章要点 结构体的概念 结构体的定义和引用 结构体数组 例:enum color{red,yellow,blue,white,black}; /*定义枚举类型*/ enum color c1, c2; /*定义枚举变量*/ 赋值: 合法: c1=red; c2=blue; 非法: c1=green; c2=orange; 说明: 1. enum是关键字,标识枚举类型。 2.在定义时,花括号中的枚举符表是用户自己指定的标识符。 3.它的值是一些整数。一般从第一个名字开始,各名字分别代表0、1、2、3、4。但不能enum color{0, 1, 2, 3, 4}; 。 4.可以在定义时对枚举常量初始化 enum color{ red=3,yellow,blue, white=8,black}; 5.枚举值可以进行比较。if(c2==red)cout“red”endl; 6.一个枚举变量的值只能是这几个枚举常量之一。可以将枚举常量赋给一个枚举变量;但不能将一个整数赋给它。 c2=black; (正确) c2=3; (错误) c2=(color) 3; 例11.11插入结点的函数insert如下: struct student *insert(struct student *head, struct student *stud) { struct student *p0,*p1,*p2; p1=head;p0=stud; if (head==NULL) {head=p0; p0-next=NULL;} else { while((p0-nump1-num) (p1-next!=NULL)) {p2=p1; p1=p1-next;} if(p0-num=p1-num) { if(head==p1) head=p0; else p2-next=p0; p0-next=p1;} else {p1-next=p0; p0-next=NULL;} } n=n+1; return(head); } 11.7.7 对链表的插入操作 11.7.8 对链表的综合操作 11.7.8 对链表的综合操作 将以上建立、输出、删除、插入的函数组织 在一个C程序中,用main函数作主调函数。 void main() { struct student *head,stu; long del_num; prinf(″intput records:\n″) ; head=creat(); print(head); printf (″ \n intput the deleted number:\n″); scanf (″%ld″,del_num) ; head=del(head,del_num); print(head); printf (″ \n intput the deleted number:\n″); scanf (″%ld″,stu.num,stu.score) ; head=insert(head,stu); print(head); } 此程序运行结果是正确的。它只删除一个结 点,插入一个结点。但如果想再插入一个结点, 重复写上程序最后4行,共插入两个结点,运行结 果却是错误的。 出现以上结果的原因是: stu是一个有固定地址的结构体变量。第一次把stu结点插入到链表中,第二次若再用它来插入第二个结点,就把第一次结点的数据冲掉了,实际上并没有开辟两个结点。为了解决这个问题,必须在每插入一个结点时新开辟一个内存区。我们修改main函数,使之能删除多个结点(直到输入要删的学号为0),能插入多个结点(直到输入要插入的学号为0)。 11.7.8 对链

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档