配列を初期化する

配列を宣言するときに初期化を同時に行うことができます。これは変数の宣言と初期化を同時に行うのと同じです。ここでは C 言語で配列の宣言時に同時に初期化を行う手順について解説します。

(Last modified: )

配列を初期化する

配列を宣言すると同時に格納する値を初期化するには次の書式を使います。

データ型 配列名[要素数] = {値0, 値1, ...};

各要素に格納する値を {} の間にカンマ(,)で区切って指定します。

具体的には次のように記述します。

int num[3] = {5, 10, 8};

要素数が 3 ですので、初期化するための値も 3 つ指定しています。これは次のように記述した場合と同じです。

int num[3];

num[0] = 5;
num[1] = 10;
num[2] = 8;

要素数を指定せずに初期化する

配列を宣言と同時に初期化する場合は要素数を省略することができます。この場合は初期値として指定した値の数が要素数となります。

データ型 配列名[] = {値0, 値1, ...};

具体的には次のように記述します。

int num[] = {5, 10, 8};

要素数が省略されていますので、この配列の要素数は初期化で指定した値の数である3となります。

要素数と初期化の値の数が違う場合

配列を初期化する場合は要素数と初期値の数が同じことが基本ですが、要素数よりも初期値の数が少なくても構いません。例えば次のような場合です。

int num[5] = {5, 3, 12};

要素数は 5 となっていますが初期化用の値は 3 つしか記述していません。このように値が指定されなかった要素については 0 が初期値として格納されます。よって、先ほどのサンプルは次のように記述したのと同じです。

int num[5] = {5, 3, 12, 0, 0};
サンプルコード

では簡単なサンプルプログラムを作成して試してみます。

#include <stdio.h>

int main(void){
  int sansuu[3] = {72, 67, 84};
  int kokugo[] = {67, 92, 71};
  int i;

  for (i = 0; i < 3; i++){
    printf("%d人目の成績です。\n", i + 1);
    printf("算数:%d\n", sansuu[i]);
    printf("国語:%d\n", kokugo[i]);
  }

  return 0;
}

上記を「test4-1.c」の名前で保存します。まずコンパイルを行います。

配列の初期化

コンパイルが終わりましたら「test4-1」と入力して実行します。

配列の初期化

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。