Zeroは、コンパイラの実装の容易さの中で、多次元配列を非常に簡単に許可するため、最初のインデックスとして一般的に使用されます。
0を使用すると、次の例で示されているようにアレイをインデックス作成できます： `配列[y + x * x_length]`、xは水平座標、yは垂直座標、y_lengthはy + 1の最大値です。これは、次のような多次元配列を使用するのと同等です。`配列[x] [y] `。

また、コンパイラが「Array [n]」を「*（array + n）」に置き換えることができます。これは、nが最初のアイテムへのポインターであると仮定します。これにも興味深い結果があります。この方法で配列を処理する多くの言語で、c、 `n [array]のような非常に強力なタイプシステムはありません。

スタートとして1を使用することの利点は、通常、初心者にとってより直感的であることです。
Zero is commonly used as the first index because it allows multi-dimensional arrays very easily, among ease of compiler implementations. 
Using 0 allows for the array to be indexed as demonstrated in the following example: `array[y + x * x_length]`, where x is the horizontal coordinate, y is the vertical coordinate, and y_length is the maximum value of y + 1. This is equivalent to using multidimensional arrays like this: `array[x][y]`.

It also allows for the compiler to replace `array[n]` with `*(array + n)`, assuming n is a pointer to the first item. There is also an interesting consequence of this: In many languages that handle arrays this way and don't have a very strong type system, like C, `n[array]` is equivalent to `array[n]`.

The benefit of using 1 as the start is that it is usually more intuitive to beginners.