欢迎来到天天文库
浏览记录
ID:46923003
大小:855.00 KB
页数:26页
时间:2019-11-30
《结构体和枚举类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十三章结构体和枚举类型回顾2-1预处理供能是C语言特有的功能,它是对源程序正式编译前由预处理程序完成的,程序员可以在程序中对预处理命令来调用这个功能。宏定义是用一个宏名来表示一个文本,这个文本可以是常量、变量或表达式,在宏调用中将用该文本替换宏名。宏定义可以带有参数,宏调用时是以实参替换形参,而不是“值传送”。2回顾2-2为避免替换出错,宏定义中字符串应加括号,字符串中出现的形参两边也应加括号。文件包含可以用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。条件编译允许程序只编译程序中满足条件
2、的程序段,因而生成目标代码较短,从而可以减少内存的开销提高程序效率。使用预处理功能便于程序的修改、预读、移植和调试,也便于实现模块化程序设计。3目标理解结构体和枚举类型的定义掌握结构体和枚举类型的用法4结构简介存储一个班级中5名学员的信息(学号、姓名、性别和成绩)问题:I.使用数组MaryJohnPeterRoseKateFMFMF01020304058978.56797.564解决方案:scorenumsexname不能建立数组间的关系II.使用多维数组MaryJohnPeterRoseKateFMFMF0
3、1020304058978.56797.564C语言不允许一个数组包含多种数据类型III.使用结构numnamesexscoreC语言引入了称为结构的数据存储方式“结构”是一种构造数据类型,它是由若干数据项组合而成的复杂数据对象,这些数据项称为结构的成员。5定义结构2-1structstructurename{datatypevariable1;datatypevariable2;...};结构成员{};结构名structstudentintnum;charname[20];charsex;定义结构float
4、score;C语言中的有效数据类型成员列表6定义结构2-2structstudent{intnum;charname[20];charsex;floatscore;};numnamesexstudent结构定义并不预留内存结构定义放置在程序的开始部分,位于头文件声明之后score结构定义仅描述了一个结构的形式。如果要在程序里使用结构,需要声明结构变量。7声明结构变量声明结构变量structstudent{intnum;charname[20];charsex;floatscore;};structstuden
5、tstudent1,student2;I.先定义结构,再声明结构变量structstudent{intnum;charname[20];charsex;floatscore;}student1,student2;II.在定义结构类型的同时声明结构变量struct{intnum;charname[20];charsex;floatscore;}student1,student2;III.直接声明结构变量声明一个类型为student结构的变量,将会为该变量分配内存,大小是大于或等于其所有成员变量的大小之和。8st
6、ructdate{intmonth;intday;intyear;};嵌套结构struct{intnum;charname[20];charsex;structdatebirthday;floatscore;}student1,student2;表示结构变量成员的一般形式是:结构变量名.成员名例如:student1.num、student2.sex、student1.birthday.month9内存student3structstudentstudent3={3,"YaoMing",'M',90.5};结构
7、变量初始化3YaoMingM赋值的顺序应与成员声明时的顺序一样;允许初始化语句中的值的数目比结构成员数目少。student3.numstudent3.namestudent3.sex90.5student3.score10student1student1.num=1;student1.name="ZhangZiLiang";student1.sex=’M’;printf("请输入成绩:");scanf("%f",&student1.score);结构变量赋值1ZhangZiLiangM用输入语句或赋值语句
8、来给结构变量的各个成员赋值7878student2=student1;student21ZhangZiLiangM7811问题描述:根据学员的成绩,输出不及格学员的详细信息。使用结构示例#includestructstudent{intnum;//学号char*name;//姓名charsex;//性别floatscore;//成绩};voidmain(){staticstruct
此文档下载收益归作者所有