在讨论编程时,有几次我对使用序数数字引用连续的基于零的数组元素的不同观点引起了误解。似乎有两种观点:
a[0] = "first";
a[1] = "second";
a[2] = "third;
VS
a[0] = "zeroth";
a[1] = "first";
a[2] = "second";
我总是喜欢第一个,知道“第n个”元素是“索引n-1的元素”。但我很惊讶有多少人发现反直觉并使用了后一版本。
这些惯例之一是否比另一个更正确?我应该在讨论或文档中使用哪一种来避免误解?
答案 0 :(得分:10)
我认为单词“first”的英文含义是明确的,并且指的是序列的初始元素。 “第一个”指的是初始元素的后继是错误的。
如果可能存在混淆,我会说“第3个元素,在索引2”。
答案 1 :(得分:5)
元素索引几乎是语言依赖(例如C:0,Lua:1),而第五个元素是第五个元素,它只是索引可能会有所不同;)
我猜这太过分散了答案......
答案 2 :(得分:3)
在某些语言中,例如Pascal,您可以明确指定索引范围。即。
var stuff : array[-3..3] of integer;
stuff[-3]
仍然是数组中的第一个元素,而不是负数的第三个元素。
答案 3 :(得分:1)
任何人说'第零'都不能真正相信基于零的索引。
答案 4 :(得分:0)
第一个是首先从堆栈中取出的那个。