文档详情

第十五讲_共用体和枚举类型.ppt

发布:2017-07-31约1.26万字共44页下载文档
文本预览下载声明
17 《C++语言及编程技巧》 第15讲 共用体、枚举类型 第15讲 共用体、枚举类型及位运算(一) 引述 7.1 共用体 7.2 枚举类型 7.3 编译预处理 引述 共用体 (又称联合体或联合,union) 一种派生的构造数据类型,但其成员共享同一存储空间。 枚举类型(enum) 一种由程序员定义的数据类型,它是用标识符表示的整数常量的集合。 位运算 所有数据在计算机内部都是用位序列表示。C提供了位运算、位运算符以及位域(或称位段)的功能,以便处理一些与机器硬件密切相关的操作。 7.1 共用体 与结构体类型一样,共用体类型也是一种可由程序员定义的构造数据类型 结构体中每一成员有各自的内存空间,而共用体中各成员共享同一内存空间 共用体中的成员可以是任何数据类型 用来存储共用体的字节数能足以存储其最大的成员 多数情况下,共用体包含了两种以上数据类型,但同一时候只能引用一个成员 7.1 共用体 union 共用体名 { 共用体成员表 }; 7.1 共用体 例1 共用体类型定义示例 union intchar { int num; char ch; }; 共用体类型:union intchar 7.1 共用体 例2 下述共用体类型定义表明,共用体成员本身还可以是一个结构体 union uni { int num; struct { char first; char second; } str; }; 7.1 共用体 说明共用体变量(简称共用体)可有多种形式。 形式一 先定义共用体类型,再说明共用体变量 例3 共用体变量说明示例一 union mixed { int num; char ch; float fl; }; union mixed m1,m2; 7.1 共用体 形式二 在定义共用体类型的同时说明共用体变量 例4 共用体变量说明示例二 union mixed { int num; char ch; float fl; } m1,m2; 形式三 利用匿名共用体类型说明共用体变量 例5 共用体变量说明示例三 union { int num; char ch; float fl; } m1,m2; 7.1 共用体 形式四 利用typedef为共用体类型取一个别名,再利用此别名说明共用体变量 例6 共用体变量说明示例四 7.1 共用体 形式五 利用宏替换命令将共用体类型(即union 共用体名)重新起名,再用此新名说明共用体变量 例7 共用体变量说明示例五 #define MIXED union mixed MIXED { int num; char ch; float fl; }; MIXED m1,m2; 7.1 共用体 共用体变量说明中可带初始化赋值。但C规定,在共用体变量的初始化中,只能用其第一个成员的类型的值进行初始化。 例8 共用体变量初始化示例 union mixed { int num; char ch; float fl; }; union mixed m1={0},m2; 若写 union mixed m1={0.0}; 7.1 共用体 例9 对于下述共用体变量初始化 union com { int num; char ch[2]; }; union com c1={0x4241}; 十六进制整数1696110 7.1 共用体 引用共用体成员的两个运算符:“.”和“-” 形式一 共用体变量.成员名 形式二 (*共用体指针变量).成员名 形式三 共用体指针变量-成员名 7.1 共用体 结构体和共用体常相结合使用。 例11 在结构体类型中使用共用体类型示例 struct { int serialno; modelname model; color paint; date time; union { struct { carstyle style; } car; struct { cubicmeters capacity; tonnes load; } van; } vehiclekind; } vehicle; 7.1 共用体 例12 设有一个教师与学生通用的表格,教师数据有姓名、年龄、职业、教研室四项。学生数据有姓名、年龄、职业、班级四项。编程简要模拟输入人员数据,并以表格形式输出。 /* program listinfo.cpp */ #include iostream.h #include iom
显示全部
相似文档