object[] 数组如何存储在内存中?

dan*_*iel 3 arrays memory-management random-access

据我了解,数组的元素连续存储在内存中,访问特定数组是通过将所需索引和每个元素的大小的乘积与基数组地址相加来找到该元素的地址来完成的。

由于在像 C# 这样的语言中,我可以创建一个 s 数组object[]并在其中放入我想要的任何数据类型,如果我使用不同大小的类型同时仍然允许随机,那么数组的每个元素如何以统一的长度存储(并保持)使用权?

Ree*_*sey 5

这取决于所讨论的语言以及“对象”的含义 -

正如您提到的 C#,在 C# (.NET) 中, anobject[]包含对各个对象实例的引用的数组。该数组是一个引用数组 - 对象实例仍然需要分配给数组的元素。引用具有统一的大小,但对象实例本身是单独存储的,并且大小不必相同。

在大多数语言中,当存储“引用”或“指针”数组而不是对象实例本身时,这都是相同的。