高级语言[例如:c#、javascript、python...如何创建数组
How do high level languages [eg: c#, javascript, python....] create arrays
在低级语言中,您必须在创建数组时给出数组的长度,但在高级语言中则不需要,那么它是如何工作的?计算机如何以防止内存冲突的方式创建数组,如果它与其他内存地址冲突会发生什么?
c# 和 (python, javascript) 之间存在很大差异。 c# 创建任何其他静态语言的数组,它在堆上的内存上分配块,并为您提供指针、长度和容量。当涉及 python 和 js 时,当你分配列表时,它也有大小和上限,但你只能更改大小和上限是抽象的,还需要注意的是 py 和 js 总是将值存储为变体(你可以在同一个列表中添加字符串和 int), 意味着它们也在堆上,你拥有的整数列表实际上是指针列表。
在低级语言中,您必须在创建数组时给出数组的长度,但在高级语言中则不需要,那么它是如何工作的?计算机如何以防止内存冲突的方式创建数组,如果它与其他内存地址冲突会发生什么?
c# 和 (python, javascript) 之间存在很大差异。 c# 创建任何其他静态语言的数组,它在堆上的内存上分配块,并为您提供指针、长度和容量。当涉及 python 和 js 时,当你分配列表时,它也有大小和上限,但你只能更改大小和上限是抽象的,还需要注意的是 py 和 js 总是将值存储为变体(你可以在同一个列表中添加字符串和 int), 意味着它们也在堆上,你拥有的整数列表实际上是指针列表。