C#指针操作
求问大家这个输出为什么不是1~100,而是一段一段的中间还夹杂一堆野值。
实际上输出是:
1,2,3,4,5,6,7,8,9,10,0,0,-2086078320,32766,10,0,11,12,13,14,15,16,17,18,19,20,0,0,-2086078320,32766,10,0,21,22,23,24,25,26,27,28,29,30,0,0,-2086078320,32766,10,0,31,32,33,34,35,36,37,38,39,40,0,0,-2086078320,32766,10,0,41,42,43,44,45,46,47,48,49,50,0,0,-2086078320,32766,10,0,51,52,53,54,55,56,57,58,59,60,0,0,-2086078320,32766,10,0,61,62,63,64,
using System;
using System.Runtime.InteropServices;
namespace test
{
class Program
{
static unsafe void Main(string[] args)
{
int[][] p = new int[10][];
var r = 0;
for (int i = 0; i < 10; i++)
{
p[i] = new int[10];
fixed (int* j = p[i])
{
for (int x = 0; x < 10; x++)
{
*(j + x) = ++r;
}
}
}
fixed (int* i = p[0])
{
for (int j = 0; j < 10 * 10; j++)
{
Console.Write($"{*(i + j)},");
}
}
return;
}
}
}
实际上输出是:
1,2,3,4,5,6,7,8,9,10,0,0,-2086078320,32766,10,0,11,12,13,14,15,16,17,18,19,20,0,0,-2086078320,32766,10,0,21,22,23,24,25,26,27,28,29,30,0,0,-2086078320,32766,10,0,31,32,33,34,35,36,37,38,39,40,0,0,-2086078320,32766,10,0,41,42,43,44,45,46,47,48,49,50,0,0,-2086078320,32766,10,0,51,52,53,54,55,56,57,58,59,60,0,0,-2086078320,32766,10,0,61,62,63,64,
...全文
相关推荐
C#操作picturebox实现图片的放大和缩小以及改变鼠标指针形状
在C#编程环境中,我们经常使用PictureBox控件来显示图像。这个控件允许开发者进行一系列交互操作,如图片的放大、缩小以及改变鼠标指针形状等。
C#中的指针类型与内存操作详解
本章深入探讨了C#语言中的指针类型和不安全代码上下文中的内存操作。内容涵盖了指针类型的概念、指针与垃圾回收器的关系、指针类型和引用类型的混合规则、以及如何在不安全上下文中使用指针。此外,还包括了不同指针类型之间的转换规则、指针在表达式中的使用、以及如何通过指针进行内存操作如指针算术和指针比较。
C#游戏辅助helper类[内存多级指针读写 进程操作]_内存多级指针读写进程操作_C#游戏辅助helper类_读写多级指针_源
例如,一个角色的生命值可能存储在一个复杂的内存布局中,通过多个指针层次才能到达。C#本身不直接支持指针操作,但通过 unsafe 代码块和 Marshal 类可以实现。
C#游戏辅助helper类[内存操作内存多级指针读写 进程操作]
二、内存操作基础1. IntPtr:C#中表示无符号整型指针的类型,用于内存操作。2.
C#中使用不安全代码(使用指针的代码)
**处理磁盘上的现有结构**:在读取或写入磁盘上的二进制文件时,可能需要直接操作字节流,这时可以使用指针提高效率。2.


