- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章用户建立的数据类型2
;§9.4 用指针处理链表 ;用结构体建立链表的结点(例):
struct student
{ int num;
float score;
struct student *next ;};
其中成员num和score用来存放结点中的有用数据(用
户需要用到的数据),next是指针类型的成员,它指
向struct student类型数据。;9.4.2 建立简单的静态链表 ; 9.4.3 建立动态链表 ;建立链表的函数如下:
#include stdio.h
#include malloc.h
#define NULL 0 //令NULL代表0,用它表示“空地址
#define LEN sizeof(struct student) //令LEN代表struct //student类型数据的长度
struct student
{ int num;
float score;
struct student *next;
};
int n; //n为全局变量,本文件模块中各函数均可使用它;struct student *creat( )
{ struct student *head,*p1,*p2; n=0;
p1=p2=(struct student*)malloc(LEN);
scanf(“%d%f”,p1-num,p1-score); ; 9.4.4 输出链表 ; 9.5 共用体 ;共用体和结构体的比较:
结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。
共用体变量所占的内存长度等于最长的成员的长度。;2. 共用体变量的引用方式
只能引用共用体变量中的成员:;3. 共用体类型数据的特点 (P271)
(1) 同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一种,而不是同时存放几种。
(2) 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。
共用体变量的地址和它的各成员的地址都是同一地址。
不能对共用体变量名赋值,…
不能把共用体变量作为函数参数,…
共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。反之,…;例9.10 设有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。可以看出,学生和教师所包含的数据是不同的。现要求把它们放在同一表格中。; 9.6 枚举类型; 9.7 用typedef 命名类型
文档评论(0)