我想在c#中尝试指针运算.我使用了一个asp.net网络应用程序,期望它是无论是这个还是一个控制台应用程序.
这是我试过的:
public class memorytest
{
public class Sample
{
public int A;
public int B;
public int C;
public int D;
}
public static unsafe void Main()
{
Sample s = new Sample {A = 1, B = 2, C = 3, D = 4};
int a = 1;
int b = 2;
int* pA = &a;
int* pB = &b;
Debug.WriteLine("{0:x16}",* pB);
Debug.WriteLine("{0:x16}",*(pB - 1));
Debug.WriteLine(*pA);
Debug.WriteLine("{0:x16}",*(pB - 2));
}
}
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
0000000000000002,0000000004b5ca00,10000004b5c9fc,
我显然希望第二个是数字1.有人理解这一点吗?