• ベストアンサー

配列の断面について

substring関数を利用したり配列の要素を参照したりする時に、0~nと言うふうになっていますよね。 通常、ループ文などではインデックスを使うときに判りやすいように1~nというふうに取り扱いますが、配列の要素を参照・更新する際に(i-1)などとしなければなりません。配列を宣言する際に「0~」を「1~」と言うふうに、配列の要素のアドレスと言うのかどうか分かりませんが変更出来ないのでしょうか?。 どうぞ宜しく御願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • oscarity
  • ベストアンサー率37% (11/29)
回答No.1

数値の一番シンプルな値は0です。メモリをゼロクリアすると、デバッグとかはチェックしやすいけど、中途半端な数値はそのつど混乱のもとになる。 最初のカウンタ値程度に考えていいんじゃないですか? 宣言は1から始まりますね。 でもこれも別に変じゃないですよ。 カウンタiをゼロクリアしてループする場合も #define IMAX = 100 という風に定義した値を使って、 int x[IMAX]; int i; memset(x, 0, sizeof(int)*IMAX); i=0; while(i < IMAX){ ・・・演算・・・ i++; } とかってやる人多いんじゃないかな。GUIに出さない限り、0で始まるほうが便利だと思います。

teddy1014
質問者

お礼

早速回答頂きましてありがとうございます。 ふっと考えたのですが、配列に格納する際に1からセットすれば、以降参照したり取り出したりする際にも1からにすれば良いのですよね。0は「undefined」のままでも構わないんですよね。

関連するQ&A