资源描述:
《讲义结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、教学目的:介绍结构体、共用体的使用,掌握利用结构体、共用体编程。学习要求:1.熟练掌握结构体类型的定义2.熟练掌握结构体变量的定义和使用3.掌握结构体数组主要外语词汇:Structure、Union第9章结构体与共用体9.1结构体的说明和定义一、定义结构体类型:struct[结构体名]{类型名1成员名1;……类型名n成员名n;};1、一个结构体类型有其专用的标志,它由两个单词组成:第一个单词为关键字struct,第二个单词由用户指定,这二者联合起来组成一个类型名。2、系统没有预先定义结构体类型,用户需在程序中自己定义。
2、3、定义一个结构体类型只是表示这个类型的结构,这只是定义类型而不是定义变量,系统对之也不分配实际内存单元,它只反映了一种数据属性。“struct[结构体标识名]”的作用相当于“int”的作用。4、定义结构体类型时允许嵌套(最多15层)。5、结构体类型的定义有局部和全局之分。二、定义结构体类型的变量:1、先声明结构体类型再定义变量名:例:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstude
3、nt1,student2;2、在声明结构体类型的同时定义变量:例:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;3、直接定义结构体类型变量:例:struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;4、在编译时,系统对结构体变量分配实际内存单元。5、结构体成员变量也可以
4、是一个结构体变量。6、结构体成员名可以与程序中的其它变量名相同。例:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;intnum,age;9.2结构体成员的引用与结构体变量的初始化一、结构体变量的引用:1、引用结构体变量中的一个成员:结构体变量名.成员名.称为成员运算符,优先级最高。2、区分:(1)student1.num:结构体变量student1中的num成员。(2)num:简单变
5、量num。3、内嵌结构体成员的引用:必须逐层使用成员名定位。例:student1.birthday.month4、对结构体变量中的每个成员,都可以象普通变量一样,对它进行同类变量所允许的任何操作。二、结构体变量的初始化:1、所赋初值按顺序放在一对花括号中。2、不允许跳过前面的成员给后面的成员赋初值。例如:structstudent{charname[20];charsex;floatsc[4];}stud={“LiMing”,‘M’,88,76,85.5,90};3、在程序执行时利用赋值语句赋值:例:structstu
6、dent{charname[20];charsex;floatsc[4];}std;strcpy(std.name,“LiMing”);std.sex=‘M’;std.sc[0]=66;std.sc[1]=77;std.sc[2]=88;std.sc[3]=99;4、如果一个结构体类型内又嵌套了另一个结构体类型时,则初始化时仍然是对各个基本类型的成员赋初值。5、两个相同类型的结构体变量之间可以互相整体赋值。但数组之间不允许整体赋值。例:#includevoidmain(){structstudent{
7、charname[20];charsex;floatsc[4];}std1={“LiMing”,‘M’,88,76,85.5,90},std2;std2=std1;正确…}例1:9.3结构体数组结构体数组:数组中每一个元素都是一个结构体变量,数组各元素在内存中连续存放(按行存放)。一、定义结构体数组:1、先声明结构体类型再定义结构体数组:例:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentst
8、u[3];2、在声明结构体类型同时定义结构体数组:例:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu[3];3、直接定义结构体数组而不声明类型名:例:struct{intnum;charname[20];charsex;in