C# 指针指向字节数组
时间: 2023-07-12 17:19:31 浏览: 54
你可以使用指针来访问字节数组中的元素。下面是一个示例代码:
```csharp
byte[] byteArray = new byte[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
unsafe
{
fixed (byte* p = byteArray)
{
for (int i = 0; i < 10; i++)
{
Console.Write(*(p + i) + " ");
}
}
}
```
在代码中,使用 `unsafe` 声明了一个不安全的上下文,然后使用 `fixed` 关键字将字节数组固定在内存中,创建了一个指向字节数组的指针 `p`。在循环中,通过指针访问了字节数组的元素。
相关问题
C# string转字节数组
在C#中,可以使用Encoding类中的GetBytes方法将字符串转换为字节数组。以下是一个示例代码:
```csharp
string str = "Hello, World!";
byte[] byteArray = Encoding.UTF8.GetBytes(str);
```
在上述示例中,我们使用UTF8编码将字符串转换为字节数组。您也可以选择其他编码,如ASCII或Unicode,具体取决于您的需求。
请注意,GetBytes方法返回的是一个字节数组,其中每个字节表示字符串中的一个字符。如果您需要将字符串按照特定的编码转换为字节数组,可以使用Encoding类的相应编码方法。
希望这可以帮助您将字符串转换为字节数组。如果您有任何进一步的问题,请随时提问。
c# double转字节数组
可以使用BitConverter类将double类型转换为字节数组,代码如下:
```c#
double d = 3.1415926;
byte[] bytes = BitConverter.GetBytes(d);
```
注意,字节数组的长度为8,因为double类型占用8个字节。如果需要将字节数组转换回double类型,可以使用BitConverter类的ToDouble方法,代码如下:
```c#
byte[] bytes = new byte[] { 24, 45, 68, 84, 251, 33, 9, 64 };
double d = BitConverter.ToDouble(bytes, 0); // d = 3.1415926
```