欢迎来到天天文库
浏览记录
ID:50318191
大小:140.00 KB
页数:36页
时间:2020-03-08
《C 程序设计教程 教学课件 作者 戴水贵 敖志刚 俞海英 编著第8章 结构体和共用体.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章结构体和共用体结构体将不同类型的数据组合在一起,构成一种新的构造型数据(char、int、long、float和double等为基本型数据)。这种定义不仅仅是将不同类型的数据组合在一起,它给数据管理带来了极大的方便。例如,学生成绩表如下图(图8-1)所示:name[0]->name[1]->name[2]->name[3]->name[4]->name[5]->name[6]->name[7]->name[8]->name[9]->charname[10][7]floata[10]地址图8-1学生成绩表示意图用普通方法将成绩表排序时,除
2、交换成绩位置外,还要交换姓名的位置。引入结构体后,只要将整个结构体交换位置即可。结构体的引入为C++中类结构体(简称类)的引入打下了基础。初学者应将这部分学好,这对理解C++中类的概念是很有帮助的。8.1结构体的定义结构体的定义格式为:struct[结构体名]{<类型><成员名>;……<类型><成员名>;};其中,类型可以是基本型或构造型,结构体名可以省略。例如:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};结构体名可以省略(无名结构体)。
3、例如:struct{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};8.2结构体变量的定义(1)先定义结构体类型,再定义结构体变量:struct[结构体名]{类型成员名;类型成员名;……};struct结构体名变量名1,变量名1,…;例如structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu1,stu2;//stu1.str2为结构体变量(2)
4、定义结构体类型的同时定义结构体变量:struct[结构体名]{类型成员名;类型成员名;……}变量名1变量名1,…,;例如structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;//stu1.str2为结构体变量(3)定义无名结构体类型的同时定义结构体变量:struct{类型成员名;类型成员名;……}变量名1变量名1,…,;例如struct{intnum;charname[20];charsex;intage;floatscore;c
5、haraddr[30];}stu1,stu2;//stu1.str2为结构体变量说明:定义结构体时不占用内存,定义的结构体变量占用内存,程序中用结构体变量使用结构体。结构体可以嵌套定义,例如:structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];structdatebirthday;}stu;或structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}st
6、u;8.3结构体变量的引用结构体由很多不同类型的成员组成,因此,当要对结构体中的成员进行操作时,要用下面的方式:结构体变量名.成员名当要将一个结构体变量的值(结构体中所有成员的值),赋给另一个同类型的结构体变量时,可以象基本变量那样操作,这给实际应用带来了很大方便。例如,在对学生成绩表进行排序时,当平均成绩交换位置时,与之对应的姓名、学号和各科成绩都要交换位置。用结构体后,只要交换结构体就可以了。8.4结构体变量的初始化方式一:struct[结构体名]{类型成员名;类型成员名;……};struct结构体名结构体变量={初始数据};例如:str
7、uctstudent{intnum;charname[20];charsex;intage;charaddr[30];};structstudentstu1={1000,“王八一”,’M’,49,“南京东路120号”};方式二:struct[结构体名]{类型成员名;类型成员名;……}结构体变量={初始数据};例如:structstudent{intnum;charname[20];charsex;intage;charaddr[30];}stu1={1000,“王八一”,’M’,49,“南京东路120号”};方式三:struct{类型成员名;
8、类型成员名;……}结构体变量={初始数据};例如:struct{intnum;charname[20];charsex;intage;charaddr[30];}s
此文档下载收益归作者所有