大量のデータを処理する

実践的なソフトウェアの開発では、同じ性質を持つデータを大量に扱わなければならない場面が数多く存在します。商品管理ソフトウェアの場合、「商品」というアイテムを、そのお店が管理する数だけ扱わなければなりません。そして、大量にある商品データの中から、目的の商品を検索したり、新しい商品の追加や、不要になった商品の削除などを行う操作を可能としなければならないのです。

より原始的なデータで例えると、100個の整数を扱わなければならない場面を考えてみてください。整数型は intで表すことができますが、100個の整数を保存するためにint型の変数を100個用意するのでしょうか。それは、あまりにも非効率的な作業です。このように、同じ性質のデータを大量に扱う場合は、データを並べて管理する配列を使います。配列は、同じデータ型の変数を連続して並べたものだと考えてください。同一の電車で「1号車」「2号車」のように、データが連結しているものとイメージしてください。

Visual C++ 2008 Express Editionのインストールや設定方法については「ゼロからはじめるC言語 - 環境構築編」を参照してください。

配列宣言子

配列を利用するには、配列宣言子を用いて配列を宣言しなければなりません。配列宣言子は、宣言の中で角括弧 [ ] で囲まれた、配列の大きさを表す式を識別子の直後に指定します。

[ 定数式opt ]

[ ] の中に指定する定数式は、0よりも大きい値の整数でなければなりません。負数や、浮動小数点数のような整数以外の定数を指定することはできません。ここに指定できるのは定数式だけなので、変数を含む式を指定することもできません。配列のサイズは、コンパイル時に決定されなければならないのです。

一般的な配列の宣言は、次のような形になるでしょう。

型 変数名 [ 定数式 ] ;

配列は、単体の値ではなく、複数の値を連続下領域に保存できます。前述したようにint型の整数を保存するにはint型の変数を個別に100回宣言するのではなく 100個の整数を保存できる配列を用意すればよいのです。このとき、配列が持つ個々の値のことを要素と呼びます。

配列宣言子に指定する定数式は、宣言する配列が保有できる要素の数を表します。例えば、int型の値(要素)を10個まで保存できる配列を表すitems変数を作成するには、次のように宣言します。

int items[10] ;

配列宣言子 [ ] の中に指定している定数式10が、配列のサイズを表しています。よってitems変数は、最大で10要素まで保存できる配列となります。使用する保存領域の解釈としてはint型変数を個別に10個用意した場合と同じですが、記憶領域が連続し、個々の要素に整数でアクセスできる点が異なります。

items[0]    items[1]    items[2]    items[3]    items[4]    items[5]    items[6]    items[7]        items[8]    items[9]

同一の型であれば、通常の変数と同じようにカンマ , で区切って同時に複数の配列を宣言することも可能です。

int x[5], y[3], ...

このように、配列宣言子を用いる点を除けば、通常の変数宣言と大きな違いはありません。