为什么数组中的索引总是从 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/