STC单片机C语言指针

主讲:何宾

Email :hebin@mail.buct.edu.cn

2016.03

C51编译器中指针的分类

Cx51编译器支持使用字符“*”声明变量指针。C51编译器可

以执行在标准C中所提供的所有操作。但是,由于8051独一无二的

结构以及特点,C51编译器提供两种不同类型的指针,即:通用指

针和指定存储器的指针。

通用指针

--未指定存储区域的通用指针

C语言通用指针的声明格式:

数据类型 *指针名字

【例13-1】通用指针声明的例子

char *s; //指向字符的指针

int *number; //指向基本整型数的指针

long *state; //指向长整型数的指针

对于通用指针来说,使用三个字节保存。即第一个字节表示存储器

的类型;第二个字节表示偏移地址的高8位;第三个字节表示偏移

地址的低8位。对于通用指针来说,它可以访问保存在8051存储器

系统的任何位置的变量。

通用指针

--未指定存储区域的通用指针

前面提到过:

&变量/数组名字

它表示获取变量所在单片机存储空间的地址,或者是数组所在单片

机存储空间的起始地址。

例如:如下声明:

int *p1 ;

int a ;

当进行下面操作:

p1=&a;

通用指针

--未指定存储区域的通用指针

表示p1的值为变量a所在单片机存储空间的具体地址信息。该

地址的内容就是变量a的值,用形式化的方式可以这样表示:

(p1)=a;

因此,*p1实际上就是获取指向地址的内容。所以,*p1的值就是变

量a的值。

注 :在单片机中并不存在指针这样一个功能部件,正如上面所提到的,这只是C

语言对存储器直接寻址模式的抽象而已。

*和指针名字之间不能有空格。

通用指针

--未指定存储区域的通用指针

【例13-2】查看通用指针的例子

代码清单13-1(1) main.c文件

int main()

{

int a=50,*p1;

float b=45.13,*p2;

char c=40,*p3;

p1=&a;

p2=&b;

p3=&c;

return 0;

}

通用指针

--未指定存储区域的通用指针

下面对该程序进行分析,步骤包括:

读者可以进入到本书所提供资料的stc_program_example\例子

13-2目录下,在Keil

μVision5集成开发环境下打开该设计。

进入调试器模式,查看Disassembly窗口内的反汇编代码,代码

中加入了注释,帮助读者进行分析。

代码清单13-1(2) Disassembly窗口内的反汇编代码清单

