单片机C程序中的指针与指针变量

发布者:暗里著迷最新更新时间:2015-08-04 来源: dpj100关键字:单片机  C程序  指针  指针变量 手机看文章 扫描二维码
随时随地手机看文章
一个变量具有一个变量名,对它赋值后就有一个变量值,变量名和变量值是两个不同的概念。变量名对应于内存单元的地址,表示变量在内存中的位置,而变量值则是放在内存单元中的数据,也就是内存单元的内容。变量名对应于地址,变量值对应于内容,应以区别。
例如定义一个整形变量int x,编译器就会分配两个存储单元给x。如果给变量赋值,令x=30,这个值就会放入对应的存储单元中。虽然这个地址是由编译器分配的,但我们是无法事先确定的,但可以用取地址运算符&取出变量x的地址,例如取x变量的地址用&x。
 

&x就是变量x的指针,指针是由编译器分配,而不是由程序指定的,但指针值可以用&x取出。


如果把指针(地址值)也作为一个变量,并定义一个指针变量xp,那么编译器就会另外开辟一个存储单元,用于存放指针变量。这个指针变量实际上成了指针的指针,例定义:
int *xp
 

通过语句xp=&x把变量x的地址值,存于指针变量xp中,现在访问变量x有两种方法,一是直接访问,另外是用指针间接访问:*xp
 

在int *xp中的*和*xp中的*所代表的意义不同,int *xp中的*是对指针变量定义时作为类型说明,而*xp中的*是运算符,表示由xp所指示的内存单元中取出变量值。
关键字:单片机  C程序  指针  指针变量 引用地址:单片机C程序中的指针与指针变量

上一篇:C语言类型修饰符Const的使用
下一篇:机器汇编的概念及扫描过程

推荐阅读最新更新时间:2024-03-16 14:27

Microwindows在基于单片机嵌入式系统中的移植
引言 microwindows是由gregory haerr组织的一个开放源码项目,是嵌入式系统中广泛应用的一种图形用户接口(gui),该项目的目标是在嵌入式linux平台上提供与普通个人电脑类似的图形用户界面。作为x_windows的替代品,microwindows提供了和x_windows类似的功能,但是却占用很少的内存,根据用户的配置,microwindows占用的内存资源只有100kb~600kb左右。microwindows的核心是基于显示设备接口的,可移植性较强,其本身提供了多种嵌入式系统常见的显示设备驱动程序。目前新版本的microwindows已经内建了framebuffer,因此可以不局限于linux
[单片机]
Microwindows在基于<font color='red'>单片机</font>嵌入式系统中的移植
工作频率可动态调整的单片机系统设计
摘要:介绍一种采用可编程CMOS频率合成器DS1077设计的单片机系统,使单片机能根据环境需要动态调整系统的工作频率,既能满足系统求的实时处理能力,又尽可能地降低系统的耗电量及引起的电磁干扰。同时还讨论了系统改变工作频率后对RS232串行通讯的影响以及解决办法确保该系统在不的工作频率下仍能正常进行RS232串行通信。这种单片机系统的变频设计提高了系统的适用范围和兼容性,使系统设计更加灵活。 关键词:可编程CMOS频率合成器 串行通讯 动态编程 DS1077 在单片机系统中,总希望单片机能够工作于最大频率,以提高系统的实时处理能力。但单片机系统工作频率越高,其耗电量及引起的电磁干扰也就越大,并且单片机工作频率的选择直接影响到RS
[单片机]
通俗易懂讲PIC单片机:从一窍不通到入门进步
单片机入门不难------谈PIC系列(转自矿石收音机论坛---崂山)十年前的老帖子,讲得通俗易懂,分享之。 请看图1 这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第1、8条腿接电源 +5V 和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6 条腿 第2、3条腿 使用时外接一个晶振的东西 我们接一个 4 MHz的。 第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的 LED红灯亮后,当需要解除报警时,用一个按钮给
[单片机]
通俗易懂讲PIC<font color='red'>单片机</font>:从一窍不通到入门进步
嵌入式开发 | 单片机能用C++开发吗?
通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少。 那么究竟能不能用C++开发单片机呢?答案肯定是可以的。 下面基于Keil、STM32,用C++编程点亮LED,给初学者提供一下思路。 为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言是面向过程的语言,C++是面向对象的编程语言。结合本文来说,面向过程相比面向对象的编程,生成代码量(bin文件)更小,运行效率更高。 所以,C语言相比C++具有更小代码量(bin文件)、更快的运行速度。 当然,这里是C相对C++而言。其实,汇编相对C而言,具有更小代码量和更快的运行速度。(可以参看文章:用 汇编 和 C语
[单片机]
单片机定时/计数工作方式
单片机中的定时/计数器都能有多种用途,要通过定时/计数器的方式控制字来设置,需要的用途。 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。 iframe id="iframe_0.48663783678784966" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://www.51hei.com/UpFiles/Pic/2007-
[单片机]
<font color='red'>单片机</font>定时/计数工作方式
基于ARM单片机S3C2410的RTC模块应用设计
引言 本文在介绍S3C2410的基础上,对RTC内部结构及工作机理进行了分析,最后给出了专用于RTC功能的应用开发。 硬件结构 S3C2410处理器简介 S3C2410是三星公司推出的16/32位RISC微处理器,它是为应用于小型掌上设备和高性价比、低功耗、高性能的嵌入式系统应用而提供的微控制解决方案。S3C2410使用了ARM920T内核。 690)this.width=690;if(this.height>690)this.height=690;" border=undefined> 图1 S3C2410内部RTC模块结构图 硬件构架 RTC模块能够在系统断电的情况下由后备电池供电继续工作,它能将8位数据转换为BCD码的
[单片机]
基于ARM<font color='red'>单片机</font>S3C2410的RTC模块应用设计
有关单片机在线烧录的一点认识
这要看你是烧录什么单片机,不同单片机编程的时序、引脚是不同的.理论上来讲任何单片机都可以进行像你说的那样用另外一个单片机主机对它进行编程. 你要看你需要编程(也就是烧录)的单片机是什么型号,再去找它的资料,资料上应该提供有对它进行编程的方法,包括接线和编程时的信号时序.只要你设计的电路满足它的编程接线结构,你设计的软件能控制电路输出相应编程时序,就完成了这个功能 打个比方: 对8031编程,那么8031处于变成环境下,1、2脚接电源和地;3~10脚是需要编程的内部单元的地址线;11~19脚是编程的代码输入线;20脚是一个控制线; 编程的时序:控制线20每次为高电平,那么3~10就选通内部地址,11~18就是编程代码;控制线20每次为
[单片机]
SEPTNY256型单片机开关电源及其应用
1 TNY256的性能特点   ·内置自动重启电路,不需外接元件,一旦发生输出短路或控制环开路故障,可将占空比降低以保护芯片。   ·在输入直流高压电路中,不需要使用瞬态电压抑制器构成的钳位保护电路,仅用简单的RC吸收回路即可衰减视频噪声。   ·输入欠压检测电路仅需外接1只电阻,目的是在上电时将片内的功率MOSFET关断,直到直流输入电压VI达到欠压保护门限电压(100V)为止;正常工作后若VI突然降低,对芯片也能起到保护作用。   ·开关频率抖动可降低电磁辐射。   ·输入电压范围宽(85~265VAC或120~375VDC)且交、直流两用。效率高,265VAC输入时的空载功耗低于100mW。   ·控制方
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved