一、 指针变量的定义
指针变量定义与一般变量的定义类似,其形式如下:
数据类型 [存储器类型1] * [存储器类型2] 标识符;
[存储器类型1] 表示被定义为基于存储器的指针,无此选项时,被定义为一般指针。这两种指针的区别在于它们的存储字节不同。一般指针在内存中占用三个字节,第一个字节存放该指针存储器类型的编码(由编译时由编译模式的默认值确定),第二和第三字节分别存放该指针的高位和低位地址偏移量。存储器类型的编码值如下:
[存储类型2]用于指定指针本身的存储器空间。
char * c_ptr; int * i_ptr; long * l_ptr;
上述定义的是一般指针,c_ptr指向的是一个char型变量,那么这个char型变量位于哪里呢?这和编译时由编译模式的默认值有关,
如果Menory Model—Variable—Large:XDATA,那么这个char型变量位于xdata区:
如果Menory Model—Variable—Compact:PDATA, 那么这个char型变量位于pdata 区:
如果Menory Model——Variable——Small:DATA,那么这个char型变量位于data区。
而指针c_ptr, i_ptr, l_ptr变量本身位于片内数据存储区中。
char * data c_ptr; int * idata i_ptr; long * xdata l_ptr;
上述定义,c_ptr, i_ptr, l_ptr变量本身分别位于data ,idata,xdata区。
char data * c_ptr; //表示指向的是data区中的char型变量,c_ptr在片内存储区中;
int xdata * i_ptr; //表示指向的是xdata区中的int型变量,i_ptr在片内存储区中;
long code * l_ptr; //表示指向的是code区中的long型变量,l_ptr在片内存储区中;
char data * data c_ptr; //表示指向的是data区中的char型变量,c_ptr在片内存储区data中;
Int xdata * idata i_ptr; //表示指向的是xdata区中的int型变量,i_ptr在片外存储区xdata中;
long code * xdata l_ptr; //表示指向的是code区中的long型变量,l_ptr在片内存储区xdata中;
相关网站搜索:
百度中找“总结C51指针的定义以及应用”的内容
GOOGLE中找“总结C51指针的定义以及应用”的内容
栏目导航
热门文章
推荐图文
全国报名电话:0731-85579057
友情连接 - 网站地图 关于收录 报名电话:0731-85579057 0731-85569651 24小时值班电话:13807313137(杨老师) 咨询QQ: 361928696, 873219118 校址:湖南省 长沙市 雨花区 车站南路 红花坡路口 网站: http://www.cswok.com 报名信箱: 879330360@qq.com