我已经自学了一段时间,但本学期我终于有机会参加真正的计算机科学类(class)。 今天,我们有一个问题,询问数组下标为 100 会做什么:
pixelArray[100]
然而,所有听起来正确的答案都说上面的 loc 访问了“数组中的第 100 个像素”。我确信这是一个棘手的问题,因为 PixelArray[100] 将是第 101 个像素。但不是。 (我还无意中说了 99 而不是 101,并听了整个“数组从零开始计数”的内容)
我一直以为是这样的:
var foo = arbitraryArray[5];
/*
foo is the sixth element of the array
foo is the element at index 5
*/
但是按照老师的描述,任意数组[5]是数组的第五个元素。
我并不是想证明我的老师是错的,我确信她至少大部分是对的。我唯一的问题是,我疯了还是“第 X 个元素”这句话意味着从 1 开始计数?
最佳答案
你的老师错了。
array[5]
是数组的第六个元素。
出现这种情况的原因:
- Java 数组是从零开始的,因此 array[0] 是第一个元素
- 数组需要(至少)6 的大小来寻址索引 5 处的元素
- 索引 5 处的元素之前有 5 个元素,即 0、1、2、3 和 4 处的元素
有些语言使用基于一的数组(但没有一个值得了解)
关于java - 术语:数组的第 X 个元素与索引 X 处的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421357/