有程序,如下
int main()
{
uint8_t array[4] = {0x11, 0x22, 0x33, 0x44};
uint16_t * p = (uint16_t *)array;
printf("%X\r\n", *p);
p++;
printf("%X\r\n", *p);
return 0;
}
其输出是
可以看到,一个16位无符号类型的指针p,在执行完+1操作后,p指向的地址实际上偏移了2个字节,即一个p对应类型的数据单元。如果指针的类型是32位无符号类型,指针+1,指针指向地址偏移4个字节。
版权声明:本文为wenlon7原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。