arrays - 高级语言 [eg: c#, javascript, python ....] 如何创建数组
问题描述
在低级语言中,您必须在创建时给出数组的长度,但在高级语言中您不需要,那么它是如何工作的?计算机如何以防止内存冲突的方式创建数组,如果它与其他内存地址冲突会发生什么?
解决方案
c# 和 (python, javascript) 之间有很大的不同。c# 与任何其他静态语言一样创建数组,它在堆上的内存上分配块,并为您提供指针、长度和容量。对于python和js,当你分配列表时,它也有大小和上限,但你只能改变大小和上限是抽象的,还有一点需要注意的是py和js总是将值存储为变体(你可以把字符串ans int in同一个列表),女巫意味着它们也在堆上,你拥有的int列表实际上是指针列表。
推荐阅读
- python - AttributeError: 'list' object has no attribute 'timeout' - 尝试使用 BeautifulSoup 处理多个 URL
- spring-boot - Spring-boot 2缺少日志
- javascript - 在 vue.js 的数组中返回“未定义”的对象值
- java - Java 库维护/更改是否可能不影响使用它的应用程序?
- julia - Julia 1.0.0 解析函数溢出错误似乎很奇怪
- mongodb - mongodb 在数组中使用聚合
- loops - 为什么我的变量在我的循环中没有增加?
- coq - 带有 impl 的 setoid_rewrite 不适用于 `A -> B` 类型的引理
- r - 如何使用 R 中的一些嵌套因子来处理不平衡的 Model II 和 Model III 分析?
- excel - countif 使用过滤列 vba 更改