欢迎来到天天文库
浏览记录
ID:29735258
大小:20.04 KB
页数:16页
时间:2018-12-22
《c语言结构体和共用体,实验心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划c语言结构体和共用体,实验心得 所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为: union共用体名 {成员表列}; 共用体的定义 uniondata { inta; floatb; doublec; chard; }obj; 该形式定义了一个共用体数据类型uniondata,定义了共用体数据类型变量obj。共用体 数据类型与结构体在形式上
2、非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。 [例7-8] uniondata/*共用体*/ { inta;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 floatb; doublec; chard; }mm; structstud/*结构体*/ { inta; floatb; do
3、ublec; chard; }; main() { structstudstudent printf("%d,%d",sizeof(structstud),sizeof(uniondata)); } 程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的 共用体类型实际占用存储空间为其最长的成员所占的存储空间。详细说明如图7-6所示。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的
4、发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。 共用体变量的引用 可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为: uniondata/*共用体*/ { inta; floatb; doublec; chard;
5、 }mm; 其成员引用为:mm.a,mm.b,mm.c,mm.d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。 [例7-9]对共用体变量的使用。 main() { uniondata目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 { inta; floatb; doublec;
6、chard; }mm; mm.a=6; printf("%d",); mm.c=67.2; printf("%5.1lf",mm.c); mm.d='W'; mm.b=34.2; printf("%5.1f,%c",mm.b,mm.d); } 程序最后一行的输出是我们无法预料的。其原因是连续做mm.d='W';mm.b=34.2;两个 连续的赋值语句最终使共用体变量的成员mm.b所占四字节被写入34.2,而写入的字符被覆盖 了,输出的字符变成了符号“=”。事实上,字符的输出是无法得知的
7、,由写入内存的数据决 定。 例子虽然很简单,但却说明了共用体变量的正确用法。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 [例7-10]通过共用体成员显示其在内存的存储情况。 定义一个名为time的结构体,再定义共用体dig: structtime { intyear;/*年*/ intmonth;/*月*/ i
8、ntday;/*日*/ }; uniondig { structtimedata;/*嵌套的结构体类型*/ charbyte[6]; }; 假定共用体的成员在内存的存储是从地址1000单元开始存放,整个共用体类型需占存储空间6个字节,即共用体dig的成员data与byte共用这6个字节的存储空间,存储空
此文档下载收益归作者所有