在基于0的索引系统中,人们是否将索引0处的元素称为"第一个"或"第0个"元素?

pol*_*nts 8 language-agnostic terminology conventions

例如,在Java/C++中,你是否随便说这'a'是第一个字符"abc",还是第0个字符?

人们都说两者都是模棱两可的,还是有实际的约定?


来自维基百科关于Zeroth文章的一句话:

在计算机科学中,数组引用通常也从一开始就是0如此,因此计算机程序员可能会在其他人可能首先使用的情况下使用第0个,等等.

这似乎支持这样一种假设,即它总是模糊不清.


感谢Alexandros Gezerlis(请参阅下面的答案)找到这个引用,如何像计算机科学家一样思考: Allen B. Downey,Jeffrey Elkner和Chris Meyers的Python学习,第7章:

第一个字母"banana"不是a.除非你是计算机科学家.出于不正当的原因,计算机科学家总是从零开始计算.第0个字母(零-eth)"banana"b.第1个字母(1-eth)是a,第2个(2-eth)字母是n.

这似乎表明我们作为计算机科学家在处理基于0的索引系统时应该拒绝"第一","第二"等自然语义.

这句话表明,或许还有现在某些语言正式裁决,所以我做了这个问题[language-agnostic].

Jas*_*oco 25

它是数组中的第一个字符或元素,但它位于索引零处.


Jas*_*ols 9

术语"第一"与数组的绝对索引无关,而只是它作为最低索引元素的相对位置.例如,Turbo Pascal允许数组中的任意索引(例如5到15).位于数组[5]的元素仍将被称为第一个元素.


小智 6

引用这篇维基百科文章:

虽然"零"一词本身并不是模糊的,它缺乏的情况下,当该序列的所有后续元素引起混淆,因为他们被称为"第一","第二"等相冲突的那些话正常的日常含义.

所以我会说"先".