C++、C#、C、D、Java などはゼロ ベースです。
Matlab は、私が知っている 1 で始まる唯一の言語です。
配列はポインター演算を使用して値を参照するためだと思います。基本的に、配列には連続したメモリがあり、5 番目の要素 (a[4]) を参照する場合は、int の + 4 * サイズが実行されます。
たとえば、1 から始めて 5 番目の要素を参照するには、+ (5-1) * int のサイズのようにする必要があります。
おそらく「C」の方が効率的であるためにそれを取得しました。0 から始まる配列の項目のアドレスを計算するには、Index を ItemSize で乗算するだけで十分です。1 から始まる配列の場合は、(Index-1)*ItemSize を計算する必要があります。最も人気のある言語は「C」、次に「C++」です。したがって、新しい言語も同じ規則に従う必要があります。これは、C/C++ を使用する人の間違いを避けるのに役立ちます。しかし、この質問はトピックから外れているようで、モデレーターによって閉じられると思います.
PS Delphi/Pascal の文字列は 1 ベースですが、配列の場合は範囲を指定する必要があるため、好きなものを使用できます。
10 個の整数 0..9 があるため