打印

C51中关于指针的问题

[复制链接]
1973|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
net.x|  楼主 | 2008-6-3 17:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在C51中,如果定义一个指向unsigned char型变量的指针 ,则定义为
unsigned char data *point;

如果指针*point所指的变量是xdata,也就是说有一个变量为
 unsigned char xdata i;
那么point = &i 时,(*point)应该是一个0x0000~0x7FFF(假定是一个64K的RAM)中的某一个地址

如果指针*point所指的变量是data,也就是说有一个变量为
 unsigned char data j;
那么point = &j 时,(*point)应该是一个0x00~0x7F中的某一个地址

也就是说(*point)中的内容有可能是一个字节也有可能两个字节

那在系统分配地址时,当定义unsigned char data *point时,他分配的地址是几个字节?

相关帖子

沙发
computer00| | 2008-6-3 21:37 | 只看该作者

unsigned char data *point;只分配到一个字节

因为它是指向内部RAM的,所以只有1字节。如果你将XDATA的地址赋给它,那么就会截取地址的低8位。

使用特权

评论回复
板凳
net.x|  楼主 | 2008-6-4 08:51 | 只看该作者

请教圈圈

如果我现在要定义一个指针,指向位于xdata的unsigned char型变量,如何定义?

使用特权

评论回复
地板
computer00| | 2008-6-4 09:50 | 只看该作者

unsigned char xdata *point;

既然你知道定义data型的,怎么就不会想到用xdata来定义xdata型的呢?

使用特权

评论回复
5
zhaoyu2005| | 2008-6-4 09:50 | 只看该作者

LZ试一下不就知道了

在c51里写个函数,试试不就知道了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

46

帖子

0

粉丝