3

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

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

4

2 回答 2

5

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

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

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

于 2012-08-25T01:50:14.027 回答
0

对象是引用类型。地址处的值实际上是指向真正元素的指针。

于 2012-08-25T01:49:17.247 回答