单片机基础-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

 
 

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

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

 

 

 

 

 

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值