指针和指针变量(第17课).ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指针和指针变量(第17课)

指针作用 正确的使用指针类型数据,可以有效地表示复杂的数据结构,直接处理内存地址,可以更有效合理的使用数组。 一、指针和指针变量 void main() { float x=3.14; int y=25; … } void main() {int a,b,c; a=5; b=3; c=a +b; … } 一、指针与地址的关系 单片机程序中的常量和变量都要存放在以字节为单位的内存单元中。 单片机是按照地址来访问该单元的内容的。 如果将欲访问单元的地址存放在另一个单元中,访问时先找到存放地址的单元,才能找到需要访问的单元,这种“间接访问”方式需要用到指针。 指针数据类型:是专门用来存放其他数据类型地址的。 void main() { int a,*p=a; float x,*q=x; … } void main() { int a,*p=a; float x,*q=x; *p = 5; printf(a+3=%d\n,*p+3); … } 例:有个整型变量n存放在内存单元60H中,则该内存单元地址60H,就是变量n的指针。 指针变量概念:如果一个变量专门用来存放另一个变量的地址,则该变量称为指针变量。 二、指针变量的定义 指针变量必须先定义后使用。 定义的一般形式为: 数据类型 [存储器类型] *指针变量名; 数据类型为指针变量所指向的变量的类型。 指针变量名为定义的指针变量的名字。 存储器类型为可选项,默认为三个字节,idata、data、pdata为一个字节,code为两个字节。 例:int *pt; 定义一个指向对象类型为int的一般指针,指针长度为3个字节。 char data *pa; 定义一个指向对象类型为char的基于data的指针,指针长度为1个字节。 注意: 变量的指针:即变量的地址。 指针变量:一个变量里面存放另一个变量的地址。 每一个变量都有它自己的指针(地址)。 每一个指针变量都是指向另一个变量的地址。 “*”表示指向。 三、指针变量的引用 指针变量中只能存放地址。 在C51中,变量的地址和指针变量的地址都是不可见的。 “”取地址运算符。 例:int t; int *pt; pt=t; 使用“”和“=”就可以使一个指针变量指向一个变量。 完成变量、指针变量的定义及指针变量的引用后,就可以对内存单元进行间接访问了。 例:将整形变量t的值赋给变量x. x=t;直接访问 int *pt; pt=t; x = *pt; 四、数组指针 数组及其元素同样占有存储单元,都有相应的地址,指针也可以指向数组。 指向数组的指针是数组的首地址。 指向数组元素的指针则是数组元素的地址。 例:定义一个数组x[8]和一个指向数组的指针变量px. Int x[8]; Int *px; ;此时数组和指针变量没有关系。 若px=x[0];则指针变量即指向数组x[ ]。 C语言规定,数组名代表数组的首地址,即第一个数组元素的地址。 五、指针变量的运算 Int x[8]; Int *px; px=x[0]; 1、px++;将指针变量px指向下一个数组元算x[1]; 2、*px++; 等价于*(px++)。 3、*++px;等价于*(++px);先使px加1,再取出*px的值。 4、(*px)++;表示所指向的元算值加1。 5、特别注意:px+1. C规定: px+1指向数组首地址的下一个元素;而不是将指针变量px的值简单地加1. 指针应用举例 指针应用举例 例1:将片内RAM30H单元开始的15B数据传送到片外RAM 3000H开始的单元中去。 指针应用举例 例2:片内RAM30H开始的单元中有10B二进制数据,编程求它们之和(和256),并将和存于内部RAM40H单元中。 * * * * 学习内容 第五章 指 针 1. 理解指针和指针变量 2. 理解指针与数组 3. 指针与函数 4.C51语言中的指针应用 变量的两个物理意义:(1)变量的地址(2)变量的内容 2000 2001 2002 2003 2004 2005 … x y 变量的内容 变量的地址 3.14 25 变量的地址:指编译器为变量所分配的存储区域的首地址。 变量的内容:指变量所对应的存储区域的内容,即变量的值。 30 31 32 33 34 35 a b c 5 直接将整数 5 存入变量 a 3 直接将整数 3 存入变量 b 8 直接将变量 a、b 的值取出,相加后存入变量 c 利用变量名存取数据的方式称为“直接访问”方式。 1、利用变量名对存储单元进行访问 一、指针和指针变量 p 2000

文档评论(0)

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

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

1亿VIP精品文档

相关文档