C语言程序设计 方少卿主编 铁道C第8章(修订版)

C语言程序设计 方少卿主编 铁道C第8章(修订版)

ID:40238519

大小:1.29 MB

页数:45页

时间:2019-07-28

C语言程序设计 方少卿主编 铁道C第8章(修订版)_第1页
C语言程序设计 方少卿主编 铁道C第8章(修订版)_第2页
C语言程序设计 方少卿主编 铁道C第8章(修订版)_第3页
C语言程序设计 方少卿主编 铁道C第8章(修订版)_第4页
C语言程序设计 方少卿主编 铁道C第8章(修订版)_第5页
资源描述:

《C语言程序设计 方少卿主编 铁道C第8章(修订版)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章结构体、共用体与枚举8.0结构体引例8.1定义结构体的一般形式8.2结构体类型变量的定义8.3结构体变量成员的引用方法8.4结构体变量的初始化8.5结构体数组的定义8.6结构体指针变量的定义和使用8.7动态存储分配8.8链表8.9共用体类型8.10枚举类型8.11类型定义符typedef8.12复习指南18.0结构体引例C语言的结构体类型相当于其它高级语言的“记录”。结构体类型的变量可以拥有不同数据类型的成员,是不同数据类型成员的集合。结构体在C语言中相当重要,与指针同属C语言的精华。【引例】设计一个学生的情况登记表,要求有学号(number)、姓

2、名(name)、性别(sex)、年龄(age)、家庭地址(address)和三门课成绩(achie)。三门课是语文(chinese)、数学(math)和英语(english)。如图8-1所示。238.1定义结构体的一般形式struct结构体名{类型标识符成员1;类型标识符成员2;…类型标识符成员n;};各个成员可以是基本类型,也可以是结构体类型,即结构体类型定义允许嵌套。有的结构体可能包含很多成员,有些成员本身也可能很复杂4例如,图8-1中表示两个结构体,一个是student结构体,另一个是score结构体。用C语言来表示这种结构体的定义如下:struc

3、tscore{floatchinese;floatmath;floatenglish;};structstudent{intnumber;charname[9];charsex;intage;charaddress[30];structscoreachie;/*achie是structscore类型*/};58.2结构体类型变量的定义C语言的结构体定义就像C语言的保留字int一样,需要指定结构体类型的变量,才能对结构体中各个成员进行操作。结构体类型变量的定义形式:(1)先定义结构体类型,再定义结构体类型变量。例如:structstudentNa,Nb,N

4、c;/*结构体的定义见【引例】*/(2)定义结构体类型同时定义结构体类型变量。6structscore{floatchinese;floatmath;floatenglish;};structstudent{intnumber;charname[9];charsex;intage;charaddress[30];structscoreachie;/*achie是structscore类型*/}Na,Nb,Nc;7(3)直接定义无结构体名的结构体类型变量。struct{intnumber;charname[9];charsex;intage;charadd

5、ress[30];structscoreachie;/*achie是structscore类型*/}Na,Nb,Nc;structscore{floatchinese;floatmath;floatenglish;};88.3结构体变量成员的引用方法C语言规定引用的形式为:结构体类型变量名.成员名例如:Na.age表示结构体变量Na中的age成员,该成员在结构体定义中定义为整型变量,这样可以对该成员进行赋值、算术运算等操作。右边的例子都是合法的:Na.age=18;++Na.age;Total=Na.age+Nb.age+Nc.age;Nb.age=Na

6、.age;strcpy(Na.address,"中山南路");strcpy(Nb.address,Na.address);Nc=Na;/*C语言允许将一个结构体变量直接赋值给另一个具有相同结构体的结构变量。*/9如果成员本身又是一个结构体类型,则要用若干个成员运算(.),一级一级地找到最低的一级成员。C语言中只能对最低级的成员进行赋值、存取以及运算。例如:Na.achie.chinese=70.0;Na.achie.math=86.0;Nc.achie.english=97.0;Na.achie.english=Nc.achie.english;Nb.a

7、chie=Na.achie;scanf("%f",&Nc.achie.chinese);scanf("%d",&Na.age);scanf("%s",&Nb.address);108.4结构体变量的初始化(1)对外部存储类型的结构体变量进行初始化。structscore{floatchinese;floatmath;floatenglish;};structstudent{intnumber;charname[9];charsex;intage;charaddress[30];structscoreachie;/*achie是structscore类型*

8、/}Na={10001,"wangli",'M',19,"zhongshanro

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

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

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