【问题标题】:How is 'instruction' different from 'command'? 'list' from 'array'?“指令”与“命令”有何不同? '数组'中的'列表'?
【发布时间】:2016-08-08 06:20:06
【问题描述】:

对于具体的“列表”和“数组”,区别是取决于编程语言,还是在计算机科学领域是通用的? 我是 CS 新手,出于某种原因,我只听到 Python 中提到的“列表”和 Java 中的“数组”,从未听说过 Java 中的“数组”或 Python 中的“列表”。这是否意味着实施上的差异?还是只是命名?

【问题讨论】:

  • Python 有列表和数组,它们的行为不同。大多数时候,当在 Python 上下文中提到数组时,指的是 numpy 数组(而不是标准库中的数组)。所以是的,如果你在谈论一种特定的语言,肯定会有一些上下文依赖性。
  • @Evert 这个问题非常不适合程序员 - 它会很快被否决并在那里关闭,请参阅meta.programmers.stackexchange.com/questions/6483/… 推荐阅读:@987654322 @

标签: terminology


【解决方案1】:

这可能取决于实际的编程语言和/或平台......但更笼统地说:

  • 数组是一组连续的内存,以“打包”的方式保存相同类型的元素。
  • 列表是一组项目,由链接这些项目的指针(或类似机制)寻址。在内存中不一定是连续的

这是一个非常笼统的广泛描述......不同的语言和平台可能会以不同的方式实现。在某些情况下,数组和列表可能无法区分。

更可能的是,数组具有固定大小(要调整它的大小,您必须创建一个新数组并将原始内容复制到其中),并且不能有“洞”。列表具有(通常)动态容量,您可以在任何时候插入或删除项目而不会破坏原始列表。但同样,这些是可能因您使用的编程语言而异的实现细节。

【讨论】:

  • 我不同意。这是一种非常以C为中心的看待它的方式。 C#“列表”对象就是您在 C++ 中所称的“向量”。
  • @MartinBonner 我尝试(不确定是否成功)给出适用于多种语言的广泛描述,但是,是的,不可能不偏向某个地方。语言设计师可以随心所欲地标记事物:-)
  • C++ 或 Java 怎么样?我听说它们是最流行/标准的语言。这些语言中的“列表”、“数组”和“向量”是否不同?
猜你喜欢
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 2015-09-07
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多