.Net では、整数は値型です。つまり、スタックに格納されます。整数もクラスです (通常は System.Int32)。これらには、CompareTo、Equals などのメソッドがあります。したがって、スタック上で 4 バイト以上を取る必要があります。ただし、以下の例では、正確に 4 バイトかかることを示しています。
unsafe static void Main()
{
int a = 2, b = 4;
Console.WriteLine("Adress of a : {0}", (int)&a);
Console.WriteLine("Adress of b : {0}", (int)&b);
Console.WriteLine("Size of integer: {0}", (int)(&a) - (int)(&b));
}
出力:
Adress of a : 1372876
Adress of b : 1372872
Size of integer: 4
CLR は、整数およびその他の値型 (float、long、double など) に対して特別な処理を行いますか?