《C语言》课程资源_C语言_12.结构体与共用体

第12章 结构体与共用体 第一节 结构体类型概述 一、结构体的概念及其定义: 1、 看一个例子: 每一个学生的可能有以下数据(属性): 学号、姓名、性别、年龄、成绩、家庭地址等。 所有这些数据都是和某一学生相联系。 (I)假如将其分别定为num,name,sex,age,score,addr这些简单 变量,则它们之间相互独立,难以反映其内在的联系。 (2)需要将不同类型的数据组合成一个整体,以便于统一引用。 也就是说,希望将其合并成一个组合项,在这个组合项中包含若 干个类型不同(当然也可以相同)的数据项。 跳转到第一页
跳转到第一页 第12章 结构体与共用体 第一节 结构体类型概述 一、结构体的概念及其定义: 1、 看一个例子: 每一个学生的可能有以下数据(属性): 学号、姓名、性别、年龄、成绩、家庭地址等。 所有这些数据都是和某一学生相联系 。 (1)假如将其分别定为num,name,sex,age,score,addr这些简单 变量,则它们之间相互独立,难以反映其内在的联系。 (2)需要将不同类型的数据组合成一个整体,以便于统一引用。 也就是说,希望将其合并成一个组合项,在这个组合项中包含若 干个类型不同(当然也可以相同)的数据项

2、结构体(structure.) C语言提供了这样一种数据结构,它相当于其它高级 语言中的“记录” num name sex age c score addr 10010 LiFun M 18 87.5 Beijing struct student int num; char name [20]; char sex; int age; float 。 score; char addr[30]; } 跳转到第一页
跳转到第一页 2、结构体(structure) C语言提供了这样一种数据结构,它相当于其它高级 语言中的“记录” 。 num name sex age c_score addr 10010 LiFun M 18 87.5 Beijing struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };

struct student表示这是一个“结构体类型”, 它包括num,name,age,score,addr等不同类型的数据项 3、结构体类型定义的语法格式: struct结构体名 {类型标识符 成员名: } 花括号内是该结构体中的各个成员(或称分量),由 它们组成一个结构体。对各成员都应进行类型说明,即 结构体类型特点及注意事项: 定义一个结构体类型,系统并未为其分配内存单元。 跳转到第一页
跳转到第一页 struct student表示这是一个“结构体类型” , 它包括num,name,age,score,addr等不同类型的数据项 3、结构体类型定义的语法格式: struct 结构体名 {类型标识符 成员名; . }; 花括号内是该结构体中的各个成员(或称分量),由 它们组成一个结构体。对各成员都应进行类型说明,即 结构体类型特点及注意事项: 定义一个结构体类型,系统并未为其分配内存单元

第二节 结构体类型变量定义和引用 一、定义结构体类型变量的方法: 1、在定义结构体类型之后,把变量定义为该类型: struct student student1,str+ 2、在定义结构体类型的同时定义该: struct time +name,20个字节 int hour; int minute; →age,2个字节 →gender,2个字节 int second; →class,2个字节 →grade,2个字节 last,now,future; 跳转到第一页
跳转到第一页 第二节 结构体类型变量定义和引用 一、定义结构体类型变量的方法: 1、在定义结构体类型之后,把变量定义为该类型: struct student student1,student2; 2、在定义结构体类型的同时定义该类型变量: struct time { int hour; int minute; int second; }last,now,future;

struct int hour; int minute; int second; }last,now,future; 注意:(1)结构体变量具有结构体类型的特征。 (2)结构体可以嵌套。 num name birthday year month day 跳转到第一页
跳转到第一页 struct { int hour; int minute; int second; }last,now,future; 注意:(1)结构体变量具有结构体类型的特征。 (2)结构体可以嵌套。 num name birthday year month day

