第10章结构与共用讲述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
引入结构的必要性 我们以前用过的基本类型有: int 、float 、char、double 假如要开发一个学生成绩管理系统,那么我们需要处理学生的班级、学号、姓名、性别、成绩等信息。 int num; //学号 char name[20]; //姓名 char sex; //性别 float score; //成绩 10.2 使用结构 由于结构是一种构造数据类型,所以在使用之前必须先定义结构,也就是定义结构类型。定义完结构之后,才可以声明结构类型的变量。因此,定义一个结构相当于定义了一个新的数据类型。 10.2.1 定义结构 struct student { int num; char name[20]; char sex; float score; }; 在这个结构定义中,结构名为student,该结构由4个成员组成。 第一个成员为num,表示学生的学号,类型为整型;第二个成员为name,表示学生的姓名,类型为字符数组;第三个成员为sex,表示学生的性别,类型为字符型;第四个成员为score,表示学生的成绩,类型为实型。应注意在括号后的分号是不可少的。 注意:结构定义以分号结尾。 10.2.2 声明结构变量 (1)先定义结构,再声明结构变量 struct student { int num; char name[20]; char sex; float score; }; struct student s1,s2,s3; (2)在定义结构的同时声明结构变量 struct student { int num; char name[20]; char sex; float score; }s1,s2,s3; 这种声明方法需要注意在结构定义的右括号“}”后不要直接加分号,而是变量声明结束后再加分号。 (3)直接声明结构变量 struct { int num; char name[20]; char sex; float score; }s1,s2,s3; 2.结构嵌套 struct date { int year; int month; int day; }; struct student { int num; char name[20]; char sex; struct date bir; /*出生日期*/ float score; }s4,s5; 3.成员运算符 对结构变量的使用更多的是通过其中的成员来实现的。 表示结构变量成员的一般形式是: 结构变量名.成员名 s3.num,s4.sex。 s4.bir.month表示学生s1出生的月份。 10.2.3 结构变量初始化 与简单类型变量和数组一样,结构变量也可以在声明时直接初始化。 struct student { int num; char name[20]; char sex; float score; }; struct student s1={3,zhangchsh,F,85.5}; 10.2.4 结构变量赋值 结构变量的赋值就是对其各成员赋值,可用赋值语句或输入语句来完成。 例如: s1.num=1; strcpy(s1.name,zhangchsh); s1.sex=M; printf(请输入成绩:\n); scanf(%f,s1.score); 注意:如果直接写成:s1={1,zhangchsh,M,85.5}是错误的。 struct student { int num; char name[20]; char sex; float score; }; void main() { struct student s1={1,李木子,M,87}; struct student s2={2,宛伟东,M,92}; struct student s3={3,秦思思,F,80}; printf(大于等于90分的学生信息如下:\n); printf(学号\t姓名\t性别\t成绩\n); if(s1.score=90) printf(%d\t%s\t%c\t%6.2f\n,s1.num,s1.name,s1.sex,s1.score); if(s2.score=90) printf(%

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档