2: {

通用指针

--未指定存储区域的通用指针

3: int a=50,*p1;

//将立即数50(0x32)保存到8051片内数据区地址为0x08和0x09的单元

C:0x0003 750800 MOV 0x08,#0x00

C:0x0006 750932 MOV 0x09,#0x32

4: float b=45.13,*p2;

//将浮点数保存到8051片内数据区地址为0x0D、0x0E、0x0F和0x10的单元

C:0x0009 75101F MOV 0x10,#0x1

stc单片机c语言 pdf,STC单片机C语言程序设计 第13章 STC单片机C语言指针.pdf相关推荐

  1. stc15系列c语言pwm编程,STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现.docx...

    STC单片机C语言程序设计 第25章 STC单片机增强型PWM原理及实现 STC单片机增强型PWM发生器原理及应用主 讲:何宾Email:hebin@mail.buct.edu.cn2016.03增强 ...

  2. 80c51的c语言程序设计,第10章80C51的C语言程序设计

    <第10章80C51的C语言程序设计>由会员分享,可在线阅读,更多相关<第10章80C51的C语言程序设计(44页珍藏版)>请在人人文库网上搜索. 1.2020/7/4,1,第 ...

  3. STC单片机C语言中的数据类型,stc单片机c语言程序设计 第9章 stc单片机c语言数据类型.pdf...

    STC单片 机C语言变量和数据类型 主讲:何宾 Email :hebin@mail.buct.edu.cn 2016.03 C语言中的常量和变量 对于基本数据类型,按其值是否可变又分为常量和变量两种. ...

  4. c语言程序设计 第三版 哈工大,C语言程序设计_哈工大(3):字符串指针.pdf

    圳 职 业 技 术 学 院Shenzhen Polytechnic 七单元(3):字符串指针 教学内容 字符串的指针和指向字符串的指针变量 教学目标 应知 字符串可以用字符数组和字符指针表示 应会 用 ...

  5. 谭浩强C语言程序设计(1-3章代码学习)

    谭浩强C语言程序设计 参考书 C语言学习笔记记录,学习为主,新手小白入门 我所用的C语言在线编译器:lightly在线编译工具 可新建工程 谭浩强C语言程序设计书籍所包含的代码示例加注释说明如下: / ...

  6. c语言程序设计 第七章函数,《C语言程序设计》第七章随堂练习:自定义函数

    题目:创建一个C语言控制台程序,除了main函数外,自定义两个被调用的函数,并要求至少有一个函数包含有参数. 解答: 首先我们要了解,函数包含哪些组成结构,有四个部分,分别是:函数类型.函数名称.函数 ...

  7. c语言程序设计第14章在线测试,《C语言程序计》第14章在线测试.doc

    <C语言程序计>第14章在线测试 俘塑幸户飘蕉搪岗再谈陛腆嗅擒够草酒劣迎录匝丘售筹倪盛冷阂红协辙鸦炽泳者烷等窖豺覆孺粗嗓管吊酣祭礁司矽烷责阵誉炬闷擒某殴圣酶钉哭码勃焰椿溜押社刀浩荔泥挟躺输 ...

  8. c语言中void delay0.5(),第5章补充 单片机C语言基础.ppt

    第5章补充 单片机C语言基础.ppt 2.中断函数举例 例4-16 本例程序电路图可参考图4-1.下面的程序的功能是:对外部中断1中断次数计数,并送P0口显示. #include unsigned c ...

  9. 8255A红绿灯c语言程序,51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序).doc...

    51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序) 51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:0 ...

最新文章

  1. MyEclipse使用技巧小总结
  2. Codeforces Round #336 (Div. 2) D. Zuma 记忆化搜索
  3. 18款 非常实用 jquery幻灯片图片切换
  4. node作为java中间间_node作为中间服务层如何发送请求(发送请求的实现方法详解)...
  5. 游戏“冰川滑行”设计稿(第一版)
  6. 【刷题】BZOJ 2194 快速傅立叶之二
  7. 开工大吉:Oracle 18c已经发布及新特性介绍
  8. html5微信视频禁止自动全屏,关于HTML5 video标签在安卓版微信浏览器内被强行全屏播放的问题...
  9. 金蝶K3数据库表名对应及表说明
  10. docker阿里云加速器
  11. 前端轻量级的toolTip插件-Tippy.js
  12. python中的引号用法总结_Python中的引号用法总结
  13. 灯管实验的em算法_【大学物理实验】日光灯电路的组装及参数测量.ppt
  14. 计算机系统的还原及备份,win7系统备份与还原功能怎么用?win7系统使用备份与还原功能的方法...
  15. 解决css修改但是没有反应
  16. SPSS软件的数据分析与GDP和人口老龄化的预测
  17. android apn切换工具,Android修改和添加APN网络
  18. html加载完成 产生动作,页面加载功能设计总结
  19. C语言入门系列 - 自定义函数
  20. 蓝桥杯—交换瓶子—Java

热门文章

  1. Docker系列之镜像瘦身(五)
  2. TIOBE 6月排行:C# 以微弱的优势超过了 Visual Basic .NET 的排名,再次进入 TOP 5
  3. .NET Core 2.2 新增部分功能使用尝鲜
  4. .NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程
  5. ASP.NET Core中Ocelot的使用:基于服务发现的负载均衡
  6. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)
  7. SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)
  8. C# 简单方式解压Zip文件/使用VS2019自带功能
  9. C# WinForm 自启动/模拟开机自动启动
  10. C和指针之字符串strspn、strcspn函数源代码的实现