Previous: 配列の宣言
Up: 配列 I
Next: 変数の初期化と配列の初期化
Previous Page: 配列の宣言
Next Page: 変数の初期化と配列の初期化

配列の操作

配列は多くの値を格納できる変数であり、変数の集合と考えることも出来る。この意味 で、配列のうち一つの値を格納出来る部分を配列の要素という。 配列に値を格納したり、取り出したりするためには、この要素にアクセスする方法が 分かればよい。配列の要素を指定するには、次のように行う。

int     rei[100];
        ...
    rei[0] = 3;
    rei[2] = 10;

即ち、配列[要素番号] で指定する。この時、注意するのは、100個の大きさ の配列を宣言したとき、要素の数は100個なのだが、C 言語では配列は必ず0番から 始まる規則になっているので、要素番号は0番から99番までであるという事である。 一般に、n の大きさの配列を宣言すると、要素番号は、 0番から n-1 番までである。 ( 要素番号の事を、C 言語では、添字という。 )

配列の添字を用いて、要素を指定した場合、通常の変数とまったく同一に扱うことが 出来る。また、添字は、整数なので、整数式を用いることが出来る。

int     i, rei[100];
        ...
    for (i=0; i<100; i++){
        rei[i] = 0;
    }

この例は、配列 rei の全ての要素に 0 を代入している。

char    i, str[26];
        ...
    for (i=0; i<26; i++){
        str[i] = 'a' + i;
    }

上の例では、文字型の配列 str の要素に 'a' から 'z' までの文字を順に代入 している。 また、次のように書き換える事も出来る。

int i;  char str[26];
        ...
    str[0] = 'a';
    for (i=1; i<26; i++){
        str[i] = str[i-1] + 1;
    }

上の例で注意することは、ループが i=1 から始まっていることである。 これを、i=0 から始まるように書くと、str[i-1] が、最初のループ で str[-1] となり、深刻な事態を引き起こす。配列の範囲を越えた添字の 指定は絶対にしてはならない。

また、次の例は誤りである。

間違った例
    int rei1[10], rei2[10];
        ...
    for (i=0; i<10; i++){
        rei1[i] =  i;
    }
    rei2 = rei1;

この例の誤りは、rei2 = rei1 である。配列名は、変数ではないので、配列 への代入はできない。代入できるのは、配列の要素のみである。従って、配列 rei1 の中身を全て rei2 にコピーしたい場合は、ループを使って 要素から要素へとコピーするようにしなければならない。

間違った例
    int rei1[10], rei2[10];
        ...
    for (i=0; i<10; i++){
        rei1[i] =  i;
    }
    for (i=0; i<10; i++){
        rei2[i] = rei1[i];
    }

maruyama@wakhok.ac.jp
1995年02月08日 (水) 18時57分57秒 JST