这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于指针的问题

共29条 1/3 1 2 3 跳转至

关于指针的问题

专家
2014-01-03 19:08:17     打赏

C语言的指针是很强大的,但是要会用才能事半功倍,否则问题会层出不穷。

在16位机上定义:char *p,指针指向的是8位的char型数据,但指针p本身是16位的.

在8位机51单片机上,定义char *p, 那么这个指针p本身是8位的还是16位?




关键词: 指针     问题    

高工
2014-01-03 19:19:22     打赏
2楼
我只知道在32位机上指针本身是32位的,8位机还真不晓得

专家
2014-01-03 19:40:06     打赏
3楼

恩,32位机没有疑问,是32位。

感觉8位机不应该是8位的,应该是16位的。


院士
2014-01-03 20:37:39     打赏
4楼
说说理由,感觉这东西是一直阻挡你实践的非正当理由。

专家
2014-01-03 20:52:35     打赏
5楼
因为如果是8位的话,指针寻址能力太差了,只能寻址256个内存单元,根本满足不了实际使用的需要。所以推测应该是16位的。

高工
2014-01-03 21:01:41     打赏
6楼

我写程序这样测试不知道对不

#include "reg52.h"

char *p;

void main()
{
	while(1)
	{
		P1 = sizeof(p);
	}
}

 

仿真图的结果是:

 


专家
2014-01-03 21:08:02     打赏
7楼
程序没问题,能否解释下,仿真结果代表什么意思?51很少用,呵呵。

高工
2014-01-03 21:12:14     打赏
8楼

也就是3个字节,,,,,24位


专家
2014-01-03 21:14:39     打赏
9楼
,哦,介个样子,24位,这真让我意外啊。

高工
2014-01-03 21:17:26     打赏
10楼

我也没想到是这个结果....


共29条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]