欢迎来到天天文库
浏览记录
ID:46507973
大小:299.00 KB
页数:20页
时间:2019-11-24
《结构体、共同体和枚举型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章结构体、共同体和枚举型主讲:李娟概 述有时需要将不同类型的数据组合成一个有机的整体如:一个学生的信息:学号(num)姓名(name)性别(sex)年龄(age)成绩(score)家庭地址(addr)10010limingM2098zhengzhounumnamesexagescoreaddr结构体:若干个数据类型不同的(也可以相同)的数据项的一个组合结构体是一种数据结构,它需要用户根据自己的需要、按某种规则定义,即定义结构体类型7.1结构体的定义及使用7.1.1、结构类型定义的一般形式是:struct结构体名{数据类型成员名1;数据类型成员名2;……数
2、据类型成员名n;};如:structstudent{longnum;charname[20];charsex;intage;floatscore;charaddr[30];};struct是关键字,表示是结构体类型;student是结构体类型名结构体中的各个成员形式:类型 成员名7.1.2定义结构体变量的方法如:structstudent{longnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstudent1,student2;1.先声明结构体类型,再定义变量一般
3、形式:struct结构体类型名{成员表;};struct结构体类型名变量名表;注意:定义结构体变量后,系统为变量分配内存单元,student1和student2各占68个字节,是各成员所占内存空间的总和。7.1.2定义结构体变量的方法如:structstudent{longnum;charname[20];charsex;intage;floatscore;charaddr[30];};student1,student2;2.在声明结构类型的同时定义结构体变量一般形式:struct结构体名{成员列表;}变量名表;7.1.2定义结构体变量的方法如:struct
4、{longnum;charname[20];charsex;intage;floatscore;charaddr[30];};student1,student2;3.利用无名结构类型定义变量一般形式:struct{成员表;}变量名表;7.1.2定义结构体变量的方法一、类型与变量的区别:类型是先定义结构体类型,然后定义变量。类型不分配空间,变量分配空间二、结构体的嵌套定义结构体的成员又可以是结构体变量注意:如:structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];chars
5、ex;intage;floatscore;structdatebirthday;charaddr[20];}stu1;7.1.2定义结构体变量的方法三、成员名与变量名可以相同注意:7.1.3结构体变量的使用结构体成员的引用形式:结构体变量名.成员名成员运算符运算级别最高规则:1、不能将结构体变量作为一个整体进行赋值、输出,只能对结构体中的各个成员分别进行赋值输入输出操作;但允许将一个结构体变量直接赋给另一个具有相同结构的结构体变量.如:student1.num=10000;student1.age=25;student2=student1;7.1.3结构体变
6、量的使用规则:2、如果是嵌套定义,用若干个成员运算符,一级一级地找到最低的一级成员。如:student1.num;student1.name;student1.birthday.day;student1.birthday.month;student1.birthday.year;7.1.3结构体变量的使用规则:3、结构体成员变量可以像普通变量一样使用、运算如:student2.score=student1.score;sum=student2.score+student1.score;student1.age++;++student1.age;4、可以引用成
7、员的地址,也可以引用结构体变量的地址.如:scanf(“%d”,&student1.age);输入student1.age的值.7.1.4结构体变量的初始化和其它变量一样,在定义结构体变量时赋初值如:structstudent{longnum;charname[20];charsex;intage;floatscore;charaddr[30];}who={991105,“Zhanghua”,’M’,20,87.5,”zhengzhou”};一般形式:struct结构体名{成员列表;}变量名={初始数据表};等价于:who.num=991105;strcpy
8、(who.name,“Zhanghua”);Who.
此文档下载收益归作者所有