本次课内容:共用体 其中:枚举和 typed类型自阅。 教学目的:掌握相关概念,共田〃的户 用方法 重点:共用体的定义和引F 难点:共用体的引用。 预习: 结构体的定y 体成 配名间的卡系。 结构体中,每 有有隆者空间
本次课内容:共用体 其中:枚举和typedef类型自阅。 教学目的:掌握相关概念,共用体的定义意义和引用方法。 重点:共用体的定义和引用。 难点:共用体的拆分引用。 预习: 结构体的定义,结构体成员和内存分配空间的关系。 结构体中,每个成员占有独立的存储空间
、共用体类型数据 1、共用体概念 共用体数据类型:指将不同的数据项存放于同一段内存单元的一种 构造数据类型。 定义形式: (1)unon共用体名 【成员列表} (2) 11u共用体名 1010 a 【成员列表}变量列表; (3 union 成员列表}变量列表 如: anti t int ay float by char ce
一、共用体类型数据 1、共用体概念 共用体数据类型:指将不同的数据项存放于同一段内存单元的一种 构造数据类型。 定义形式: (1) union 共用体名 { 成员列表 }; (2) union 共用体名 { 成员列表 } 变量列表; (3) union {成员列表 } 变量列表; 如:union exam { int a; float b; char c; }; b a 1010 c
2、共用体引用 与结构体变量成员引用相似 如:x ax b 习 Xac 注:共用体变量某一时刻只能存放其中一个成员值,即最后所赋的 值 例:p267714 maino 1010000000 0000000 a unnI b t int aj foat be char c; 1K,yH X.a3 print(%dn”ya)月
2、共用体引用 与结构体变量成员引用相似 如:x . a , x . b , x . c 注:共用体变量某一时刻只能存放其中一个成员值,即最后所赋的 值。 例:p267_7.14 main() { union exam { int a; float b; char c; }x,y; x.a=3; y=x; printf(“%d\n”,y.a); } b a 1010 00000011 c 00000000
3、应用 (1)一个数据域存放不同的对象P268 struct fong num num char name20; char sex, char job; name 20 unIon d int class seX char froup20l ob 3category class B person[10l; groupe?
3、应用 (1)一个数据域存放不同的对象P268 struct {long num; char name[20]; char sex; char job; union { int class; char froup[20] }category }person[10]; num name[20] sex job class group[20]
2)一段内存空间的内容拆分P268716 main (0 177736 01000001 union int char i int i; 177737 01100001 char ch 2; X x=24897 printf(“i=%0Ⅶn”,xi); printf("ch0=%0,chl=%0Ⅶn”,xch0,xch1); printf(ch0=( oc, chl=%cln", xch[ x.xh1D 结果: 高字节 低字节 i=60501 01100001 01000001 ch0=101,ch1=141 ch0=A.chI=a
(2)一段内存空间的内容拆分P268_7.16 main() { union int _char { int i; char ch[2]; }x; x.i=24897; printf(“i= %0\n”,x.i ); printf(“ch0=%o,ch1=%o\n”,x.ch[0],x.ch[1] ); printf(“ch0=%c,ch1=%c\ \n” ,x.ch[0],x.xh[1]); } 结果: i=60501 ch0=101,ch1=141 ch0=A,ch1=a 01000001 01100001 177736 177737 ch[0] ch[1] 高字节 低字节 01100001 01000001