关键词不能为空

当前您在: 主页 > 英语 >

C51指针定义和应用小结(精)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 03:13
tags:

-

2021年2月8日发(作者:古埃及文字翻译)



摘要


:



.


指针变量的定义指针变量定义与 一般变量的定义类似,其形式如下:数据类型


*



识符;



表 示被定义为基于存储器的指针,无此选项时,被定义为一般指针。这两种指针的区


别在于 它们的存储字节不同。一般指针在内存


...



.


指针变量的定义



< br>指针


变量定义与一般变量的定义类似,其形式如下:




数据类型


[


存储器类型


1] * [


存储器类型


2]


标识符;






[


存储器类型


1]

< br>表示被定义为基于存储器的指针,无此选项时,被定义为一般指针。这两种指


针的 区别在于它们的存储字节不同。一般指针在内存中占用三个字节,第一个字节存放该指针


存储器类型的编码(由编译时由编译模式的默认值确定),第二和第三字节分别存放该指针的

高位和低位地址偏移量。存储器类型的编码值如下:



存储类型


I


Idata/data/bdata


xdata


pdata


Code


编码值



0x00


0x01


0xFE


0xFF







[


存储类型


2]


用于指定指针本身的存储器空间。



1.


char * c_ptr; int * i_ptr; long * l_ptr;



上述定义的是 一般指针,


c_ptr


指向的是一个


c har


型变量,那么这个


char


型变 量位于哪里


呢?这和编译时由编译模式的默认值有关,




如果


Menory Model



Variable


Large:XDATA,


那么这个


char


型变量位于


xdata


区:




如果


Menory Model



Variable


Compact:PDATA,


那么这个


char


型变量位于


pdata


区:




如果


Menory Model


——< /p>


Variable


——


Small:DA TA


,那么这个


char


型变量位于< /p>


data


区。




而指针


c_ptr


< br> i_ptr



l_ptr


变量本身位于片内数据存储区中。




2.


char * data c_ptr; int * idata i_ptr; long * xdata l_ptr;



上述定义,


c_ptr



i_ptr



l_ptr


变量本身分别位于


data



idata



xdata


区。




3.


char data * c_ptr; //


表示指向的是< /p>


data


区中的


char


型变量,


c_ptr


在片内存储区中;




int xdata * i_ptr; //< /p>


表示指向的是


xdata


区中的


int


型变量,


i_ptr

在片内存储区中;






long code * l_ptr; //


表示指向的是


code


区中的


long


型变量,


l_ptr


在片内 存储区中;




4.


char data * data c_ptr; //


表示 指向的是


data


区中的


char


型变量,


c_ptr


在片内存储区


data


中;




Int xdata * idata i_ptr; //


表 示指向的是


xdata


区中的


int< /p>


型变量,


i_ptr


在片外存储区


xdata


中;




long code * xdata l_ptr; //


表 示指向的是


code


区中的


long< /p>


型变量,


l_ptr


在片内存储区


xdata


中;




.


指针应用



1.


int x, j;



int * px, *py;



px=&x; py=&y;



2.


*px=0; py=px;



3.


*px++<=>*(px++



4.


(*px++<=>x++



5.


unsigned char xdata * x;



unsinged char xdata * y;



x=0x0456;



*x=0x34 //


等价于


mov dptr,#456h mov a,#34h; movx @dptr,a



6.


unsigned char pdata * x;



x=0x045;



*x=0x34 //


等价于


mov r0,#45h mov a,#34h; movx @r0,a



7.


unsigned char data * x;



x=0x30;



*x=0x34 //


等价于


mov a,#34h; mov 30h ,a



8.


int *px;



px=(int xdata *0x4000; //



xdata


型指针


0x4000


赋给


px,


也就是将


0x4000


强制转换为指向


xdata


区中的


int


型变量的指针,将其赋给


px





-


-


-


-


-


-


-


-



本文更新与2021-02-08 03:13,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/611637.html

C51指针定义和应用小结(精)的相关文章