一、内存操作
在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况:
(1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址;
(2) 两个CPU之间以双端口RAM通信,CPU需要在双端口RAM的特定单元(称为mail box)书写内容以在对方CPU产生中断;
(3) 读取在ROM或FLASH的特定单元所烧录的汉字和英文字模。
二、指针
单精度浮点型变量分配4个字节,为字符型变量分配1个字节。内存区的每一个字节有一个编号,即地址,地址相当于旅馆中的房间号。在地址所标志的内存单元中存放的数据则相当于旅馆房间中居住的旅客。由于通过地址能找到所需的变量单元,因此我们可以通过房间号去寻找房间0。因此将地址形象化地称为"指针。意思是通过它能找到以它为地址的内存单元。
三、结构体指针
指向结构体变量的指针。
结构体变量可以象普通变量一样进行各种相应的运算;
可以引用结构体变量成员的地址,也可以引用结构体变量的地址