分类: 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,编译器手册有说明,以下是截图: