我不明白 - *(uint*)((byte*)p + Offset)

I don't Understand - *(uint*)((byte*)p + Offset)

我无法理解这段代码,希望得到一个好的解释。

以下函数接受一个 hex 文件并修改地址而不覆盖其他所有内容。

谁能给我解释一下这是怎么做到的?

unsafe void WriteUint32(void* p, int Offset, uint value)
        {
            *(uint*)((byte*)p + Offset) = value;
        }

如果我们忽略 Offset,你有

*(uint*)((byte*)p) = value;

这只是将 value 分配给 p 指向的内容,解释为 uint.

添加 Offset 只是将指针更改为 value 的分配位置。