欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

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

    • 资源ID:2250708       资源大小:291.01KB        全文页数:25页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    复合数据类型,数组 指针 结构体 联合体 (共用体) 枚举,第九讲 结构、共用及枚举,学习目标 掌握结构体类型的声明、结构体变量的定义及使用 了解单链表的概念 (结构体与指针的典型应用) 了解共用体类型的声明及变量的定义 了解枚举类型的概念、定义及使用 了解自定义类型的定义与使用方法,9.1 结构体,结构体类型的定义 结构体变量的定义及初始化 结构体成员的引用 结构体数组 结构体指针,学生成绩表,结构体类型的定义,结构体类型的性质:不同数据类型组成的集合体 定义格式,struct 结构体名 类型1 成员名1; 类型2 成员名2; 类型n 成员名n; ;,struct DATE int year; int month; int day; ;,注意: 定义结构体类型并不分配内存,定义变量时分配 结构体成员可以是与本结构体完全无关的其他结构体类型,但不能是自身,struct cj_list char num10; char name10 ; int year ; char sex ; float math ,English ,computer ; ;,struct DATE date;,结构体变量的定义与初始化,结构体类型的变量定义 按照结构体类型分配实际的存储空间 声明格式: struct 结构体名 变量名表; 例:struct DATE date,brithday; 结构体类型变量的初始化 按声明顺序逐成员进行 例: struct DATE date = 2008, 8, 8 ; struct cj_list stu1=“c001“,“Tom“,1990,'M',88,90,88; 说明:初始化数据必须与结构体类型声明的类型与顺序完全一致,各个成员初始值之间用逗号分隔,struct DATE int year; int month; int day; ;,struct DATE int year; int month; int day; date,brithday;,可省略,结构体变量所占内存空间,结构体变量所占内存空间是其各个成员所占内存空间之和。 例:struct cj_list char num10; char name10 ; int year ; char sex ; float math ,English ,computer ; stu1,stu2,stu3; 程序中,可用sizeof(变量名或类型标识符),求得结构体变量所占内存空间的大小。例如,printf(“%d“,sizeof(stu1); printf(“%d”,sizeof(struct cj_list);,结构体成员的引用,成员选择操作符“.” - 通过结构体变量 格式:结构体变量名.成员名 例:struct DATE date; date.year = 2008; 成员选择操作符“” - 通过结构体指针 格式:结构体变量名成员名 例:struct DATE *p = 说明: pyear (*p).year,例10.1 编写程序定义一个结构体变量,并从键盘输入一组数 据,计算出总分,并输出所有信息,main() struct cj_list char num10; char name10; int year; char sex; float math, English, computer, total; stu1; printf (“n input name, num, year, sex, math, English, computern“); scanf(“%s%s%d%c%f%f%f“,stu1.name,stu1.num, ,结构体数组,是结构体和数组的结合 由同一结构体类型的结构体变量构成的数组 例:结构体数组 struct cj_list char num10; char name10; int year; char sex; float math, English, computer, total; stu40; 或 struct cj_list stu40; stu5.name0='T' stu5. math=90.5;,结构体嵌套示例,struct Date int year; int month; int day; ;,struct cj_list st; st.birthday.year = 1990; st.birthday.month = 5; st.birthday.day = 14;,struct cj_list char num10; char name10; int year; char sex; float math, English, computer, total; ;,Date birthday;,结构体指针,指向结构体变量的指针 声明格式: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 = ,结构体与指针的一个重要应用 链表是一种动态进行存储分配的数据结构。 链表的组成:由一系列结点组成 头指针:存放一个地址,该地址指向一个(头)结点 结点:实际数据和链接下一个节点的指针,9.2 链表,链表的建立,用结构体建立链表: struct student int num; float score; struct student *next; ; 其中成员num和score用来存放结点中的用户需要用到的数据,next是指针类型的成员,它指向结构体struct student类型数据(下一个结点),简单链表,#include #define NULL 0 struct student long num; float score; struct student *next; ; main( ) struct student a,b,c,*head,*p; a. num=10101; a.score=89.5; b. num=10103; b.score=90; c. num=10107; c.score=85; head= ,运行结果: 10101 89.5 10103 90.0 10107 85.0,9.3 共用体,共用体类型的声明 共用体变量的定义 共用体成员的引用 应注意的问题,共用体类型的声明,共用体类型的性质 不同数据类型组成的集合体 各个成员共享同一片存储空间,其他性质与结构体完全相同 声明格式,union 共用体名 数据类型1 成员名1; 数据类型2 成员名2; 数据类型n 成员名n; ;,union cj int scroe; char rank; ;,又称联合体,共用体成员的引用示例,建立课程表,其中包括:课程号、开课年级、课程性质、任课老师、成绩,课程性质若为P填分数,若为E则填等级。,struct Course int id; int grade; char type; char teacher10; union cj course_cj; ; struct Course c_table10;,嵌套的共用体变量course_cj作为结构体类型Course的成员,union cj float score; char rank; course_cj;,共用体成员的引用示例,建立教师与学生登记表,其中包括ID识别号、姓名、身份标志、职称(教师)或年级(学生),如若身份标志为S则填年级信息,若身份标志为T则填职称信息,struct PERSON int id; char name10; char levelflag; union int grade; char jobtitle10; level; ; struct PERSON person;,嵌套的共用体变量level作为结构体类型PERSON的成员,注意:起作用的是最后一次赋值的成员 即:每个时刻只有一个成员起作用,换言之,联合体的成员不能同时起作用,9.4 枚举类型及其应用,如果一个变量只有几种可能的值,可以定义为枚举类型。 所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。 声明枚举类型用enum开头 enum Color red, yellow, blue ; enum Sex male, female ;,enumerate 列举,枚举类型的声明,枚举类型的声明 enum 枚举名 元素名1, 元素名2, , 元素名n ; 例:enum MONTH JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC ; 枚举类型变量的定义 例:enum MONTH month; 例:enum weekday sun,mon,tue,wed,thu,fri,sat workday,week-end;,关于枚举类型的说明,枚举类型声明中的元素为枚举文字,不是变量 枚举文字的值缺省时从0开始,依次递增 显式定义枚举文字的值也是允许的 例: enum weekday SUN=7, MON=1, TUE, WED, THU, FRI, SAT workday; 枚举变量可用于比较或判断操作 例:if( month = DEC ) 整数要先进行类型转换才可以赋给枚举变量 workday=(weekday)5; 即:FRI,9.5 类型别名定义,类型别名定义的一般格式 typedef 原类型标识 新类型名; 例一:typedef int INTEGER; 例二:enum BOOL_TAG FALSE, TRUE ; typedef enum Boolean; 类型别名定义的性质 新类型与原类型相同,并未产生新类型,重新命名的自定义类型使程序更易理解 类型别名定义不是简单的类型替换: typedef char* PCHAR; PCHAR p, q; 定义了两个指针变量p 、q,等价于: char * p,*q; 而不是一个指针变量p与一个字符变量q,复合数据结构,复合数据结构 数组定义与使用方法 字符型数组 同类型数据组成 int a10; 下标: 0 9 char s8; 指针概念,指针基本运算,指针与数组的关系 指针与目标对象 p *p a &a 结构体类型声明、结构体变量的定义与用法 不同类型数据组成 struct man.name 共用体类型声明、共用体变量的定义与用法 枚举类型的概念、定义与使用方法 类型别名定义的方法与使用,struct PERSON char name8; char sex6; DATE birthday; char department10; int score; man;,struct DATE int year; int month; int day; ;,作 业,第201页: 第一题(填空) 第1 10小题,

    注意事项

    本文(第10章结构、共用及枚举.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开