【C言語】第3章第1回:配列の基本:宣言と初期化
配列は、複数の値を一つの変数で管理するために使用されるデータ構造です。この章では、配列の宣言方法や初期化の基本を学びます。
1. 配列とは?
配列は、同じデータ型の値を連続したメモリ領域に格納するためのデータ構造です。各値はインデックスでアクセスできます。
例:整数型の配列
int numbers[5]; // 要素数5の配列を宣言
この例では、numbers
という名前の配列が作成され、5つの整数値を格納できます。
2. 配列の宣言と初期化
配列は以下のように宣言と同時に初期化できます:
基本的な初期化
int numbers[5] = {1, 2, 3, 4, 5}; // 5つの要素を持つ配列を初期化
配列を宣言した後で個別に初期化することも可能です:
int numbers[5];
numbers[0] = 1; // 最初の要素に値を代入
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;
部分的な初期化
部分的に初期化する場合、未初期化の要素はデフォルト値(整数型では0)になります。
int numbers[5] = {1, 2}; // 残りの要素は0に初期化
3. 配列の要素へのアクセス
配列の各要素にはインデックスを使ってアクセスします。インデックスは0から始まります。
例:配列の要素を表示するプログラム
#include <stdio.h>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}
return 0;
}
解説:
numbers[i]
:配列のインデックスi
に対応する要素を取得。- ループを使って配列の全要素を順に表示します。
4. 配列の宣言時に要素数を省略
初期化と同時に宣言する場合、要素数を省略できます。
int numbers[] = {1, 2, 3}; // 要素数は初期化リストに基づいて決定
この場合、配列numbers
の要素数は3になります。
5. 配列を扱う際の注意点
- インデックスの範囲外アクセス:配列の範囲外にアクセスすると、不正な動作やエラーの原因となります。
- 初期化の不足:未初期化の配列要素を使用すると、予期しない結果が生じる可能性があります。
6. 練習問題
以下の課題に挑戦して、配列の基本を理解しましょう。
- 要素数5の整数型配列を宣言し、初期化して各要素を表示するプログラムを作成してください。
- 部分的に初期化された配列を作成し、未初期化の要素がどのように設定されるかを確認してください。
- 配列の各要素を2倍にして表示するプログラムを作成してください。
7. 練習問題の解答と解説
問1の解答
#include <stdio.h>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}
return 0;
}
問2の解答
#include <stdio.h>
int main() {
int numbers[5] = {1, 2};
for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, numbers[i]);
}
return 0;
}
問3の解答
#include <stdio.h>
int main() {
int numbers[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
numbers[i] *= 2;
printf("numbers[%d] = %d\n", i, numbers[i]);
}
return 0;
}
8. まとめ
配列は、同じ型の複数の値を管理するための基本的なデータ構造です。宣言と初期化、要素へのアクセス方法を正しく理解し、配列を効率的に活用しましょう。