【发布时间】:2019-06-10 06:25:46
【问题描述】:
列表是如何实现异构的?我知道一个列表是一个动态的指针数组,它指向所需元素的内存位置,但是当索引指向的元素大小不同时,它是如何工作的。
指针指向的位置是否包含有关该位置所持有的类型的信息,如果是,那么这种信息是如何格式化、使用和返回的?
我了解 [1,2,3] 在内存中的外观,但不知道 [1,2,"abcdefg"] 在内存中的外观。
【问题讨论】:
-
使用指针的原因是它们(在这里简化)大小相同,因此您可以将它们组成的数组表示一个异构集合。
-
你如何想象
[1, 2, 3]在记忆中的样子? -
我想 [1,2,3] 是内存中彼此相邻的 3 个指针,它们指向 3 个不同的内存部分,每个部分 8 个字节。
标签: python list compiler-construction