当一个代码块使用 unsafe 修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。
// 作用域是一整个函数
public unsafe void Fun()
{
int* numPoint;
int numA = 10;
int numB = 20;
numPoint = &numA;
Console.WriteLine("Address:" + (int)numPoint);
Console.WriteLine("Value:" + *numPoint);
numPoint = &numB;
Console.WriteLine("Address:" + (int)numPoint);
Console.WriteLine("Value:" + *numPoint);
}
// 作用域是大括号内
public void Fun2()
{
unsafe
{
int* numPoint;
}
}
运行结果: