C++程序设计基础 陆勤 第七章 共用体、枚举类型新.ppt
文本预览下载声明
7.1 共用体 union 共用体名 { 共用体成员表 }; 例 union intchar { int num; char ch; }; 例 共用体成员本身还可以是一个结构体 union uni { int num; struct { char first; char second; } str; }; 共用体变量定义中可带初始化赋值,在共用体变量的初始化中,只能用其第一个成员类型的值进行初始化。 例 union mixed { int num; char ch; float fl; }; union mixed m1={0},m2; 若写 union mixed m1={0.0}; 例 union com { int num; char ch[2]; }; union com c1={0x4241}; 十六进制整数(1696110) 引用共用体成员的两个运算符:”.”和”-”: 形式一 共用体变量.成员名 形式二 (*共用体指针变量) . 成员名 // ” .” 运算符优先级别高于”*” 形式三 共用体指针变量-成员名 struct { int serialno; // 系列编号 modelname model; // 产品编号 color paint; // 车身颜色 date time; // 出厂日期 union { struct { carstyle style; // 流行式样 } car; struct { cubicmeters capacity; // 装载容积 tonnes load; // 载重吨位 } van; // 可根据系列编号选用car或van } vehiclekind; } vehicle; 例13 设有一个教师与学生通用的表格,教师数据有姓名、年龄、职业、教研室四项。学生数据有姓名、年龄、职业、班级四项。编程简要模拟输入人员数据,并以表格形式输出。 #includeiostream.h void main() { struct { char name[10]; int age; char job; // s-student;t-teacher union { int class1; char office[10]; } depa; // 可根据职业选用class或office } body[2]; int i; for (i=0;i2;i++) { coutInput name,age,job and department:\n; cinbody[i].namebody[i].agebody[i].job; if (body[i].job==s) cinbody[i].depa.class1; else cinbody[i].depa.office; } coutname\tage job class/office\n; for (i=0;i2;i++) { if (body[i].job==s) coutbody[i].namebody[i].age body[i].jobbody[i].depa.class1endl; else coutbody[i].namebody[i].age body[i].jobbody[i].depa.officeendl; } } 例 利用共用体的结构特性实现数据的有机分解 #includeiostream.h #include iomanip.h vo
显示全部