结构体共用体和用户定义的数据类型.pptx
全国计算机等级考试二级教程
——C语言程序设计计算中心-NEUComputingCenter敖志广
01说明一种新的类型名02typedefintINTEGER;03INTEGERm,n;04intm,n;05typedefchar*CHAR;06CHARp;07char*p;1typedef
2定义在实际问题中我们常需要把不同类型的几个数据组合起来,构成一个整体。如一个公司职员的个人信息,或学校中教师和学生的信息。以学生信息为例,它可能包括学生的学号、班级、姓名、性别、年龄、成绩等。这时原有的那些数据类型就显的有点无能为力了,所以引入一种新的数据类型----结构体。结构体是由一些逻辑相关,但数据类型不同的分量组成的一组数据。注意:用户需要先定义结构体类型,之后才能定义结构体变量注意不要忘了分号成员列表结构体类型定义形式:struct结构体类型名{数据类型成员名1;数据类型成员名2;::数据类型成员名n;};关键字用户定义的标识符
一、定义结构体变量1.先定义结构体类型,再定义变量structstudent{charname[10];intage;floats1,s2;};structstudentst1,st2;st1st2nameages1s2nameages1s2结构体变量st1和st2各自都需要20个字节的存储空间
2.定义结构体类型同时定义变量structstudent{charname[10];intage;floats1,s2;}st1,st2;3.直接定义结构体变量struct{charname[10];intage;floats1,s2;}st1,st2;4.说明:(1)结构体变量具有结构体类型的一切特征在内存中结构体变量占有一片连续的存储单元存储单元的字节数可用sizeof运算符算出printf(“%d\n”,sizeof(structstudent));printf(“%d\n”,sizeof(st1));
(2)结构体类型可以嵌套定义例:structdate{intyear;intmonth;intday;};structstud{charname[10];structdatebirthday;floats1,s2;};或:structstud{charname[10];structdate{intyear;intmonth;intday;}birthday;floats1,s2;};
3结构体变量的初始化structstudent{charname[10];intage;floatscore1,score2;}st1={“Mary”,21,78,86};structstud{charname[10];structdatebirthday;floatscore1,score2;};structstudst2={“John”,1980,11,23,89,95};structstudent{charname[10];intage;floatscore1,score2;};structstudentst3;st3={“Ma