




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10讲 结构体,一、结构体类型 二、结构体变量 三、结构体变量的引用 四、结构体变量的初始化 五、结构体数组,结构体类型的数据由数目固定,类型不同的若干成员构成,在内存中占有一段连续的存储空间。不同的结构体类型其成员不同。,在程序中使用结构体,必须先做两项工作: 1)定义结构体类型:描述该结构体的成员名称、成员类型。 2)定义结构体类型变量:根据结构体类型位为定义的结构体变量分配存储空间。,一、结构体类型,结构体类型声明的格式为:,struct 结构体名 类型名1 结构成员名1 ; 类型名2 结构成员名2 ; 类型名n 结构成员名n ; ;,结构体类型声明的格式说明:,struct:关键字,
2、是定义结构体类型的标志。 结构体名:用户定义的结构体类型名,其命名规则同变量名。 类型名1n:说明了结构成员的类型。 结构成员名1n:用户定义的一个或多个结构体成员的名称,其命名规则同变量名。多个同类型的成员彼此间用逗号分隔。,定义举例,(1) struct date int year, month, day ; ;,(2) struct student char name8; int score2, burse ; int year, month, day ; ;,二、结构体变量,结构体类型的变量的定义方式: (1)先声明结构体类型,再定义结构体类型的变量。 (2)在声明结构体类型的同时定义
3、结构体类型的变量。 (3)直接定义结构体类型的变量。,方式(1),若事先已声明了结构体类型,那么直接用下面格式定义结构体变量。 struct 结构体名 结构体变量名;,例:struct date yesterday ; 存储形式 :,方式(2),在声明结构体类型的同时定义结构体类型的变量。定义格式为: struct 结构体名 类型名1 结构成员名1 ; 类型名2 结构成员名2 ; 类型名n 结构成员名n ; 结构体变量名表 ;,例:struct student char name8; int score2, burse ; int year, month, day ; tongxue1, go
4、ngxue2;,存储形式:,方式(3),在声明结构体类型时可以直接定义结构体变量,其定义格式为: struct 类型名1 结构成员名1 ; 类型名2 结构成员名2 ; 类型名n 结构成员名n ; 结构体变量名表 ;,例:struct birthday int year, month, day ; ; struct char name8; int score2, burse ; struct birthday csny ; tongxue1, tongxue2; 存储形式:,关于结构体的说明:,类型与变量是不同的概念,注意区分。 系统可以对变量赋值、存取、运算,而类型则不能。 编译时,系统只对变
5、量分配存贮空间,而类型则不分配 结构体中的成员(即域)也可以是一个结构体变量,即结构体的嵌套。 结构体中的成员名可以和程序中的变量同名;不同结构体中的成员名也可以同名。,三、结构体变量的引用,结构体变量的引用方式为: 结构体变量名.成员名 其中 .:为结构体成员运算符,1级运算符。,结构体变量的引用规则:,例:struct student char name8; int score2, burse; struct birthday csny ; t1,t2;,不能将结构体变量作为一个整体进行输入和输出。,scanf(%s%d%d%d%d%d%d,内嵌结构体成员的引用,必须逐层使用成员名定位,找
6、到最底层的成员。,例 t1.burse t2.csny.year。,若结构体中的成员是字符型数组时,则可将其看作是“字符串变量”,而直接引用。,例 是对成员字符数组name的整体引用。,若结构体中的成员是数值型数组时,则对该数组成员的引用,应为对该数组元素的引用。,例 t1.score0 t1.score1,四、结构体变量的初始化,格式: struct 结构体名 结构体变量名=初始化表; 特点: 对结构体变量进行初始化时,系统是按每个成员在结构体中的顺序一一对应赋初值的。,例:struct student char name8; int score2, burse; struct
7、 birthday csny; tongxue1=“张三”,98,95,1000,1983,5,23;,存储形式:,例: 结构体变量的输入与输出。,struct birthday int year, month, day ; ; struct student char name8; int score2, burse ; struct birthday csny ; ; main( ) struct student t1, t2; scanf(%s%d%d%d%d%d%d,, ,五、结构体数组,格式: struct 结构体名 结构体数组名=初始化表; struct 结构体名 类型
8、名1 结构成员名1 ; 类型名2 结构成员名2 ; 类型名n 结构成员名n ; 结构体数组名表 = 初始化表 ;,1、定义,定义结构体数组的方法和定义结构体变量的方法一样,只是必须说明其为数组。 定义结构体变量的三种方法都可以用来定义结构体数组。,(1)先定义结构体类型,再定义变量。 struct person char name20; char sex; int age; float height; ; struct person per3;,(2)定义类型的同时定义变量。 struct person char name20; char sex; int age; float height;
9、 per3;,(3)直接定义结构体类型变量,省略类型名。 struct char name20; char sex; int age; float height; per3;,2、初始化 和一般数组一样,结构体数组也可以进行初始化。 数组每个元素的初值都放在一对大括号中,括号中依次排列元素各成员的初始值。,例: struct person char name20; char sex; int age; float height; per3 = “Li ping”,M,20,175.5, “Wang ling”,F,19,162.5 “zhaohui”,M,20,176;,例题:结构体数组的引用
10、 struct birthday int year, month, day ; ; struct student char name8; int score2, burse ; struct birthday csny ; ; main( ) struct student t30; int i; for (i=0 ; i30 ; i+ ) scanf(%s%d%d%d%d%d%d,, ,例题:统计学生人数,并计算平均成绩,#define N 6 main( ) struct student char name20; char sex; int score; ; struct student stuN; int i,m_num=0,f_num=0; float average,sum=0;,for(i=0;iN;i+) printf(“Please input name :”); *输入学生信息* gets(); *输入学生成绩* printf( sex :); scanf(%c, ,for(i=0;iN;i+) *计算学生人数和总成绩* if (stu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中班折纸教学课件
- 2025年河南安阳初中学业水平考试生物试卷真题(含答案详解)
- 我们的动物朋友教学课件
- 2025年医院急救试题及答案
- 小学生童话作文教案课件
- 2025年小学科学课程标准考试测试卷及参考答案(共四套)
- 2025年新初三英语人教新版学困生专题复习《选择题》
- 工业互联网平台数字水印技术在工业互联网平台数据挖掘中的应用与数据保护研究报告
- 工业互联网平台IPv6技术升级2025年工业能源管理系统部署报告
- 会费收缴管理办法宣读
- 弱电杆线下地迁移施工方案
- 湖南省张家界市(2024年-2025年小学六年级语文)部编版期末考试((上下)学期)试卷及答案
- 餐厨垃圾处理加工厂创业项目商业计划书
- 《产房秘密早知道》课件
- 句法 课件-初升高衔接英语课程
- 中国肿瘤药物治疗相关恶心呕吐防治专家共识(2022年版)解读
- 蔬菜基地建设项目可行性研究报告
- 武进区横山桥高级中学申报四星级高中自评报告
- RB/T 228-2023食品微生物定量检测的测量不确定度评估指南
- 常见输血不良反应的诊断及处理精讲课件
- JG-T 225-2020 预应力混凝土用金属波纹管
评论
0/150
提交评论