Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么列表应该从0开始而不是从1开始?_Arrays_List - Fatal编程技术网

Arrays 为什么列表应该从0开始而不是从1开始?

Arrays 为什么列表应该从0开始而不是从1开始?,arrays,list,Arrays,List,我觉得没有很好的理由让列表和数组从索引0开始。 我认为从1开始比较自然,如L[1],…,L[length(L)]。 有些语言使用1而不是0,例如Matlab,但它们很少 有人有理由在列表中从零开始索引吗 PD:我已经阅读了C语言中的Dijkstra参数和指针参数,它们讨论了指针的内存偏移。我觉得它们不是很有说服力。在编程的早期,面向内存和程序员在地址方面遭受了很多痛苦。引入基于1的索引可能会造成另一场浩劫(计算开销)用于处理系统编程的程序的地址计算。将数组和指针保持为彼此的类似表示形式是一个很好

我觉得没有很好的理由让列表和数组从索引0开始。 我认为从1开始比较自然,如
L[1],…,L[length(L)]
。 有些语言使用1而不是0,例如Matlab,但它们很少

有人有理由在列表中从零开始索引吗


PD:我已经阅读了C语言中的Dijkstra参数和指针参数,它们讨论了指针的内存偏移。我觉得它们不是很有说服力。

在编程的早期,面向内存和程序员在地址方面遭受了很多痛苦。引入基于1的索引可能会造成另一场浩劫(计算开销)用于处理系统编程的程序的地址计算。将数组和指针保持为彼此的类似表示形式是一个很好的理由。

公平地观察到,对后数组集合使用基于0的索引本身并不是必要的,但有两个索引系统是一个麻烦(我认为VB6集合与数组)更进一步,使用单个索引系统有助于一致地处理原始集合类型和复杂集合类型(甚至根据所讨论的语言进行一般处理)。因此,根据类型,有选择地使用基于1和0的索引最多也没有好处,而使用基于0的索引至少有一些好处,我想这就是为什么它一直存在的原因。

这看起来没有建设性。你似乎不是在问问题,而是在寻找机会尝试说服我nce受访者认为他们错了,而你是对的。请看@HenningMakholm,这是主观的。IMO语言设计选择是建设性的,因为它们可能提供一些有价值的见解。@LuchianGrigore,但它不适合这种形式;也没有任何明确的答案。