首页 理论教育单片机基础及应用:指针概念简介

单片机基础及应用:指针概念简介

【摘要】:对于C51的变量,我们强调3个概念:变量名、变量值和变量所在的地址。变量值是一个变量的内容,如C51指令“ch1=0x12;”就是将数值0x12赋值给变量ch1,该指令执行后,变量ch1的变量值就是0x12。对MCS-51系列单片机,以单片机的片内RAM单元为例,我们强调了3个概念:片内RAM单元的内容、片内RAM单元的名字和片内RAM单元的地址。指针变量的值是指针(地址)。

指针的实质就是地址,所以可以用最简单的一句话来描述指针:指针就是地址。

对于C51的变量,我们强调3个概念:变量名、变量值和变量所在的地址。

变量名是一个变量的标识符名字,如C51指令“unsigned char data ch1;”定义了一个变量,变量名是ch1,存储类型是data。

变量值是一个变量的内容,如C51指令“ch1=0x12;”就是将数值0x12赋值给变量ch1,该指令执行后,变量ch1的变量值就是0x12。

变量的存储类型是data,则说明变量被定义在片内RAM中。假设变量ch1被分配在片内RAM的08H单元,即字节地址是08H的片内RAM单元,那么ch1变量所在的地址就是08H。

对MCS-51系列单片机,以单片机的片内RAM单元为例,我们强调了3个概念:片内RAM单元的内容、片内RAM单元的名字和片内RAM单元的地址。

1)片内RAM单元的名字是用伪指令“EQU”或“DATA”给片内RAM单元起的名字,如汇编伪指令“ch1 EQU 08H”就是给字节地址为08H的片内RAM单元起了个名字叫做ch1,ch1与字节地址为08H的片内RAM单元是同一个字节。

2)片内RAM单元的内容指的是在该RAM单元中存放着的数据值,如汇编指令“MOV ch1,#12H”,该指令执行后,片内RAM单元ch1的内容就是0x12。

3)RAM单元的地址是该单元的字节地址,它表示该单元在整个内存中的位置(片内RAM地址从00H~0FFH,片外RAM地址从0000H~0FFFFH),如汇编伪指令“ch1 EQU 08H”就表示片内RAM单元ch1的地址是08H。

对于MCS-51系列单片机,C51与汇编语言有以下对应关系:(www.chuimin.cn)

1)C51的变量名与汇编语言的RAM单元的名字相对应。

2)C51的变量值与汇编语言的RAM单元的内容相对应。

3)C51的变量所在的地址与汇编语言的RAM单元的地址相对应。

变量的指针就是变量所在的地址,将变量的指针简称为指针。

如果设一个变量专门用来存放其他变量的地址(指针),则称该变量为指向变量的指针变量,简称指针变量。指针变量的值是指针(地址)。

定义指针变量的语法如下:

数据类型标识符*指针变量名;

定义指针变量的方法举例如下:

其中,指针变量名pint前面的“*”号表示pint为指针变量;指针变量pfloat前面的“*”号表示变量pfloat为指针变量;指针变量名pint和pfloat;指针变量名不是*pint和*pfloat。