と、いうのはすでに知っていると思います。忘れていたら 今覚えてください。配列の宣言の仕方: 配列のデータ型 配列名[配列の大きさ];
と宣言するとint型の変数a[0], a[1], a[2]を宣言したことになります。 これらは、「要素(element)」と呼ばれます。 []の中は、0から始まっていることに注意してください。 上のように宣言した場合a[3]は存在しません。int a[3];
これは、間違ったプログラムですが・・・
コンパイラは、何の注意もしてくれません。
それどころか、実行しても一見正常に見えます。
これは、たまたまa[3]に相当するところのメモリが
あいていたため、何事もなかったように振る舞っているだけです。
いつも正常に動作するとは限りません。
プログラム中に、こういう間違いがあり
途中から動作が変になったりすると、バグ取りは容易でありません。
さて、次は配列を宣言するときにまとめて、初期化する
方法を示します。しかし、これには少しばかり
予備知識がいります。
配列を初期化するには、配列が
静的変数か、外部変数でなくてはいけません。
詳しくは、あとの章で解説しますが、静的変数は
static、外部変数はexternをつけます。
また、2次元配列はa[3][4]などのように表します。
static int a[4][2] = {8, 7, 6, 5, 4, 3, 2, 1};
のように初期化した場合
となります。配列の[]の後ろから回るということを 覚えておいてください。 また、次のような初期化の方法もあります。a[0][0]=8, a[0][1]=7 a[1][0]=6, a[1][1]=5 a[2][0]=4, a[2][1]=3 a[3][0]=2, a[3][1]=1
これは、static int a[] = {1, 2, 3};
と、同じことです。static int a[3] = {1, 2, 3};
は、先ほどの知識でa[0]='A', a[1]='B', a[2]='C', a[3]='D' であることがわかります。次にstatic char a[] = {'A', 'B', 'C', 'D'};
としたらどうでしょうか。以前にも少し解説しましたが 文字列の最後には、ヌル文字(\0)がつきます。 従って上の例では、a[0]='A', a[1]='B', a[2]='C', a[3]='D', a[4]='\0'と なります。また、文字列を表すのに次のような表し方もありましたね。static char a[] = "ABCD";
これは、str[0]='A', str[1]='B', str[2]='C', str[3]='D', str[4]='\0'でしたね。char *str = "ABCD";
Update Nov/11/1996 By Y.Kumei