指针和指针变量(第17课)_第1页
指针和指针变量(第17课)_第2页
指针和指针变量(第17课)_第3页
指针和指针变量(第17课)_第4页
指针和指针变量(第17课)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

学习内容,第五章指针,1.理解指针和指针变量2.理解指针与数组3.指针与函数4.C51语言中的指针应用,指针作用,正确的使用指针类型数据,可以有效地表示复杂的数据结构,直接处理内存地址,可以更有效合理的使用数组。,一、指针和指针变量,voidmain()floatx=3.14;inty=25;,变量的两个物理意义:(1)变量的地址(2)变量的内容,变量的内容,变量的地址,3.14,25,变量的地址:指编译器为变量所分配的存储区域的首地址。,变量的内容:指变量所对应的存储区域的内容,即变量的值。,voidmain()inta,b,c;a=5;b=3;c=a+b;,303132333435,abc,8,利用变量名存取数据的方式称为“直接访问”方式。,1、利用变量名对存储单元进行访问,一、指针和指针变量,一、指针与地址的关系,单片机程序中的常量和变量都要存放在以字节为单位的内存单元中。单片机是按照地址来访问该单元的内容的。如果将欲访问单元的地址存放在另一个单元中,访问时先找到存放地址的单元,才能找到需要访问的单元,这种“间接访问”方式需要用到指针。指针数据类型:是专门用来存放其他数据类型地址的。,5,3,2004,a和b相加的结果(*p=a+b)存放到变量p所指向的内存单元中去。此时c称为指针变量p的目标变量。,p=p=,变量的地址称为变量的指针存放地址的变量称为指针变量,2、利用指针对存储单元进行访问间接访问方式,一、指针和指针变量,voidmain()inta,*p=,2004,2000,指针变量初始化,类型标识符*指针变量名;,定义一个指向对象类型为int的一般指针,指针长度为3个字节。chardata*pa;定义一个指向对象类型为char的基于data的指针,指针长度为1个字节。,注意:变量的指针:即变量的地址。指针变量:一个变量里面存放另一个变量的地址。每一个变量都有它自己的指针(地址)。每一个指针变量都是指向另一个变量的地址。“*”表示指向。,三、指针变量的引用,指针变量中只能存放地址。在C51中,变量的地址和指针变量的地址都是不可见的。“使用“直接访问int*pt;pt=,例,四、数组指针,数组及其元素同样占有存储单元,都有相应的地址,指针也可以指向数组。指向数组的指针是数组的首地址。指向数组元素的指针则是数组元素的地址。,例:定义一个数组x8和一个指向数组的指针变量px.Intx8;Int*px;此时数组和指针变量没有关系。若px=则指针变量即指向数组x。C语言规定,数组名代表数组的首地址,即第一个数组元素的地址。,五、指针变量的运算,Intx8;Int*px;px=先使px加1,再取出*px的值。,4、(*px)+;表示所指向的元算值加1。5、特别注意:px+1.C规定:px+1指向数组首地址的下一个元素;而不是将指针变量px的值简单地加1.,指针应用举例,指针应用举例,例1:将片内RAM30H单元开始的15B数据传送到片外RAM3000H开始的单元中去。,汇编语言程序如下:ORG0000HLJMPMAINORG0100HMAIN:MOVR0,#30HMOVDPTR,#3000HMOVR7,#15LOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOOPSJMP$END,C51语言程序如下:voidmain()charidata*pi=0 x30;charxdata*px=0 x3000;unsignedchari;for(i=0;i15;i+)*px+=*pi+;/等价于*(px+)=*(pi+);while(1);,指针应用举例,例2:片内RAM30H开始的单元中有10B二进制数据,编程求它们之和(和256),并将和存于内部RAM40H单元中。,汇编语言程序如下:ORG0000HLJMPMAINORG0100HMAIN:MOVR0,#30HMOVR7,#10CLRALOOP:ADDA,R0INCR0DJNZR7,LOOPMOV40H,ASJMP$END,C51语言程序如下:voidmain()charid

温馨提示

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

最新文档

评论

0/150

提交评论