- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高等教育]结构体、共用体和用户定义类型
第十四章 本章要点 结构体的概念 结构体的定义和引用 结构体数组 主要内容 14.1 用typedef说明一种新类型名 14.2 结构体类型 14.3 共用体 p1 p0 p2 head 99101 99102 99107 NULL 99103 p1 p0 head 99101 99102 99107 NULL 99103 p0 p2 p2 next=p0 p0 next=p1 例14.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); } (4) 删除节点函数,设原有链表有序(从小到大) head 99101 99107 NULL 99103 p1 head 99101 99107 NULL 99103 p1 head 99101 99107 NULL 99103 p1 head 99101 99107 NULL 99103 p1 p2 p2 head=p1 next p2 next=p1 next 例14.12: 编写一个删除结点的函数del struct student *del( struct student *head, long num) {struct student *p1,*p2; if (head==NULL) {printf( \n list null!\n); return (head); } p1=head; while( num!=p1-num p1-next!=NULL) {p2=p1;p1=p1-next;} if( num==p1-num) {if(p1==head) head=p1-next; else p2-next=p1-next; printf( delete: %ld\n, num); n=n-1; } else printf( %ld not been found!\n, num); return (head); } 14.3 共用体 14.3.1 共用体类型的说明和变量定义 使几个不同的变量共占同一段内存的结构称为 “共用 体”类型的结构。 1、定义共用体类型的一般形式为: union 共用体标识名 { 类型名1 共用体成员名1; 类型名2 共用体成员名2; … 类型名n 共用体成员名n; }; 例如: union data { int i; char ch; float f; }; 1000地址 整数变量i 字符变 量ch 实型变量f 共用体中的成员可以是简单变量,也可以是数组、指针、结构体和共用体(结构体的成员也可以是共用体)。 2、共用体变量的定义 共用体变量的定义与结构体变量的定义相同,也可以采用4中方式。例如: union data { int i; char ch; float f; }a, b, c, *p; 说明: (1) 共用体变量在定义的同时只能用第一个成员的类型的值进行初始化,因此,以上定义的变量a和b,在定义的同时只能
文档评论(0)