プログラミングをしていると、「クラス全員のテストの点数」や「1週間の最高気温」のように、たくさんの同じ種類のデータを扱いたい場面がよく出てきます。そんなとき、score1
, score2
, score3
… のように一つ一つ変数を宣言するのは大変ですよね。
この問題をスマートに解決してくれるのが**「配列 (Array)」**です。この記事では、C言語における配列の基本的な考え方と使い方を、分かりやすく解説します。
配列とは? 〜 同じ型の変数の集合
配列とは、同じデータ型の変数を、複数個まとめて連続的に格納できるものです。
** analogy:** 配列は、**「連結されたロッカーや郵便受け」**をイメージすると分かりやすいです。それぞれのロッカーには「0番」「1番」「2番」…と番号が振られており、その番号を指定して中のデータを取り出したり、入れたりします。
配列の作り方(宣言と初期化)
配列を使うには、まず「どのデータ型のロッカーを」「何個用意するか」をコンピュータに伝える宣言が必要です。
配列の宣言
データ型 配列名[要素数];
例えば、整数(int
)を5個格納できる配列を作るには、次のように書きます。
int test_scores[5]; // int型の要素を5個持つ配列
宣言と同時に初期化
配列を宣言する際に、{}
を使って初期値を設定することもできます。
// 5個の要素に初期値を設定
int test_scores[5] = {85, 92, 78, 95, 88};
また、初期値を設定する場合は、要素数を省略することも可能です。この場合、コンパイラが {}
の中の値の数から、要素数を自動的に判断してくれます。
// 要素数は5だと自動的に判断される
int test_scores[] = {85, 92, 78, 95, 88};
配列の要素へのアクセス方法
配列の中の個々のデータ(要素)にアクセスするには、**インデックス(添え字)**と呼ばれる番号を使います。
配列名[インデックス]
ここで非常に重要なのが、コンピュータの世界では数を**0
から数え始める**ということです。
つまり、要素数が5の配列 test_scores
の場合:
- 1番目の要素は
test_scores[0]
- 2番目の要素は
test_scores[1]
- …
- 5番目(最後)の要素は
test_scores[4]
となります。
int first_score = test_scores[0]; // 85が取得される
test_scores[2] = 80; // 3番目の要素を80に更新
配列と for
ループは最高のパートナー
配列の真価は、for
などのループ処理と組み合わせることで発揮されます。ループを使って、配列の全要素に効率的にアクセスできます。
サンプルコード:5つの数値を入力させ、合計と平均を計算する
#include <stdio.h>
int main(void) {
int i;
int data[5];
int sum = 0;
// forループを使って、配列に5回データを入力させる
for (i = 0; i < 5; i++) {
printf("%d個目の数値を入力してください: ", i + 1);
scanf("%d", &data[i]);
}
// forループを使って、配列の全要素を合計する
for (i = 0; i < 5; i++) {
sum = sum + data[i];
}
printf("\n入力されたデータ:\n");
for (i = 0; i < 5; i++) {
printf("%d ", data[i]);
}
printf("\n\n合計値: %d\n", sum);
printf("平均値: %.2f\n", (double)sum / 5.0);
return 0;
}
このように、ループのカウンタ変数 i
を配列のインデックスとして使うことで、大量のデータも簡潔なコードで扱うことができます。
様々なデータ型の配列
配列は int
型だけでなく、double
型や char
型など、様々なデータ型で作成できます。
double temperatures[7]; // double型の配列
char initials[] = {'A', 'B', 'C'}; // char型の配列
特に、文字(char
)を格納する char
型配列は、C言語で「文字列」を扱う際の基本となる、非常に重要な要素です。
まとめ
- 配列は、同じ型のデータをたくさん扱うための便利な仕組み。
- インデックスは
0
から始まる。 for
ループと組み合わせることで、配列の全要素を効率的に操作できる。
配列は、C言語プログラミングの基本中の基本です。まずは簡単な配列を作って、ループで値を表示するところから慣れていきましょう。