例如,如果uint8_t *p
的地址为00000400
,则(uint32_t*)(p)
将保留0x00000400
(十六进制)。由于p + 4
只是一个8位的int指针,0x00000404
也会简单p
吗?
答案 0 :(得分:0)
在您可能实际使用的平台上,是的。
答案 1 :(得分:0)
是的,您可以将指向uint8_t的指针强制转换为uint32_t。取消引用它可能会非常不理想,但它会起作用。如果您使用的是小型机器,那么这样做的结果可能会让您感到惊讶。
pointer_to_type_t + n
始终为&pointer_to_type_t[n]
或其他方式:(type_t*)((uint32|uint64)(pointer_to_type_t) + n * sizeof(type_t))