配列 とは、メモリー内で連続して割り振られた、同じデータ型のオブジェク トの集合です。配列内の個々のオブジェクトは エレメント と呼ばれ、 それらは、配列内のそれぞれの位置によってアクセスされます。 サブスクリプト演算子 ([]) は、配列エレメントへの指標を作成する方法を提供します。このアクセス方式は、指標方式 また は添え字方式 と呼ばれます。 配列では、各エレメントに実行されるステートメント群をループに入れて、そのル ープを配列内の各エレメントに繰り返すようにできるので、反復タスクのコーディングが容易になります。
C および C++ 言語には、個々のエレメントの読み取りおよび書き込みができる、配列型用の限定された組み込みサポートがあります。 ある配列を別の配列に代入したり、2 つの配列を比較して等価であるかどうか調べたり、自己認識サイズを返したりする操作は、いずれの言語でもサポートされていません。
配列型はエレメントの型から派生し、このことは、配列型派生 と呼ばれます。 配列オブジェクトが不完全型の場合、配列型も不完全と見なされます。 配列エレメントは、void 型にも関数型にもすることができま せん。ただし、関数を指すポインター配列は許可されます。 配列エレメントは参照型 にも抽象クラス型にもすることができません。
配列宣言子には、ID と、その後に続く、オプションの添え字宣言子 が 含まれています。アスタリスク (*) が前に付く ID は、ポインターの配列です。
配列添え字宣言子の構文 .---------------------------. V | >>---[--constant_expression--]-+-------------------------------><constant_expression は 定数整数式であって、配列のサイズを示し、正でなければなりません。
サブスクリプト宣言子は、配列の次元の数と各次元のエレメントの数を 記述します。大括弧で囲まれた式、または添え字は、別の次元を表します。 これらは、定数式でなければなりません。
char list[4];
list[0]
list[1]
list[2]
list[3]
int roster[3][2];
roster[0][0]
roster[0][1]
roster[1][0]
roster[1][1]
roster[2][0]
roster[2][1]
最初のサブスクリプトの大括弧のセットを空にした配列定義では、初期化指定子が最初の次元のエレメントの数を 決めます。1 次元配列では、初期化されたエレメントの数が、エレメントの合計数になります。多次元配列は、 初期化指定子をサブスクリプト宣言子と比較し、第 1 次元のエレメントの数を決めます。