配列を構成する1つ1つのデータは要素と呼ばれます。
配列は、ほとんどのプログラミング言語に存在する基本的なデータ構造の1つです。しかし、言語ごとに機能的な違いはあります。
以下のコードは、C言語で配列を使う例です。配列を変数として定義し、その要素に値を代入しています。
int main(void)
{
int array[10]; // 配列型の変数 array を定義
// 要素の型は int で、要素数は 10
[3] = 5; // 3番目の要素に 5 を代入
array
// 以下略
}
C言語の配列についての詳細は、C言語編第25章を参照してください。
ある要素を特定するために、添字(インデックス)と呼ばれる値を使用します。多くのプログラミング言語では、添字は
0以上、あるいはまれに
1以上の整数です。上記のコード例で、array[3]
のような表記が添字の使用例で、この場合は、配列 array の先頭から
3つ目の要素を指定していることになります。
なお、添字に文字列など、整数以外の値を使用できる場合もあります。そのような配列は、連想配列と呼ばれます。
ほとんどのプログラミング言語では、1つの配列を構成する要素はすべて同じ型でなければなりません。
また、配列に含まれる要素の個数(要素数)については、固定的に与えなければならない場合もありますし、実行時に変更できる場合もあります。
配列の範囲外にあたる添字を使ったアクセスをしないように注意を払う必要があります。そのような行為は、バッファオーバーフローと呼ばれ、ソフトウェアの脆弱性の原因として有名です。プログラミング言語によっては、実行時にバッファオーバーフローを検知して、安全にプログラムを停止させる仕組み(例外)を備えているものもありますが、C言語などの一部の言語ではまったく備えがありません。
配列の要素が配列になっている多次元配列の構造を作れる言語も多くあります。配列の要素が配列になっていれば二次元配列と呼びます。配列の要素が配列で、その配列の要素がまた配列になっていれば三次元配列と呼びます。以降、その繰り返しが可能です(限界はプログラミング言語やコンパイラなどの制約による)。要素を特定するために、次元の数に応じて添字の個数も増やします(たとえば、array[2][4][1]
や array[2,4,1]
といったように)。なお、多次元配列に対応させて、通常の配列を一次元配列と呼ぶこともあります。
配列は、要素が連続的に並ぶことが特徴的です。そのため、メモリの利用に無駄がなく、要素が一か所に集まっていることから、キャッシュヒットしやすく、処理速度の面でも優れています。
データ構造として配列を解説したページが、アルゴリズムとデータ構造編【データ構造】第1章、第2章にあります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |