如何使用Fixed语句打印整数变量的地址?

时间:2015-01-23 05:28:38

标签: c#

如果我这样做

int n1;
unsafe
{

   int* p1 = &n1;                
   Console.WriteLine("p1: {0}", (int)p1);
}

作品。

但如果我这样做

int n1;
unsafe
{                
  fixed (int* p1 = &n1)
  {
     Console.WriteLine("p1: {0}", (int)p1);
  }
}

编译错误:您不能使用fixed语句获取已修复表达式的地址

我错了?

1 个答案:

答案 0 :(得分:3)

在您的第二个代码中,您使用的是fixed

根据 MSDN unsafe方法中的任何局部变量都已修复。
并且固定变量的地址不能用于固定表达式。这就是为什么你会收到这个错误。