二、结构体类型变量的初始化: 类似于数组的初始化。 struct int hour; int minute; int second; }1ast={12,30,0}; 三、结构体类型变量的引用: 1、引用某一元素中的一个成员:(成员运算符) Last.hour=10;student [i].num=00622; 2、结构体变量间可以整体赋值stu[门=stu[i+1] 数组中的各元素之间可以相互赋值。a[叮=a[+] 跳转到第一页
跳转到第一页 二、结构体类型变量的初始化: 类似于数组的初始化。 struct { int hour; int minute; int second; }last={12,30,0}; 三、结构体类型变量的引用: 1、引用某一元素中的一个成员:(成员运算符) Last.hour=10; student[i].num=00622; 2、结构体变量间可以整体赋值 stu[i]=stu[i+1] 数组中的各元素之间可以相互赋值。 a[i]=a[i+1]

【例12.1】.用结构体类型变量存储学生的基本 信意,并输出。 #include struct student *定义结构体类型*/ char num [10]; 赋值 char name[20]; char sex[2]; float score; }; main() struct student stu1; gets(stu1.num); *输入数据*/ gets(stu1.name); gets(stu1.sex); scanf("%f",&stu1.score); printf("%s,%s,%s,%fn", stu1.num,stu1.name,stu1.sex,stu1.score); } 跳转到第一页
跳转到第一页 【例12.1】 用结构体类型变量存储学生的基本 信息,并输出。 #include struct student /*定义结构体类型*/ { char num[10]; char name[20]; char sex[2]; float score; }; main( ) { struct student stu1; gets(stu1.num); /*输入数据*/ gets(stu1.name); gets(stu1.sex); scanf("%f", &stu1.score); printf("%s,%s,%s,%f\n", stu1.num,stu1.name,stu1.sex,stu1.score); } 赋值

12.3结构体数组 一个学生的基本数据可以用一个结构体变量 来存储,而多个学生的基本数据侧可以用一个结 构体数组进行存储。 跳转到第一页
跳转到第一页 12.3 结构体数组 一个学生的基本数据可以用一个结构体变量 来存储,而多个学生的基本数据则可以用一个结 构体数组进行存储

一、 结构体数组的定义 例如 struct student char num[10]; char name[20]; char sex[2]; int age; }; struct student stu[2]; :stu是具有2个元素的结构体数组*/ 跳转到第一页
跳转到第一页 一、结构体数组的定义 例如 struct student { char num[10]; char name[20]; char sex[2]; int age; }; struct student stu[2]; /* stu是具有2个元素的结构体数组*/

二、 结构体数组的初始化 结构体数组可以在定义时赋初值。 例如: struct student { char num[10]; char name[20]; char sex[2]; int age; }; struct student stu[2]={K"1001","王鹏","男 ",18,"1002","李林","女",19} 跳转到第一页
跳转到第一页 二、结构体数组的初始化 结构体数组可以在定义时赋初值。 例如: struct student { char num[10]; char name[20]; char sex[2]; int age; }; struct student stu[2]={{ "1001", "王鹏","男 ",18},{"1002", "李林","女",19}};
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言》课程资源_C语言课件_C语言课件第04章选择程序.ppt
- 《C语言》课程资源_C语言课件_C语言课件第03章顺序程序.ppt
- 《C语言》课程资源_C语言课件_C语言课件第02章数据与运算.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿,J2EE WEB,JSP)第7章EL语言2016-4-13.ppt.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿,J2EE WEB,JSP)第6章 创建Web监听和过滤程序.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿,J2EE WEB,JSP)第5章 Servlet技术.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿,J2EE WEB,JSP)第3章 内建对象.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿,J2EE WEB,JSP)第2章 JSP页面构成.ppt
- 山东理工大学:《JAVA语言程序设计》课程教学课件(PPT讲稿,J2EE WEB,JSP)第1章 Java Web入门.ppt
- 《JAVA 高级编程》课程实验指导书.doc
- 《IT项目管理》课程教学课件(讲稿)9-团队干系人沟通管理.pdf
- 《IT项目管理》课程教学课件(讲稿)8-软件配置管理.pdf
- 《IT项目管理》课程教学课件(讲稿)7-软件质量管理.pdf
- 《IT项目管理》课程教学课件(讲稿)6-软件项目时间管理v2.pdf
- 《IT项目管理》课程教学课件(讲稿)5-软件项目成本管理.pdf
- 《IT项目管理》课程教学课件(讲稿)4-软件项目范围管理.pdf
- 《IT项目管理》课程教学课件(讲稿)3-项目初始-生存期.pdf
- 《IT项目管理》课程教学课件(讲稿)2-项目初始——项目确立.pdf
- 《IT项目管理》课程教学课件(讲稿)2.2-项目辅助计划执行控制.pdf
- 《IT项目管理》课程教学课件(讲稿)2.1-项目核心计划执行管理.pdf
- 《C语言》课程资源_C语言_13.位运算.ppt
- 《C语言》课程资源_C语言_14.文件.ppt
- 《C语言》课程资源_C语言_hanshu.ppt
- 《C语言》课程资源_C语言_jiegouti.ppt
- 《C语言》课程资源_C语言_11.编译预处理.ppt
- 《C语言》课程资源_C语言_5xunhuan.ppt
- 《C语言》课程资源_C语言_7指针.ppt
- 《C语言》课程资源_C语言_8字符串.ppt
- 《C语言》课程资源_C语言_9.函数.ppt
- 《C语言》课程资源_C语言_xunhuan.ppt
- 《C语言》课程资源_C语言_字符串.ppt
- 《C语言》课程资源_C语言_指针1.ppt
- 《C语言》课程资源_C语言_数组.ppt
- 《C语言》课程资源_C语言_数组1.ppt
- 《C语言》课程资源_C语言_数组3.ppt
- 《C语言》课程资源_C语言课件_第1章 引论.ppt
- 《C语言》课程资源_C语言课件_第2章 基本的数据与运算.ppt
- 《C语言》课程资源_C语言课件_第3章 顺序结构.ppt
- 《C语言》课程资源_C语言课件_第4章 选择结构.ppt
- 《C语言》课程资源_C语言课件_第5章 循环结构.ppt
