C#Short,Byte在x86中占用4个字节

时间:2017-04-03 10:24:49

标签: c# memory short

这是我在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上占用正常

1 个答案:

答案 0 :(得分:1)

这是您输出的短值的内存地址。您正在获取32位值,因为您的程序可能被编译为32位应用程序。