资源描述:
《C语言的结构体和共用体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、§11.1概述C语言的数据类型:基本类型:intcharfloatdouble指针类型构造类型:数组、结构体、共用体枚举类型空类型void结构体(structure)是一种数据类型,它把互相联系的数据组合成一个整体。例、一个学生的学号、姓名、性别、年龄、成绩、地址,是互相联系的数据,在C语言中用“结构体(structure)”来定义。structstudent{intnum;/*学号*/charname[20];/*姓名*/charsex;/*性别*/intage;/*年龄*/floatscore;/*成绩*
2、/charaddr[30];/*地址*/};§11.2结构体变量的定义结构体是一种数据类型(像int、char、flaot数据类型一样),可以用它定义变量。用结构体类型定义变量的方式有三种:一、先定义结构体类型,再定义变量例、structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstudent1,student2;结构体变量中的各成员,在内存中顺序存放。结构体变量所占内存大小用运算符siz
3、eof计算。例、printf("%d%d",sizeof(structstudent),sizeof(student1));为了方便,可以这样定义结构体变量:#defineSTUDENTstructstudentSTUDENT{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};STUDENTstudent1,student2;二、在定义类型的同时定义变量structstudent{intnum;charname[20];charsex
4、;intage;floatscore;charaddr[30];}student1,student2;三、直接定义变量struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;四、成员是另一个结构体变量structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];charsex;intage;structdatebirt
5、hday;charaddr[30];}student1,student2;§11.3结构体变量的引用1、一般情况下,不能将一个结构体变量作为整体来引用,只能引用其中的成员(分量)。引用结构体成员的方式:结构体变量名.成员名.是“成员运算符”例1、printf("%d,%s,%c,%d,%f,%s",student1.num,student1.name,student1.sex,student1.age,student1.score,sutdent1.addr);printf("%d,%s,%c,%d,%f,%
6、s",student1);例2、student2.score=student1.score;sum=student1.score+student2.score;student1.age++;++student1.age;例3、scanf("%d",&student1.num);2、当成员是另一个结构体变量时,应一级一级地引用成员。例4、student1.num;student1.name;student1.birthday.month;student1.birthday.day;student1.birthd
7、ay.year;3、仅在以下两种情况下,可以把结构体变量作为一个整体来访问。(1)结构体变量整体赋值,例、student2=student1;(2)取结构体变量地址,例、printf("%x",&student1);返回本章目录§11.4结构体变量的初始化structstudent{longintnum;charname[20];charsex;charaddr[20];}a={89031,"LiLin",'M',"123BeijingRoad"};注意:不能在结构体内赋初值。例、structstudent{
8、longintnum=89031;charname[20]="LiLin";charsex='M';charaddr[30]="123BejingRoad";}a;§11.5结构体数组一、结构体数组的定义structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu[3];二、结构