【C#入門】1次元配列について分かりやすいサンプルコードで徹底解説

1次元配列の中で最も基本的なものは1次元配列です。
1次元配列は 説明したような1列のリストの構造をしています。

1次元配列

1次元配列の宣言

使用例

int[]と記述することで、int型の配列を宣言することを示します。
この場合、配列の宣言をしただけで、メモリ上に実体はありません。
実体、つまりインスタンスを生成するには、new演算子を使って要素数分の領域をメモリ上に確保する必要があります。この配列の宣言とインスタンスの生成をまとめて行うには、次のような構文で記述します。

一次元配列とインスタンスの生成

使用例

要素数には使用例のnew int[5]のように整数値を記述しますが、
new int[n]のように変数を指定することもできます。
ただし、一度決定した要素数を後から変更することはできません。
なお、生成直後の配列のインスタンスはデータ型に応じて規定値で初期化されます。
整数型は「0」、浮動小数点型は「0.0」、bool型は「false」、参照 がそれぞれの規定値です。

1次元配列のアクセス

別の要素にアクセスをするには、[添え字]と呼ばれる()から始まるインデックスを指定します。

一次元配列とインスタンスの生成

添え字0~4の配列要素に値を代入することができます。
宣言時に[]の中に記述するのは要素数(上記例では[5]) ですが、アクセスするときに口の中に記述するのは添え字([0]~[4]) です。
混同しないようにしてください。

1次元配列の初期化

宣言と同時に値を格納する場合には、次の構文で初期化してください。
このとき、以を記述する必要はありません。コンパイラが初期値の数から自動的に要素数を決定します。
仮に要素を記述する場合には、初期値と数を合わせないとコンパイルエラーになります。

1次元配列の初期化

配列は参照型

さきほど、説明をかんたんにするために1次元配列を単なる
1列のリストだと書きました。しかし、実は配列は参照型であり、
int[] score = new int[5];
の場合には、

① 配列の参照情報を格納する変数scoreを宣言
② 配列の実体であるインスタンスを生成
③ 配列のインスタンスへの参照情報を左辺のscoreに代入

しているのです。このことを理解しないで、配列を別の配列に代入すると思わぬバグを生じます。
たとえば、同じ型の2つの配列×1とx2を宣言し、x1をx2に代入すると、参照情報を代入したことになり、
xlとx2が同じインスタンスを参照するようになります。ここで、x2[0]の要素を2倍すると、
x1[0]の要素も2倍されてしまうのです。つまり、配列同士の代入は要素のコピーではなく、
参照情報の代入あることを十分に理解しておく必要があります。

配列は参照型

値型の配列と参照型の配列の比較

配列は参照型だと説明しましたが、値型だけではなく、
string型やクラスのような参照型を配列にすることもできます。
この場合、配列のインスタンスとは別 に参照型のインスタンスも生成する必要があります。
値型の配列を宣言すると、配列のそれぞれの要素は「0」で初期化されます。
しかし参照型の配列を宣言した場合、配列要素には、参照するインスタンスがないことを示す
「null」が格納されます。

string型の配列

string型の配列の場合には、文字列リテラルで初期化すれば
string型のインスタンスが生成され、配列のインスタンスはそれを参照するようになります。

クラスの場合には、インスタンスを一個ずつnewする必要があります。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し