配列の初期化

広告

変数では宣言と同時に初期化をすることが出来ましたが、配列も同じように宣言と同時の初期化を行うことが出来ます。

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

データ型 配列名[要素数] = {値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};

サンプルプログラム

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

test4-1.c

#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 )