C语言程序设计(第二版)任正云 第9章结构体和共用体

C语言程序设计(第二版)任正云 第9章结构体和共用体

ID:40238650

大小:1.07 MB

页数:46页

时间:2019-07-28

C语言程序设计(第二版)任正云 第9章结构体和共用体_第1页
C语言程序设计(第二版)任正云 第9章结构体和共用体_第2页
C语言程序设计(第二版)任正云 第9章结构体和共用体_第3页
C语言程序设计(第二版)任正云 第9章结构体和共用体_第4页
C语言程序设计(第二版)任正云 第9章结构体和共用体_第5页
资源描述:

《C语言程序设计(第二版)任正云 第9章结构体和共用体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章结构体和共用体结构体和共用体(也称联合)是程序设计中常用的数据类型,常用于描述实际问题中具有多个不同数据成员的一类实体。9.1概述9.2结构体与结构体类型变量9.3结构体数组9.4指向结构体类型数据的指针9.5动态存储分配与链表9.6共用体9.7枚举类型9.8用Typedef定义类型9.9应用实例——学生成绩管理系统9.1概述家庭住址(字符串)身份证号(长整型)性别(字符型)年龄(整型)姓名(字符串)学号(长整型)在实际应用中,人们经常需要将不同类型的数据作为一个整体来处理。比如:要描述一

2、个学生的基本情况,就需要记录他的学号、姓名、年龄、性别、身份证号、家庭住址等信息。9.2结构体与结构体类型变量在C语言中,结构体是不同数据类型的集合。在使用结构体这种数据类型之前,必须要先对其进行定义,对结构体的定义包括结构体类型和结构体变量的定义两部分。9.2.1结构体类型的定义声明一个结构体类型的一般形式为:struct结构体名{成员列表};structstudent{longnum;charname[20];intage;charsex;longcertificate;charaddres

3、s[40];};E-mail(字符串)电话号码(长整型)邮编(长整型)家庭住址(字符串)部门(字符串)姓名(字符串)【例9.1】如果通讯地址表由下面的项目构成:structaddr{charname[20];/*姓名*/chardepartment[30];/*部门*/charaddress[30];/*家庭住址*/longbox;/*邮编*/longphone;/*电话号码*/charemail[30];/*E-mail*/};9.2.2结构体类型变量的定义应当定义结构体类型的变量,并在其中存

4、放具体的数据。定义方法有以下三种:(1)先定义结构体类型再定义结构体变量。structstudent{intnum;charname[20];floatscore;};structstudentboy1,boy2;(2)在定义结构体类型的同时定义结构体变量。一般形式为:struct结构名{结构体成员表列}变量名表列;structstudent{intnum;charname[20];floatscore;}boy1,boy2;(3)直接定义结构体类型变量。一般形式为:struct{结构体成员表列

5、}变量名表列;struct{intnum;charname[20];floatscorce;}boy1,boy2;9.2.2结构体类型变量的定义有关结构体类型需要说明的是:1)结构体类型与变量的概念。只能对变量进行操作(赋值、存取或运算),而不能对一个结构体类型进行操作。编译时,只对变量分配内存空间,对结构体类型不分配内存空间。2)对结构体中的成员可以单独使用,它的作用与地位相当于普通变量。3)结构体的成员也可以是一个结构体变量,从而构成嵌套结构。structdate/*说明一个结构体类型*/{

6、intmonth;intday;intyear;};structstudent{intnum;charname[20];charsex;intage;structdatebirthday;/*birthday是structdate类型*/charaddress[20];}student1,student2;numnamesexagebirthdayaddressmonthdayyear4)结构体中的成员名可以与程序中的变量名相同,但二者代表不同的对象。9.2.3结构体变量的引用结构体变量也可以像

7、其他类型的变量一样赋值、存取或运算,所不同的是结构体变量必须以成员作为基本单位来参与。结构体成员的表示方法为:结构体变量名.成员名例如:student1.num表示第一个人的学号;student2.sex表示第二个人的性别。关于引用结构体成员有几点说明:(1)如果结构体成员本身又属于一个结构体类型,则需要若干个成员运算符,一级一级来找到最低的成员,且只能对最低级的成员进行赋值、存取或运算student1.monthstudent1.birthday.daystudent1.birthday.ye

8、ar(2)结构体变量中各成员的使用方法与普通的简单类型变量完全相同。student1.sex=student2.sex;student1.num++;(3)不能将结构体变量作为一个整体进行输入和输出。假设已将student1和student2定义为结构体类型structstudent的变量,并且各成员已赋值,则不能这样引用:printf("%d,%s,%c,%d,%f,%s",student1);只能对结构体变量中的成员分别进行输入、输出或赋值。例如:student1.num=1001;仅在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。