为什么数组中的索引总是从 0 开始?和二进制有关系吗?例如:

var myArray = [5,6,7,8];

要访问数字 5,您必须说
myArray[0]

但为什么?

不,我没有真正的问题。正如您显然可以看出我对这些东西很陌生。

最佳答案

我敢肯定这已经被问过一百次了,但我会咬一口。

查看“索引”或“键”的一种方式是“偏移量”。
myArray 本质上充当指向一系列项目中第一个项目的指针。具体来说,它指向内存中的数字“5”。因此,当您说 myArray[1] 时,就像在说“myArray 中第一个元素的位置加上 1 个项目”,因此您将跳过第一个元素。

在 C 中,当您编写 *myArray(指针取消引用)时,它实际上会返回第一个元素。

#include <stdio.h>

int main(void) {
    int myArray[] = {5,6,7,8};
    printf("%d",*myArray); // prints "5", equivalent to myArray[0]
    printf("%d",*(myArray+1)); // prints "6", equivalent to myArray[1]
    return 0;
}

除了“这就是计算机的工作方式”之外,还有 more practical 原因。

关于javascript - 数组中的第一个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18157146/

10-12 12:18
查看更多