欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第10章共用体与枚举.ppt

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

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

    第10章共用体与枚举.ppt

    1,第10章 共用体与枚举,C语言程序设计,华北电力大学计算机科学系C语言课程组,2,学习目标,理解共用体概念以及在编程中的作用掌握结构体类型和共用体类型的差别理解枚举概念以及在编程中的作用掌握使用typedef定义新类型的方法及作用,3,10.1共用体,10.1.1 共用体概念【例】教师和学生填表问题,职业:“教师”或“学生”单位:学生 班级编号 整型量表示 教师 某系某教研室 字符数组类型表示问题:如何把这两种类型不同的数据都填入“单位”这个变量中呢?语言提供了一种称为共用体(联合)的类型。,4,如要求“班级”和“教研室”这两种类型不同的数据都填入“单位”这个变量中,就必须把“单位”定义为包含整型和字符型数组这两种类型的“共用体”,如下:union perdata int class;char office10;,5,1、共用体类型定义union 共用体名类型说明符 成员名1;类型说明符 成员名2;.类型说明符 成员名n;,关键字,6,第2种:union perdata int class;char office10;a,b;,第3种 union int class;char office10;a,b,7,2、共用体变量的声明,以perdata类型为例,声明如下:第1种union perdata int class;char officae10;union perdata a,b;/*声明a,b为perdata类型*/,8,说明,共用体变量和结构体变量含义不同:结构体变量所占内存长度是各成员的内存长度之和共用体变量所占内存长度是最长成员的长度。如perdata类型的变量a和b都为10个字节,即office数组的长度。a,b变量如赋整型数据时,只使用了2个字节,而赋字符数组时,可用10个字节。,9,3、共用体的引用 先定义共用体变量后才可以引用它。不能引用共用体变量本身,只能引用其中的成员。例如:printf(d,a);是错误的 printf(d,aclass);是正确的,10,4共用体类型特点(1)同一内存段可放几种不同类型的成员,但每一瞬间只能存放一种。例:union data int i;char ch;float f;a,b,c;ai1;ac=a;af2.1;printf(f,af);是可以的。printf(c,ac);无效,11,(2)共用体变量地址及其各成员地址都是同一地址。即&a,&ai,&ac,&af值相同。(3)不能对共用体变量名赋值。也不能定义时进行初始化。(4)不能把共用体变量作为函数参数,也不能使函数返回共同体变量,但可以使用指向共用体的指针。(5)允许定义共用体数组。,12,10.1.2 人员管理,【例10-1】设有一个教师与学生通用的表格,教师数据有姓名,年龄,职业,教研室四项。学生有姓名,年龄,职业,班级四项。编程输入人员数据,再以表格输出。,#include#include struct personchar name10;int age;char job10;unionint mclass;char office20;depa;,13,void main()struct person body2;int n,i;for(i=0;i2;i+)printf(input name,age,job and departmentn);scanf(%s%d%s,bodyi.name,14,10.2 枚举,10.2.1 枚举概念1枚举类型的定义,例如:enum weekday sun,mou,tue,wed,thu,fri,sat;一般形式enum 枚举名 枚举值表;enum是关键字,定义枚举类型必须用enum开头。在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。,15,2.枚举变量的声明先定义,后声明 enum weekday.;enum weekday a,b,c;或者为:enum weekday,16,10.2.2枚举类型应用,【例10-2】星期枚举类型定义#include enum weekday sun,mon,tue,wed,thu,fri,sat a,b,c;main()a=sun;b=mon;c=tue;printf(%d,%d,%dn,a,b,c);,运行结果0,1,2Press any key to continue,17,10.2.3 星期几的计算,【例10-3】编写程序,要求输入当天是星期几,就可以计算并输出n天后是星期几。例如,今天是星期六,若求3天后是星期几,则输入6,3,即输出“3天后是星期2”。源程序如下:,18,#include enum weeksun,mon,tue,wed,thu,fri,sat;enum week day(enum week w,int n)return(enum week)(int)w+n)%7);void main()enum week w0,wn;int n;printf(输入当天为星期几和过的天数:n);scanf(%d%d,19,枚举类型在使用中有以下规定,1.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值:sun=5;mon=2;sun=mon;都是错误的。2.枚举元素值从0 开始顺序定义为0,1,2。如在weekday中,sun值为0,mon值为1,sat值为6。3.只能把枚举值赋予枚举变量,不能把整型数值直接赋予枚举变量。如:a=sum;b=mon;是正确的。而:a=0;b=1;是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换,如:a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:a=tue;还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。,20,10.3 用typedef定义类型,【例】定义变量a,b:int a,b;采用如下方法定义:typedef int INTEGERINTEGER a,b;两种方法完全等效,关键字,为int类型定义的别名,21,定义一个新的类型名,typedef定义的一般形式为:typedef 原类型名 新类型名,步骤如下:1、按定义变量的方法写出定义体(如:int data);2、将变量名换成新类型名(如data 换成DATATYPE);3、在前面加上typedef(如:typedef int DATATYPE);3、然后可以用新类型名去定义变量(如:DATATYPE md1);,22,例:定义结构体类型typedef struct stu char name20;int age;char sex;STU;STU body1,body2;,23,例:定义数组类型typedef char NAME20;NAME a1,a2,s1,s2;完全等效于:char a120,a220,s120,s220,24,小结,(1)共用体是一种构造类型,各成员不能同时存在。同一时刻,只有一个成员存在于内存中,共用体变量长度是最长的成员的长度。(2)共用体变量不能作为函数的参数,函数也不能返回指向共用体的指针。(3)枚举是一种基本数据类型。枚举变量的取值是有限的,枚举元素是常量,不是变量。枚举元素和整数属于不同类型。(4)类型定义typedef向用户提供了一种自定义类型说明手段,可以给任何类型取一个符合习惯的可读性强的别名。,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开