这是我在x86和x64中使用的代码
static unsafe void Main(string[] args)
{
short a = 4;
short b = 5;
short* x = &a;
short* y = &b;
Console.WriteLine((int)x);
Console.WriteLine((int)y);
Console.ReadLine();
}
对于x86我得到的答案就像“xxxxx224 xxxxx220” 对于x64,我得到的答案就像“xxxxx000 xxxxx002”
为什么Short,Byte,Bool在x86中占用4个字节,在x64上占用正常
答案 0 :(得分:1)
这是您输出的短值的内存地址。您正在获取32位值,因为您的程序可能被编译为32位应用程序。