21天学通51单片机第8章ppt课件.ppt_第1页
21天学通51单片机第8章ppt课件.ppt_第2页
21天学通51单片机第8章ppt课件.ppt_第3页
21天学通51单片机第8章ppt课件.ppt_第4页
21天学通51单片机第8章ppt课件.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

21天学51单片机开发 第八讲 C51的结构 课程安排 结构的声明结构变量的初始化结构变量的使用结构数组结构指针嵌套结构位结构 结构的声明 形象地说 结构就是用户定义的 不同数据类型的一个集合体 结构在日常生活中有着广泛的用途 在使用结构时 需要首先定义结构类型 并声明该结构类型的结构变量 定义结构 结构其实就是一种用户自定义的复合数据类型 在C51语言中 结构的一般定义形式如下 struct结构名 类型说明符成员名 类型说明符成员名 使用结构的注意事项 在C51语言中使用结构 应该注意如下几点 结构定义的最后一定要加上分号 结构是一种复合构造类型 是由数目固定 类型不同的若干有序成员集合而成的数据类 结构中的每一个成员可以是一个基本数据类型 甚至可以是一个构造类型 结构在说明和使用之前必须先定义 结构是以变量名来访问结构成员的 声明结构变量 结构只是一类复合数据类型的统称 在程序中使用时是以结构变量的形式来使用的 在程序中应该先定义结构 然后使用该结构来声明一个结构变量 C51语言中提供了灵活的结构变量的声明方法 先定义结构 再声明结构变量定义结构时声明结构变量直接声明结构变量 先定义结构 再声明结构变量 这种方法完全符合结构和结构变量的逻辑顺序 可以同时声明多个结构变量 structstudent charname 20 intnum intage charsex 2 floatscore structstudentzhang wang 定义结构时声明结构变量 在C51语言中 允许在定义结构的时候同时声明结构变量 在定义结构的同时可以声明多个结构变量 struct结构名 类型说明符成员名 类型说明符成员名 结构变量 直接声明结构变量 在C51语言中 可以直接说明结构变量 而不显式地说明结构名称 struct charname 20 intnum intage charsex 2 floatscore Alice Bob 注意 直接声明结构变量的方法不能再额外声明其他的结构变量 结构变量的初始化 在C51语言中 结构变量的初始化可以采用两种方法 一种是声明初始化 既在声明的同时进行初始化 另一种是动态初始化 既在程序中指定初始化值 声明初始化的一般形式如下 struct结构名 类型说明符变量名 类型说明符变量名 结构变量 值 值 结构变量的使用 在C51语言中 表示结构变量成员的一般形式如下 结构变量名 成员名在C51语言中允许对结构变量中的成员进行赋值 修改等操作 也允许具有相同类型的结构变量之间相互赋值 在C51语言中 允许多重结构或者多重结构变量 多重结构需逐级找到最低级的成员才能引用 结构数组 结构数组常来表示具有相同数据结构的一个群体 是指数组中的每一个元素都是具有相同结构类型的结构变量 在C51语言中 结构数组的声明可以通过三种方法来实现 先定义结构再声明结构数组定义结构时声明结构数组直接声明结构数组 先定义结构再声明结构数组 先定义结构再声明结构数组的示例如下 structstudent 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 structstudentboy 50 声明结构数组 定义结构时声明结构数组 定义结构时声明结构数组的示例如下 structstudent 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 boy 50 声明结构数组 直接声明结构数组 直接声明结构数组的示例如下 struct 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 boy 50 声明结构数组 初始化结构数组 初始化结构数组也可以采用声明初始化和动态初始化两种方法 典型的声明初始化结构数组示例如下 structstudent 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 boy 5 声明并初始化结构数组 Alice 100 24 F 90 5 Bob 101 24 M 90 0 Jack 102 25 M 88 5 Twis 103 23 M 78 5 Bohm 104 21 M 82 5 结构指针 C51种可以用结构来声明指针 也就是结构指针 结构指针是指该指针变量用来指向一个结构变量 在C51中 通过结构指针可以访问该结构变量 在C51语言中 结构指针的声明方法可以通过三种方法来实现 先定义结构再声明结构指针定义结构时声明结构指针直接声明结构指针 先定义结构再声明结构指针 先定义结构再声明结构指针的示例如下 structstudent 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 structstudent pstu 声明结构指针 定义结构时声明结构数组 定义结构时声明结构数组的示例如下 structstudent 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 pstu 声明结构指针 直接声明结构数组 直接声明结构数组的示例如下 struct 定义结构 char name 姓名intnum 学号intage 年龄char sex 性别floatscore 分数 pstu 声明结构指针 使用结构指针 结构指针变量必须要先赋值后才能在程序中使用 结构指针变量的赋值操作是把结构变量的首地址赋予该结构指针变量 访问结构变量的各个成员的一般形式如下 结构指针变量 成员名结构指针变量 成员名 一些注意事项 在C51语言中 如下的三种用于结构成员的表示形式是完全等效的 结构变量 成员名 结构指针变量 成员名结构指针变量 成员名初学者容易混淆的两个概念是结构名和结构变量 结构名只能表示一个结构形式 编译系统并不对它分配内存空间 结构变量是被声明为某种类型的结构的变量 编译程序可以对该变量分配存储空间 指向结构数组的结构指针 将结构指针变量指向一个结构数组 可以通过结构指针变量来对该结构数组进行操作 此时 结构指针变量的值是整个结构数组的首地址 另外 结构指针变量也可指向结构数组的一个元素 这时结构指针变量的值是该结构数组元素的首地址 嵌套结构 嵌套结构其实就是多重结构 是指在一个结构成员中可以包括其他一个结构 嵌套结构的成员名的引用 是从最外层直到最内层逐个被列出的 典型的嵌套式结构成员表示方式如下 结构变量名 嵌套结构变量名 结构成员名 位结构 位结构是C51语言中的特殊结构形式 其提供了位访问能力 通过位结构 可以访问一个字节或字的多个位 这样可以有效的介绍代码体积 提高程序的效率 位结构定义的一般形式如下 struct位结构名 数据类型变量名 整型常数 数据类型变量名 整型常数 位结构变量 位结构 在使用位结构时 应注意以下几点 位结构中的成员必须是int 但可以定义为unsigned或者signed 当位结构成员长度为1时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论