0

例如,如果地址uint8_t *p00000400,将(uint32_t*)(p)保留0x00000400(以十六进制表示)。也很p + 4简单,0x00000404因为p它只是一个 8 位 int 指针?

4

2 回答 2

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))

于 2013-04-06T01:59:58.830 回答
0

在您可能实际使用的平台上,是的。

于 2013-04-06T01:22:56.493 回答