【问题标题】:Terminology: Xth element of array vs element at index X术语:数组的第 X 个元素与索引 X 处的元素
【发布时间】:2017-01-18 04:22:09
【问题描述】:

我已经自学了一段时间,但我终于有机会参加本学期真正的 Comp Sci 课程。 今天,我们有一个问题,问一个数组下标为 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
*/

但是按照老师描述的方式,arbitraryArray[5]是数组的第五个元素。

我不想证明我的老师错了,我相信她至少大部分是对的。我唯一的问题是,我是疯了还是“第 X 个元素”的措辞暗示从 1 开始计数?

【问题讨论】:

  • 您的讲师可能只是说错了,因为很容易将索引(或偏移)计数与序数计数混淆。这些计数方法的技术术语有助于讨论……ordinal 是序列中元素的位置(第一个、第二个……),zero-based numbering 是索引/偏移量。

标签: java arrays terminology


【解决方案1】:

你的老师错了。

array[5] 是数组的第六个元素。

为什么会这样:

  • Java 数组是从零开始的,所以 array[0] 是第一个元素
  • 数组需要(至少)6 的大小来寻址索引 5 处的元素
  • 在索引为 5 的元素之前有 5 个元素,即 0、1、2、3 和 4 的元素

有些语言使用基于 1 的数组(但没有一个值得了解)

【讨论】:

  • 至少我知道我并不孤单。就像我说的,我不会去纠正她……这可能是一种简化,因为这是他们提供的第一门课程,而不是像 Alice 或类似的伪语言。
猜你喜欢
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多