例如,在Java / C ++中,您是否随便说'a'
是"abc"
的第一个字符,或第零?
人们都说两者都是模棱两可的,还是有实际的约定?
维基百科对Zeroth文章的引用:
在计算机科学中,数组引用通常也从
0
开始,因此计算机程序员可能会在其他人可能首先使用的情况下使用第0个,等等。
这似乎支持这样一种假设,即它总是模棱两可的。
感谢Alexandros Gezerlis(see his answer below)发现这句话,来自如何像计算机科学家一样思考:用Python学习,作者:Allen B. Downey,Jeffrey Elkner和Chris Meyers, chapter 7:
"banana"
的第一个字母不是a
。除非你是计算机科学家。出于不正当的原因,计算机科学家总是从零开始计算。"banana"
的第0个字母(零-eth)为b
。第1个字母(1-eth)为a
,第2个(2-eth)字母为n
。
这似乎表明我们作为计算机科学家在处理基于0的索引系统时应该拒绝“第一”,“第二”等自然语义。
这句话暗示也许 ARE 某些语言的官方裁决,所以我提出了这个问题[language-agnostic]
。
答案 0 :(得分:25)
它是数组中的第一个字符或元素,但它位于索引零处。
答案 1 :(得分:9)
术语“第一”与数组的绝对索引无关,而只是它作为最低索引元素的相对位置。例如,Turbo Pascal允许数组中的任意索引(例如5到15)。位于数组[5]的元素仍将被称为第一个元素。
答案 2 :(得分:6)
虽然“第0”这个词本身并不存在 暧昧,它会造成歧义 所有后续元素 缺乏背景时的顺序,因为 他们被称为“第一”,“第二”, 等与正常相冲突 这些话的日常意义。
所以我会说“先”。
答案 3 :(得分:4)
可能是主观的,但我把它称为第一个元素或元素零。这是第一个,除了艾萨克·阿西莫夫的机器人法则之外,我甚至不相信第0个是真正的词: - )
根据定义,第一个之前的任何东西都成为第一个,并将其他所有东西推出。
答案 4 :(得分:2)
绝对是第一个,直到今天才听到第0个消息!
答案 5 :(得分:2)
我同意这里的大多数答案,其中第一个字符是零索引,但仅供记录,以下内容来自Allen Downey的书“Python for Software Design”:
所以b是第0个字母(“零-eth”) 'banana',a是第1个字母 (“one-eth”),n是第2 (“双-eth”)信。
因此,他通过使用:
消除了歧义a)一个数字,然后是“th”,或 b)一个词,然后是“-eth”。
答案 6 :(得分:2)
C和C ++标准说“初始元素”和“第一元素”,意思相同。如果我记得毫不含糊,我会说“初始”,“第0”或“从零开始计数”。但通常我说“先”。香蕉的东西要么是幽默的夸张,要么是一点点疯狂(我怀疑前者 - 这只是解释0索引的一种方式)。我不认为我知道任何人实际上会说“第一”意味着“0索引数组的索引1”,除非他们在同一段中首先说“第0”,以便明确它们的意思。 / p>
答案 7 :(得分:1)
这取决于你是否是艾萨克·阿西莫夫的robot系列的粉丝。