C言語

配列とは

プログラムの中では、たくさんのデータを扱う場合があります。
このようなとき、1つ1つの変数を管理するのは大変ですよね。
そんなときに便利なのが、配列(array)という仕組みです。
配列を使うと、同じ種類のデータをまとめて扱うことができます。
今回は、この「配列」とは何か、基本的な考え方を説明します。

配列とは

いくつも同じ名前を持つ、同じ種類の箱が横に並んでいるイメージを思い浮かべてください。
このように並んだ箱の集まりを配列(array)といいます。
また、配列の中のそれぞれの箱のことを要素と呼びます。

つまり、配列とは、「同じ型のデータをまとめ扱う仕組み」です。
1つ1つの変数を別々に用意する代わりに、同じ名前でまとめて扱えるのが特徴です。

配列の宣言

例えば、同じ型(例:int型)の変数を10つ用意したいとします。

int test1;
int test2;
int test3;
 /* : */
int test10;

このように、1つずつ宣言すると、手間がかかってしまいますし、プログラムも長くなってしまいます。

そこで、便利なのが配列です。
配列を使うと、次のようにまとめて宣言できます。

int test[10];

この1行で、「test」という名前を持つ、10つのint型の変数をまとめて扱えるようになります。

配列の宣言の構文は次の通りです。

型 配列名[要素数];

型: intchar など、配列に入れるデータの型です。
配列名:変数名と同義で、自由に名前をつけます。
[要素数]:配列の中にいくつのデータを入れるかを数字で指定します。

これだけで、指定した数の変数をまとめて使えるようになります。

配列の使い方

配列に値を代入するには、次のように書きます。

配列名[添字] = 式;

添字(そえじ)とは、どの要素(箱)に値を入れるかを指定する番号のことです。
添字は0から始まるので、配列の一番最初の箱に値を格納したい場合は、[0]を、その次は[1]というように続きます。

実際のプログラムの例を見てみましょう。

int test[5]; // 5つのint型の配列を宣言

test[0] = 100;
test[1] = 80;
test[2] = 90;
test[3] = 20;
test[4] = 60;

最初に配列を宣言し、そのあとで各要素に値を代入しています。
この例では、test[0]test[4] までの5つの箱に点数を入れています。

もし [5] のように指定すると、存在しない場所を指すため、誤動作の原因 になります。

配列の初期化

変数の初期化と同様に、配列も宣言と同時に値を入れることができます。
これを配列の初期化といいます。

配列の初期化は、次のように書きます。

型 配列名[要素数] = { 値1, 値2, ... };

例えば、先ほどのプログラムを予め入れておきたい場合は、次のように書きます。

int test[5] = { 100, 80, 90, 20, 60 };

これで、
test[0] には、100
test[1] には、80
test[2] には、90
test[3] には、20
test[4] には、60
が自動的に代入されます。

配列の出力

配列に入っている値を順に表示するには、for文とprintf関数を組み合わせて使います。

次のプログラムを見てください。

#include <stdio.h>

int main(void)
{
  int i;
  int test[5] = { 100, 80, 90, 20, 60 };
  
  for(i= 0; i < 5; i++) {
    printf("%d番目の点数は%dです。\n", i+1, test[i]);
  }

  return 0;
}

プログラムの説明

  1. int test[5] = { 100, 80, 90, 20, 60 }; で5つの点数を配列にまとめて代入しています。
  2. for(i= 0; i < 5; i++) で変数 i を0~4まで変化させています。
  3. test[i] 添字を変数 i にすることで、添字が0,1,2,3,4と変化することで、test[0]test[4] の値を順に取り出しています。
  4. printf("%d番目の点数は%dです。\n", i+1, test[i]);i+1 は、0~4を1~5としたいため、+1しています。

プログラムの実行結果は次の通りです。

    1番目の点数は100です。
    2番目の点数は80です。
    3番目の点数は90です。
    4番目の点数は20です。
    5番目の点数は60です。

    まとめ

    • 配列は、同じ型のデータをまとめて扱う仕組み
    • 宣言は 型 配列名[要素数]; の形で行う
    • 添字 [ ] を使って値を代入・参照する
    • 添字は 0から始まる
    • for 文を使うと、配列を効率よく処理できる

    -C言語