【发布时间】:2011-08-21 10:37:18
【问题描述】:
让我们有一个字节数组
byte[] Test = { 0, 0, 0, 0 };
我想这样做:
UInt32* p = &Test[0];
p* = 0xAABBCCDD;
或很快:
(int*)(&Test[0])* = 0xAABBCCDD;
在 Delphi 中我会这样做:
PUInt32(@Test[0])^ := $AABBCCDD;
其中 PUInt32 = ^Uint32 或 typdef PUInt32 = *UInt32 在 C# 中。
但不知道它在 C# 中是如何工作的。
【问题讨论】:
-
我们在C#中一般不使用指针。
-
WHY!?!?!? 你可以用更简单的方法无法实现的指针做什么??
-
如果您也能描述所请求解决方案的目的,那将非常有帮助。
-
快速回答是你几乎可以像在 C/C++ 中那样做,除了你必须做一些特别的事情(比如
fixed语句)来锁定内存,这样它就不会被垃圾收集...