そういう風に考えると、PascalやAdaは、配列の添字を実際の目的、つまりユーザー側の数値に合わせることによって型システムも活用して安全性を保とうとする仕組みが整っているから1からでもよいのであって、
Cの方式はそうじゃなく「メモリ上のこの辺りにあるという事を相対的に表してる」だけであって、「実際のユーザー側の数値とあわせる作業はプログラマ側で工夫してくれ」なので、メモリ上の相対位置を表すのに都合がよい方式にする事が合理的になり、それは当然ゼロ基準になる・・・・かも?><

つまり「1番目のデータを0で表すの気持ち悪い!」に対するいい感じの反論(?><; 解説?><;)は、
「C言語の配列の添字は、現実のn番目を表すような意味では無く、Cの配列と現実の対応はプログラマ側に任せられているので、1ベースでアクセスしたいのであれば、1ベースでアクセスするコードを自分で書く。それがC言語の方式」

ログインして会話に参加
:realtek:

思考の /dev/null