Arrays 为什么列表应该从0开始而不是从1开始?
我觉得没有很好的理由让列表和数组从索引0开始。 我认为从1开始比较自然,如Arrays 为什么列表应该从0开始而不是从1开始?,arrays,list,Arrays,List,我觉得没有很好的理由让列表和数组从索引0开始。 我认为从1开始比较自然,如L[1],…,L[length(L)]。 有些语言使用1而不是0,例如Matlab,但它们很少 有人有理由在列表中从零开始索引吗 PD:我已经阅读了C语言中的Dijkstra参数和指针参数,它们讨论了指针的内存偏移。我觉得它们不是很有说服力。在编程的早期,面向内存和程序员在地址方面遭受了很多痛苦。引入基于1的索引可能会造成另一场浩劫(计算开销)用于处理系统编程的程序的地址计算。将数组和指针保持为彼此的类似表示形式是一个很好
L[1],…,L[length(L)]
。
有些语言使用1而不是0,例如Matlab,但它们很少
有人有理由在列表中从零开始索引吗
PD:我已经阅读了C语言中的Dijkstra参数和指针参数,它们讨论了指针的内存偏移。我觉得它们不是很有说服力。在编程的早期,面向内存和程序员在地址方面遭受了很多痛苦。引入基于1的索引可能会造成另一场浩劫(计算开销)用于处理系统编程的程序的地址计算。将数组和指针保持为彼此的类似表示形式是一个很好的理由。公平地观察到,对后数组集合使用基于0的索引本身并不是必要的,但有两个索引系统是一个麻烦(我认为VB6集合与数组)更进一步,使用单个索引系统有助于一致地处理原始集合类型和复杂集合类型(甚至根据所讨论的语言进行一般处理)。因此,根据类型,有选择地使用基于1和0的索引最多也没有好处,而使用基于0的索引至少有一些好处,我想这就是为什么它一直存在的原因。这看起来没有建设性。你似乎不是在问问题,而是在寻找机会尝试说服我nce受访者认为他们错了,而你是对的。请看@HenningMakholm,这是主观的。IMO语言设计选择是建设性的,因为它们可能提供一些有价值的见解。@LuchianGrigore,但它不适合这种形式;也没有任何明确的答案。