当前位置:文档之家› 嵌入式C程序设计基础-第6章-结构体、共用体、枚举类型

嵌入式C程序设计基础-第6章-结构体、共用体、枚举类型


C语言程序设计
第6章 结构体、共用体、枚举类型
【学习内容】
【学习目标】
6.1 结构体类型概述
1.掌握结构体类型的Байду номын сангаас明方法;
6.2 结构体变量
2.掌握结构体变量的定义、初始化及成员
6.3 结构体数组
引用方法;
6.4 结构体指针
3.掌握结构体数组及应用;
6.5 共用体类型
4.掌握结构体指针及应用;
6.6 枚举类型
本书可作为高等院校电子信息类、计算机类、自动化类、机电 类专业的C语言教材,也可供从事嵌入式系统与物联网技术开发的 工程技术人员参考。
C语言程序设计
教学内容:
第1章:C语言语法基础 第2章:C程序设计基础 第3章:数组 第4章:函数 第5章:指针 第6章:结构体、共用体、枚举类型 第7章:文件 第8章:嵌入式技术基础实践方法
【例6.1】结构体变量的初始化和引用。
C语言程序设计
6.3 结构体数组
6.3.1一定个义结构结体构变体量数可组以存的放方一法名学生的信息,而结构体数组可以存放多名学生的
信息,结构体数组中的每个元素都是一个结构体类型的数据。
定义的结构体数组stu,共有5个元素,stu[0]~stu[4]。每个数组元素都是struct Student结构体类型的。
这种方式,声明类型和定义变量一起 进行,能直接看到结构体的结构,较为直 观,在编写小程序时常用此方法。
C语言程序设计
6.2 结构体变量
6.2.1 定义结构体变量的方法
3、不指定结构体名而直接定义结构体变量
这种方式,由于没有结构体名,因此 不能再用此结构体类型去定义其他变量, 实际应用较少。
C语言程序设计
C语言程序设计
6.4 结构体指针
6.4.1结指构体向指结针构是体用变来指量向的结指构针体数据(结构体变量或结构体数组元素)的指针,
若把一个结构体数据的起始地址赋给一个指针变量,则该指针变量就指向这个结构 体数定据义。结构体指针变量的一般形式为:
struct 结构体名 *结构体指针变量名;
例如: struct Student *pstu; 指针变量pstu就可以用来指向struct Student类型的变量或数组元素。
C语言程序设计
6.2 结构体变量
6.2.3 结构体变量的引用
在定义结构体变量以后,便可引用该变量。C允许具有相同类型的结构体变量相互赋值; 而对结构体变量的输入、输出及各种运算都是通过结构体变量的成员来实现的。
结构体变量成员的引用形式: 结构体变量名.成员名
例如: stu1.stu_ID stu2.sex
即第一名学生的学号 即第二名学生的性别
成员(分量)运算符 “.”的优先级最高。stu1.stu_ID作为一个整体看待。
若成员本身又是一个结构体类型,则必须逐级找到最低级的成员才能使用。 例如:stu1.birthday.month 为第1名学生出生的月份
C语言程序设计
6.2 结构体变量
6.2.3 结构体变量的引用
C语言程序设计
C语言程序设计
C语言程序设计
C语言既是通用计算机软件设计的基础语言,也是当前嵌入式 软件设计的主流语言。
本书特色:C语言知识点描述言简意赅,例题浅显易懂,突出 模块化程序设计思想,注重软件设计工程规范。内容组织由简到 难、循序渐进,灵活采用对比法、类比法、启发法、实验法等多 种教学方法。为了体现C程序模块化设计的具体应用,给出了基于 构件化的嵌入式软件设计思想、方法和应用案例。
6.2 结构体变量
6.2.1 定义结构体变量的方法
说明:
(12)结构体中的成员名也可与以程是序一中个其结它构变体量类同型名的,变但量二。者例代如表:不同的对象,互不干扰。
C语言程序设计
6.2 结构体变量
6.2.2 结构体变量的初始化
和其他类型的变量一样,结构体变量可以在定义时进行初始化赋值。初始化 列表是用花括号括起来的一些常量,这些常量依次赋给结构体变量中的成员。
为解决这一问题,C语言允许用户自己建立由不同类型(或同类型)数据组成 的组合型数据结构——“结构体”。
C语言程序设计
6.2 结构体变量
6.2.声1 明定的义结构结体构类体型,变仅量相的当方于一法个模型,其中并无具体数据,系统并不对其分配内存空
间定。义1、系结统构先只体声对类明变型结量的构或变数量体组或类分数型配组,内。再存空定间义,结因构此体为了变能量在程序中使用结构体类型的数据,应当
C语言程序设计
6.4 结构体指针
6.4.2 指向结构体数组的指针
当结构体指针变量指向结构体数组中的某个元素时,结构体指针变量的值是 该结构体数组元素的起始地址。
【例6.5】用结构体指针变量输出结构体数组。
5.掌握共用体、枚举类型及应用;
6.7 用typedef声明新类型名 6.掌握typedef声明新类型名的方法;
6.8 链表及其操作
7.掌握链表的概念及其操作方法。
C语言程序设计
6.1 结构体类型概述
前面学习的数组是将相同类型的多个数据组合在一起。 如果一名学生的信息:学号为整型,姓名为字符型,性别为字符型,成绩为实型,能 否用数组存放该学生的信息呢?
C语言程序设计
6.4 结构体指针
6.4.1 指向结构体变量的指针
【例6.4】通过3种方式访问结构体变量中的成员。
若结构体指针变量指向了一结构体数据(结 构体变量或结构体数组元素),则访问结构体 数据的成员有3种形式:
(1)结构体变量名.成员名 或 结构体数组元 素名.成员名
(2)(*结构体指针变量名).成员名 (3)结构体指针变量名->成员名
C语言程序设计
6.3 结构体数组
6.3.2 结构体数组的初始化
对结构体数组,可以进行初始化赋值。 例如:
C语言程序设计
6.3 结构体数组
6.3.2 结构体数组的应用
【例6.2】计算学生的平均成绩,并统计不及格的人数。
6.3.2 结构体数组的应用
【例6.3】建立同学通讯录。
C语言程序设计
6.3 结构体数组
这种方式,声明类型和定义变量分离,在 声明类型后可以随时定义变量,使用灵活。
定义的两个变量stu1和stu2都是struct Student结构体类型的,都具有struct Student类 型的结构:
C语言程序设计
6.2 结构体变量
6.2.1 定义结构体变量的方法
2、在声明结构体类型的同时定义结构体变量
相关主题