第22回
データ構造(1)~配列とその扱い

配列の基本

同じ型の変数が並んだものを「配列」と言います。C以外でも多くの高級言語に採用されているため、基本的なことはみなさんご存じだと思います。

要素数と添字

通常の変数は
unsigned short int num;
のように型と名前を示して宣言しますが、配列ではさらに要素数を加えて以下のように宣言します。
unsigned short int num[10];
名前(上の例では"num")が変数名で、それに続く[ ]内に示した"10"が、配列の要素数です。上記のように宣言すると
unsigned short int型の変数が10個確保され
その全体を"num"という名前で扱える
ようになります。

配列の各要素は添字(またはインデックス)と呼ばれる番号で一意に指定できます。Cでは先頭が0で、1ずつ増加します。上記のように宣言した配列numは、図1のような形で扱えます。


添字の最大値

numの3番目の要素は
num[2]
で表せます。配列の最後の要素は
num[9]
で、それ以降には配列の要素は存在しません。最大の添字を超える指定をすると、コンパイル時にエラーとなります。

宣言時には[ ]内に『要素数』を記述しますが、各要素を個別に示す場合の添字は『要素数-1』までしか存在しません。この点に注意が必要です ※1

順序を示す番号が0から始まるのはコンピュータ独特の流儀で、日常生活では1から始まるのが普通です。このことが、思わぬミスを呼ぶ場合もあります。

BASICでは配列の添字が1から始まるのが基本の仕様で、これを基にしたMicrosoftのVisual Basic(VB)でもバージョン6までは同じように添字(VBではインデックス)が1から始まるようになっていました。添字を0から始めたいときには、宣言セクションで"OptionBase 0"と記述することになっていました。しかし、Visual Studio .NET以降はVBを含むすべての言語で配列の添字が0から始まる仕様に変更されました。VB 6はいまだにユーザーが多いため、戸惑う人も少なくないようです