版权声明:如需转载请标注 https://blog.csdn.net/weixin_40973138/article/details/88361893
开门见山
- 一个地址对应一个字节的数据,没有字地址之说;
- 指针类型的含义是指将要对该地址开始的多少多少字节进行操作,以及操作模式;
- 当我们对一个地址进行增减操作时,其所增加或减少的数量和定义时的数据类型有关;
- 指针类型强制转换的意思是指,我将要对该地址所开始的多少多少字节数据进行操作;
##########################################################################
1. 一个地址对应一个字节的数据,没有字地址之说;
一个地址就是对应一个字节的数据,即8 位;
2. 指针类型的含义是指将要对该地址开始的多少多少字节进行操作,以及操作模式;
uint8_t* Address; /* 对DATA 地址开始的8 位数据进行操作,即可以一次读写8 位 */
uint16_t* Address; /* 对DATA 地址开始的16 位数据进行操作,即可以一次读写16 位 */
uint32_t* Address; /* 对DATA 地址开始的32 位数据进行操作,即可以一次读写32 位 */
3. 当我们对一个地址进行增减操作时,其所增加或减少的数量和定义时的数据类型有关;
例如当我们定义一个uint32_t 类型的数据时,我们对该数据地址进行加一,然后得到的数据地址 = 原地址 + 4
同理,若是uint16_t 类型数据,则数据地址 = 原地址 + 2;
若是uint8_t 类型数据,则数据地址 = 原地址 + 1
4. 指针类型强制转换的意思是指,我将要对该地址所开始的多少多少字节数据进行操作;
其实就是,将一个地址进行强制转换后,该地址的所有信息都没有发生任何变化,唯一变化的地方就是我对该地址所提取的数据字节数量。
*(uint32_t*)Address /* 对该地址开始的32 位数据进行读写 */
*(uint16_t*)Address /* 对该地址开始的16 位数据进行读写 */
*(uint8_t*)Address /* 对该地址开始的8 位数据进行读写 */
###########################################################################