C言語

【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. 練習問題

以下の課題に挑戦して、配列の基本を理解しましょう。

  1. 要素数5の整数型配列を宣言し、初期化して各要素を表示するプログラムを作成してください。
  2. 部分的に初期化された配列を作成し、未初期化の要素がどのように設定されるかを確認してください。
  3. 配列の各要素を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. まとめ

配列は、同じ型の複数の値を管理するための基本的なデータ構造です。宣言と初期化、要素へのアクセス方法を正しく理解し、配列を効率的に活用しましょう。