奇思妙想 · 2024年 5月 8日 0

为什么数组下标从0开始?

60 次浏览

尽管现代大多数现代编程语言的数组索引是从0开始,依然有一些语言下标按1开始,比如Fortran/MATLAB等。数组从0开始有如下优势:

  • 计算机二进制系统的数值形态初始值就是0,地址也是以0开始的
  • 与内存地址直接对应,数组和指针可以直接对应,汇编地址指令更易理解
  • 数组首元素地址和数组地址一致,访问第一个元素更高效(尽管编译器可以特意指定下标为1为下标为0,但对于一些编程语言将a[i] == *(a + i)会造成不统一)

不以0为数组下标

  • VB 提供一种选择,不用0作为下标,设置为1,如下:
    声明语句使用 Option Base (1)
  • Pascal 数组声明可以指定数组下标起始,可以设置为0,也可以设置为1.