
【6日でできるC言語入門】配列変数
C言語で大量のデータをまとめて扱いたいときに便利なのが配列変数です。配列を使うことで、同じ型の複数の値をひとつのまとまりとして管理できます。
たとえば、5人分の点数、12か月分の売上、複数のセンサー値など…個別の変数では手間がかかるケースでも、配列を使えば簡単かつ効率的に処理できます。
ここでは配列変数の使い方やメリット、注意点、活用例まで詳しく解説します。

1.配列変数の基本
1.1. 配列の宣言と利用
配列変数は「型 配列名[要素数];」の形式で宣言します。
添え字(インデックス)は必ず0から始まります。
サンプルプログラム1:3人分の点数を格納・表示
プロジェクト/ファイル名: Lesson31_1/main.c
#include <stdio.h>
int main(void) {
int score[3]; // 3つの要素を持つ配列
score[0] = 70;
score[1] = 80;
score[2] = 90;
int i;
for (i = 0; i < 3; i++) {
printf("%d人目の点数: %d\n", i+1, score[i]);
}
return 0;
}実行結果
1人目の点数: 70
2人目の点数: 80
3人目の点数: 90| 記述例 | 意味 |
|---|---|
| int score[3]; | int型3つ分の配列を宣言 |
| score[1] = 80; | 2番目の値に80を代入 |
| printf("%d", score[2]); | 3番目の値を表示 |
1.2. 配列の初期化
配列の宣言時にまとめて値を入れることもできます。
double prices[] = {120.5, 80.0, 65.5}; // 要素数は自動決定2.配列の応用
2.1. 配列とfor文の組み合わせ
配列はfor文と組み合わせると、すべての要素にまとめて処理を行えます。
サンプルプログラム2:合計と平均の計算
プロジェクト/ファイル名: Lesson31_2/main.c
#include <stdio.h>
int main(void) {
double data[3] = {2.4, 3.6, 5.0};
double sum = 0.0;
int i;
for (i = 0; i < 3; i++) {
sum += data[i];
}
printf("合計: %.1f\n", sum);
printf("平均: %.1f\n", sum / 3);
return 0;
}実行結果
合計: 11.0
平均: 3.72.2. 添え字の範囲と注意点
配列の添え字は0から「要素数−1」までです。範囲外を参照・代入すると、プログラムが異常終了するなど危険なので要注意です。
| 宣言 | 有効な添え字 |
|---|---|
| int a[4]; | 0, 1, 2, 3 |
| double x[5]; | 0, 1, 2, 3, 4 |
3.配列変数の活用例
3.1. 配列のまとめて初期化
プロジェクト/ファイル名: Lesson31_3/main.c
#include <stdio.h>
int main(void) {
int numbers[4] = {5, 10, 15, 20};
int i;
for (i = 0; i < 4; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}実行結果
5 10 15 203.2. 添え字を間違えた場合の例(注意喚起)
プロジェクト/ファイル名: Lesson31_4/main.c
#include <stdio.h>
int main(void) {
int n[2] = {1, 2};
n[2] = 3; // 範囲外アクセス
printf("%d\n", n[2]); // 未定義動作
return 0;
}このように範囲外アクセスをすると、エラーや予期しない挙動となります。C言語では添え字のミスに十分注意しましょう。
実行結果
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 詳細
警告 C6201 インデックス '2' は、有効なインデックスの範囲 '0' から '1' (スタックが割り当てられた可能性のあるバッファー 'n') を超えています。 Lesson31_4 C:\Users\joeac\source\repos\Lesson31_4\Lesson31_4\main.c 4
警告 C6386 'n' への書き込み中にバッファー オーバーランが発生しました: 書き込み可能なサイズは '8' バイトですが、'12' バイトを書き込む可能性があります。 Lesson31_4 C:\Users\joeac\source\repos\Lesson31_4\Lesson31_4\main.c 4
警告 C6385 'n' から無効なデータを読み取っています: 読み取り可能なサイズは '8' バイトですが、'12' バイトを読み取る可能性があります。 Lesson31_4 C:\Users\joeac\source\repos\Lesson31_4\Lesson31_4\main.c 5
警告 C6201 インデックス '2' は、有効なインデックスの範囲 '0' から '1' (スタックが割り当てられた可能性のあるバッファー 'n') を超えています。 Lesson31_4 C:\Users\joeac\source\repos\Lesson31_4\Lesson31_4\main.c 5
エラー C4789 関数 'main' で バッファー 'n' (サイズが 8 バイト) はオーバーランされます; 4 バイトがオフセット 8 から書き込まれます Lesson31_4 C:\Users\joeac\source\repos\Lesson31_4\Lesson31_4\main.c 4 まとめ
- 配列変数は複数データの一括管理に便利
- 添え字は0から開始し、範囲外に注意
- 宣言・初期化・for文との組み合わせで処理効率アップ
配列を使いこなせば、C言語のプログラムは格段に効率的・柔軟になります。
