文档详情

第10章结构﹒共用及枚举.ppt

发布:2017-05-06约6.84千字共25页下载文档
文本预览下载声明
Modern Operating System 复合数据类型 数组 指针 结构体 联合体 (共用体) 枚举 第九讲 结构、共用及枚举 学习目标 掌握结构体类型的声明、结构体变量的定义及使用 了解单链表的概念 (结构体与指针的典型应用) 了解共用体类型的声明及变量的定义 了解枚举类型的概念、定义及使用 了解自定义类型的定义与使用方法 9.1 结构体 结构体类型的定义 结构体变量的定义及初始化 结构体成员的引用 结构体数组 结构体指针 学生成绩表 结构体类型的定义 结构体类型的性质:不同数据类型组成的集合体 定义格式 结构体变量的定义与初始化 结构体类型的变量定义 按照结构体类型分配实际的存储空间 声明格式: struct 结构体名 变量名表; 例:struct DATE date,brithday; 结构体类型变量的初始化 按声明顺序逐成员进行 例: struct DATE date = { 2008, 8, 8 }; struct cj_list stu1={c001,Tom,1990,M,88,90,88}; 说明:初始化数据必须与结构体类型声明的类型与顺序完全一致,各个成员初始值之间用逗号分隔 结构体变量所占内存空间 结构体成员的引用 成员选择操作符“.” --- 通过结构体变量 格式:结构体变量名.成员名 例:struct DATE date; date.year = 2008; 成员选择操作符“–” --- 通过结构体指针 格式:结构体变量名–成员名 例:struct DATE *p = date; p–year = 2008; 说明: p–year ? (*p).year 例10.1 编写程序定义一个结构体变量,并从键盘输入一组数 据,计算出总分,并输出所有信息 main() { struct cj_list { char num[10]; char name[10]; int year; char sex; float math, English, computer, total; }stu1; printf (\n input name, num, year, sex, math, English, computer\n); scanf(%s%s%d%c%f%f%f,,stu1.num,stu1.year, stu1.sex,stu1.math,stu1.English,puter); stu1.total=stu1.math+stu1.English+puter; printf (姓名:%s,学号:%s,出生年份:%d,性别:%c,数学:%f,英语:%f, 计算机:%f,总分:\n%f,,stu1.num,stu1.year, stu1.sex,stu1.math,stu1.English,puter,stu1.total); } 结构体数组 是结构体和数组的结合 由同一结构体类型的结构体变量构成的数组 例:结构体数组 struct cj_list { char num[10]; char name[10]; int year; char sex; float math, English, computer, total; } stu[40]; 或 struct cj_list stu[40]; stu[5].name[0]=T; stu[5]. math=90.5; 结构体嵌套示例 结构体指针 指向结构体变量的指针 声明格式:struct 结构体名* 结构体指针变量名; 例: struct Child{ float height; float weight; Date brithday; char sex; }; struct Child * p; struct Child a = { 0.83, 30.0, 2003,5,17, ‘M’ }; p = a; 结构体成员的引用 一般例:(*p)
显示全部
相似文档