Bootstrap

单片机基础-C语言指针

 

指针变量根据存放系统的不同,占用空间大小也不同,实际上就是根据系统单词处理bit来占用的空间,例如32bit系统,需要用指针存储32bit的地址,所以指针占用空间32bit,4byte。

*((__IO uint16_t *)(0x1FFFF7E8))操作,对于0x1FFFF7E8,通过(__IO uint16_t *)变为uint16_t类型数据的32bit地址指针,通过*取该地址的值返回。注意!!!指针变量表示的指向变量的类型,指针变量的大小和系统bit有关,指针变量指向的值和指针变量类型有关。

 移动数据宽度表示:

1、(__IO uint16_t *) p 指针,p+1 为每次移动uint16_t 1个变量宽度 = 16bit

2、若使用直接地址增加,需要移动和指针类型数据宽度相同的宽度。例如*((__IO uint16_t *)(0x1FFFF7E8))的下一个地址为0x1FFFF7E8+2

 
 

取值调用,相当于新建了变量。

传址操作,操作原数据,也可进行多返回值操作。

 

 

 

 

 

 注意不要返回局部变量的句柄指针,因为局部变量结束后会释放内存

 

 

;