C# 使用指针

C# 中的引用类型可以替代部分指针的功能, 如果仍需要使用指针, 方法如下:

类的声明

using System;
class CData
{
  public int x;
}

class CProgram
{
  unsafe static void SetVal(int *pInt)
  {
    *pInt=1979;
  }
  
  public unsafe static void Main()
  {
    CData d = new CData();
    
    Console.WriteLine("Previous value: {0}", d.x);
    
    fixed(int *p=&d.x)
    {
      SetVal(p);
    }
    
    Console.WriteLine("New value: {0}", d.x);
  }
}
 

类修饰符

关键词 意义
unsafe 表示此函数内部使用了指针
fixed 表示此函数内部的指针被锁定,禁止使用 CLR 重定位技术