第五章 指针、结构、联合和枚举 《单片机接口技术(C51版)》教学课件.ppt

第五章 指针、结构、联合和枚举 《单片机接口技术(C51版)》教学课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机接口技术(C51版) 第五章 指针、结构、联合和枚举 内容概述 指针是C51语言的精华也是难点。本章主要介绍指针的概念、定义指针的方法,介绍指向一维数组、二维数组、字符数组的指针使用方法,指针数组的概念以及指针作为函数参数的使用方法。结构、联合和枚举是另外的构造型数据,本章介绍了这三种类型数据的定义、初始化以及使用方法。 教学目标 1.理解指针的概念,掌握指针与地址的关系,能区别指针变量与变量的指针,根据需要定义并使用指针变量,理解地址运算的方法。 2.理解指针与数组的关系,熟练使用指针指向一维数组、二维数组,理解并掌握利用指针表达数组元素的几种表现形式。 3. 能利用指针指向字符数组,处理字符串。 4.理解指针数组的概念,该数组的元素是指针。 5.掌握指针作为函数形参的使用方法,理解指针作为函数形参传递整个数组的作用。 6.了解结构体的作用及应用场合,能定义并使用结构体变量,掌握结构变量成员的引用方法。能定义并使用结构数组,会引用结构数组元素成员, 7.掌握结构指针的定义方法,利用结构指针访问结构变量的成员。 8. 了解结构变量的作为结构成员的结构嵌套定义方法以及位结构的概念。 9. 理解联合的概念,能定义并使用联合体变量,掌握联合与结构的区别。 10. 能定义并使用枚举变量。 5.1指针 5.1.1 指针和地址 5.1.1.1 指针变量的定义 C51语言中, 对于变量的访问形式之一, 就是先求出变量的地址,? 然后再通过地址对它进行访问, 这就是这里所要论述的指针及其指针变量。 所谓变量的指针, 实际上指变量的地址 变量的地址虽然在形式上好象类似于整数, 但在概念上不同于以前介绍过的整数, 它属于一种新的数据类型, 即指针类型。 C51中, 一般用“指针”来指明这样一个表达式x的类型,? 而用“地址”作为它的值, 也就是说, 若x为一整型变量, 则表达式x的类型是指向整数的指针, 而它的值是变量x的地址。 同样, 若 double d;则d的类型是指向双精度数d的指针, 而d的值是双精度变量d的地址。所以, 指针和地址是用来叙述一个对象的两个方面。 x、d的类型是不同的, 一个是指向整型变量x的指针,而另一个则是指向双精度变量d的指针。 指针变量的一般定义为: 类型标识符? *标识符; 其中标识符是指针变量的名字, 标识符前加了“*”号,? 表示该变量是指针变量 “类型标识符”表示该指针变量所指向的变量的类型。 一个指针变量只能指向同一种类型的变量 定义一个指针类型的变量。 int *ip; 首先说明了它是一指针类型的变量, 注意在定义中不要漏写符号“*”,? 否则它为一般的整型变量了。 另外, 在定义中的int 表示该指针变量为指向整型数的指针类型的变量, 有时也可称ip为指向整数的指针。 ip是一个变量, 它专门存放整型变量的地址。 指针变量在定义中允许带初始化项。如: int i, *ip=i; 。C51中规定, 当指针值为零时, 指针不指向任何有效数据, 有时也称指针为空指 5.1.1.2 指针变量的引用 既然在指针变量中只能存放地址, 因此, 在使用中不要将一个整数赋给一指针变量. 下面的赋值是不合法的: int *ip; ip=100; 假设: int i=200, x; int *ip; 可以把i的地址赋给ip: ip=i; 此时指针变量ip指向整型变量i, 假设变量i的地址为1800, 这个赋值可形象理解为下图所示的联系。 以后我们便可以通过指针变量ip间接访问变量i, 例如: x=*ip; 运算符*访问以ip为地址的存贮区域, 而ip中存放的是变量i的地址, 因此, *ip访问的是地址为1800的存贮区域(因为是整数, 实际上是从1800开始的两个字节),它就是i所占用的存贮区域, 所以上面的赋值表达式等价于 x=i; 另外, 指针变量和一般变量一样, 存放在它们之中的值是可以改变的, 也就是说可以改变它们的指向, 假设 int i, j, *p1, *p2; ???? i=a; j=b; ???? p1=i; ???? p2=j; 则建立如图5-1-2所示的联系: ?????? p1?????????????? i ??????? ┏━━━┓?????? ┏━━━┓ ??????? ┃????? ╂─→┃ a? ┃ ??????? ┗━━━┛?????? ┗━━━┛ ?????????? ? p2?????????????? i ??????? ┏━━━┓?????? ┏━━━┓

文档评论(0)

autohhh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档