配列への値の格納と取得

配列を宣言したら配列の各要素に対して値を格納したり、逆に要素に格納した値を取得することができるようになります。ここでは C 言語で配列の要素に値を格納する方法、および要素から値を取得する方法について解説します。

(Last modified: )

配列への値の格納と取得

具体的な例を見ながら確認していきます。

int num[3];

上記は配列名 num の配列に int 型の値を格納する3つの要素を持つように宣言しています。配列の各要素は次のように区別する事ができます。

配列名[添字]

配列名の後ろに [] を付け、 [] の中に添字である数値を記述して各要素を区別します。先ほどの例で言えば各要素は次のように表すことができます。

num[0]
num[1]
num[2]

各要素は個別に変数を宣言した場合と同じように利用することができます。値を格納する場合はそれぞれの要素に対して = 演算子を使います。

int num[3];

num[0] = 10;
num[1] = 7;
num[2] = 25;

配列の要素に格納されている値を取得する場合も変数と同じように扱うことができます。

int num[3];

num[0] = 10;
num[1] = 7;
num[2] = 25;

printf("num = %d\n", num[0]);
printf("num = %d\n", num[1]);
printf("num = %d\n", num[2]);

添字(インデックス)に対する注意点

配列を使う時に注意しなければならないことが2つあります。まず 1 番目はインデックスが 0 から開始されるということです。

例として 3 個の要素を持つ配列を宣言した場合は、配列の各要素を表すために使われるインデックスは 0 から 2 になります。

num[0]
num[1]
num[2]

3 個の要素に対して、インデックスは 1 から 3 ではない点に注意して下さい。

2 番目の注意点は、配列の宣言時に指定した要素数よりも多い要素を使わないようにすることです。

int num[3];

num[0] = 10;
num[1] = 7;
num[2] = 25;
num[3] = 14;

上記では配列の宣言の時に要素数を 3 に設定していますが、領域を確保していない 4 番目の要素である num[3] に対して値を格納しようとしています。ここで問題となるのがこのように記述してもエラーとならない点です。領域を確保していない場所に値を書き込んでしまうため、何か他の目的で使われている場所に値を書き込んでしまうことになります。その結果としてプログラムが暴走するようなことにもなるため十分注意して下さい。

サンプルコード

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

#include <stdio.h>

int main(void){
  int kuku[9];
  int i;

  for (i = 1; i <= 9; i++){
    kuku[i - 1] = i * 3;
  }

  printf("3の段の九九を出力します\n");

  for (i = 1; i <= 9; i++){
    printf("3 * %d = %d\n", i, kuku[i - 1]);
  }

  return 0;
}

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

配列への値の格納と取得

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

配列への値の格納と取得

配列のインデックスは「0」から開始されることに注意して下さい。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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