《共同体位运算与枚举类型.ppt》由会员分享,可在线阅读,更多相关《共同体位运算与枚举类型.ppt(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2222讲讲 共同体与枚举类型共同体与枚举类型一、一、共同体共同体二、二、枚举类型枚举类型三、三、类型定义类型定义一、共同体类型与共同体变量一、共同体类型与共同体变量1、共同体的概念、共同体的概念 回顾数组与结构体:数组是相同类型的多个变量的回顾数组与结构体:数组是相同类型的多个变量的组合,结构体是不同类型的多个变量的组合。组合,结构体是不同类型的多个变量的组合。数组和结构体中的变量各自占有数组和结构体中的变量各自占有不同不同的存储空间,的存储空间,变量之间互不影响。变量之间互不影响。数组和结构体中的变量的值可以变化,但是它们的数组和结构体中的变量的值可以变化,但是它们的类型不能改变。类型
2、不能改变。共同体共同体是将不同类型的数据存放在同一存储位置。是将不同类型的数据存放在同一存储位置。因此,任意时刻,存放在共同体中只有一种数据值,而因此,任意时刻,存放在共同体中只有一种数据值,而不能同时存放多种数据。不能同时存放多种数据。2、共同体类型的定义、共同体类型的定义1)共同体类型的定义的格式)共同体类型的定义的格式union 共同体类型名共同体类型名 成员说明列表成员说明列表;2)例如)例如union data int i;char ch;float f;3、共同体变量的定义、共同体变量的定义 与结构体变量的定义类似,与结构体变量的定义与结构体变量的定义类似,与结构体变量的定义有三种
3、方法。有三种方法。1)先定义共同体类型,再定义共同体类型变量)先定义共同体类型,再定义共同体类型变量union data /类型定义类型定义 int i;char ch;float f;union data a,b,c;/变量定义变量定义2)在定义共同体类型的同时定义变量)在定义共同体类型的同时定义变量union data int i;char ch;float f;a,b,c;3)在定义共同体定义变量时,省略类型名)在定义共同体定义变量时,省略类型名union int i;char ch;float f;a,b,c;4、共同体变量的引用、共同体变量的引用 在定义共用体变量之后,就可以引用该共
4、用体变在定义共用体变量之后,就可以引用该共用体变量的某个成员。引用格式与结构体类似:量的某个成员。引用格式与结构体类似:共同体变量名共同体变量名.成员名成员名例如:例如:union data int i;char ch;float f;a,b;a.i=1024;b.f=0.1234#include union data int i;char c;float f;void main()union data a;a.i=321;printf(%cn,a.c);运行结果:运行结果:A写出下面程序的执行结果:写出下面程序的执行结果:原理:原理:二、枚举类型二、枚举类型1、枚举类型的概念、枚举类型的概念
5、 在实际应用中,有的变量只有几种可能的取值。例在实际应用中,有的变量只有几种可能的取值。例如:如:7种颜色、种颜色、12个月份的名称。个月份的名称。枚举是一个被命名的整型常数的集合。枚举是一个被命名的整型常数的集合。例如:例如:enum colorname red,yellow,blue,white,black;2、枚举类型的定义格式、枚举类型的定义格式enum 枚举类型名枚举类型名 标识符标识符1,标识符,标识符2,标识符标识符n ;例如:例如:enum colorname color1;3、枚举类型变量的定义格式、枚举类型变量的定义格式enum 枚举类型名枚举类型名 变量名变量名;4、几点
6、说明、几点说明 1)enum是关键字,标识枚举类型,定义枚举类型是关键字,标识枚举类型,定义枚举类型必须以必须以enum开头。开头。2)在定义枚举类型时花括号中的名字称为枚举元在定义枚举类型时花括号中的名字称为枚举元素或枚举常量素或枚举常量。枚举元素不是变量,不能改变其值,。枚举元素不是变量,不能改变其值,枚举常量可以进行比较。枚举常量可以进行比较。3)一个枚举变量的值只能是这几个枚举常量之一,一个枚举变量的值只能是这几个枚举常量之一,可以将枚举常量赋给一个枚举变量。可以将枚举常量赋给一个枚举变量。4)可以在定义类型时对枚举常量初始化。可以在定义类型时对枚举常量初始化。三、类型定义三、类型定义
7、1、类型定义的概念、类型定义的概念 在使用标准类型定义变量时,可只写标准类型名指在使用标准类型定义变量时,可只写标准类型名指明变量的数据类型。明变量的数据类型。而在使用结构体、共同体、枚举类型定义变量时,而在使用结构体、共同体、枚举类型定义变量时,则必须加上关键字则必须加上关键字struct、union和和enum。C语言提供语言提供typedef来对类型进行命名。来对类型进行命名。在使用了在使用了typedef 对某种类型命名后,就可以不要对某种类型命名后,就可以不要使用关键字使用关键字struct、union和和enum了。了。2、结构体类型的定义示例、结构体类型的定义示例 对于下面的结构体类型定义:对于下面的结构体类型定义:typedef struct student char name10;int yw,sx,yy;STUDENT;则可以使用下面二种形式来定义结构体变量:则可以使用下面二种形式来定义结构体变量:STUDENT st1,st2;struct student st3,st4;