Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186576
  • 博文数量: 71
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-13 14:49
文章分类
文章存档

2017年(1)

2015年(5)

2014年(10)

2013年(55)

我的朋友

分类: C/C++

2013-09-08 16:51:47

编译器里定义一个指针变量,编译器就会给这个指针变量分配一个空间,这个空间存放的是内存的某个地址数据的,即这个指针变量是用来存放内存某地址的,编译器给这个指针变量分配的空间大小是和cpu寻址长度有关的,比如32位寻址长度的CPU,指针变量所占的空间大小是4个字节,而与所定义指针的类型无关,只与CPU寻址长度有关,因为不管定义什么类型的指针变量,它都是用来存地址的,而地址数据范围也即是CPU寻址范围,该指针变量存放的最大值也即是CPU寻址的最大值(理论上);所以在51单片机上不管你定义的是char  * p,  int  * p ,  long  *p ,还是结构体类型指针或者函数指针,该指针变量p都是占一个字节(8位CPU)  .

 对于C51,编译器手册有说明,以下是截图:

阅读(2129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~