Home / 記事 / プログラム言語 / C# / C# の配列と文字列 I (1/3)

e知識「e-chishiki.com」では、インドでの著名なIT著者、IT教育者、eセキュリティーの大家により作成された様々な種類のプログラミング言語に関する技術的なコンテンツを知識情報データーベースとして提供します。

C# プログラミングシリーズ

C# の配列と文字列 (1/3)

Yashavant Kanetkar
Yashavant Kanetkar

インデックス

おそらく、配列と文字列はプログラミング言語自体と同じくらい古いものです。あまりにも長い歴史があるため、ほとんど注目されることさえなくなっています。C# を学習するときには、このような誤りを犯さないでください。C# での配列と文字列は、昔からあるものとは異なり、いっそう強力になっています。何もない状態から言語を開発し、古い言語との互換性を保証する必要がなければ、このような結果になるのは当然のことですが。

配列の定義

配列は、隣接するメモリ位置に格納された、同種の要素の集合です。ここでいう同種の要素とは、すべてが int、すべてが float、すべてが char などということです。次に例を示します。

int[]   arr1 = { 1, 2, 3 } ;
float[] arr2 = { 1.5f, 2.5f, 3.5f } ;
char[]  arr3 = { 'a', 'b', 'c' } ;

配列のすべての要素は、同じ型である必要があります。つまり、5 個の int と 5 個の float から構成される、10 個の数値の配列を作成することはできません。C# での配列は参照型であり、オブジェクトとして実装されます。抽象クラス System.Array から派生します。次のコードは、int 配列への参照を宣言する方法です。

int[ ] a ; // declare an int array reference
int[ ] a1, a2 ; // declare two array references

ここでの aa1a2 は、int 配列への参照です。このように、配列を宣言してはいません。代わりに、配列への参照を宣言しています。これは単に、配列の参照用の領域を確保するだけです。配列の参照を宣言しておけば、次のようなステートメントを使用して配列を作成できます。

a = new int [ 5 ] ;


次の図は、メモリ内での配列と参照のようすを示しています。

配列を初期化するには、次のようなステートメントを記述する必要があります。

int[ ] arr1 = new int[ ] { 3, 5, 7, 9, 1 } ;

または

int[ ] arr1 = { 3, 5, 7, 9, 1 } ;

これにより、ヒープ上に配列が割り当てられて、すべての要素に値が格納されます。既定では、この配列のすべての要素は値 0 で初期化されます。オブジェクトの配列を作成することもできます。例を使用してこれを説明します。

sample[ ] s = new sample [ 5 ] ;

ここでの s は、参照の配列への参照です。配列はヒープ上に作成されます。配列自体の各要素は、sample オブジェクトに対する参照です。したがって、各参照はオブジェクトの値ではなくオブジェクトのアドレスを保持しています。既定では、すべての要素は null 参照で初期化されます。配列のメモリ内でのようすを次に示します。

オブジェクトのアドレスを配列の要素に代入するには、次のようなステートメントを記述する必要があります。

s [ 0 ] = new sample ( 1 ) ;
s [ 1 ] = new sample ( 2 ) ;
s [ 2 ] = new sample ( 3 ) ;
s [ 3 ] = new sample ( 4 ) ;
s [ 4 ] = new sample ( 5 ) ;

または

sample s[ ] = {
new sample ( 1 ),
new sample ( 2 ),
new sample ( 3 ),
new sample ( 4 ),
new sample ( 5 ),
}

C や C++ と同様に、C# も配列の要素へのアクセスには、ゼロから始まるスキームを使用します。つまり、配列の最初の要素は、0 番目の位置にあるものと見なされます。

多次元配列

C# の多次元配列には、矩形の配列と不規則な配列の 2 種類があります。それぞれに対する C# の構文は異なります。

コメント

コメントするにはログイン、もしくはユーザ登録を行ってください。

発売中

LET US C(上)
インド人ITエンジニアのCプログラミングのバイブル。通算100万冊以上売れています。
― 2,520円 ―

Y. Kanetkar

発売中

Introduction to Object Oriented Programming & C++
C++を例に、多彩なサンプルコードと簡潔な説明でOOPプログラミングの実際が理解できる。
2,940

Y. Kanetkar

発売中

Microsoft .NET Web Application Security
APプログラムの作り方で不正侵入の防御率を向上させる手法を解説。今までにないセキュリティーの手法を紹介します。
3,990円

Vijay Mukhi

2008年の11月発売予定

Quest C++ ビジュアルラーニングコース
これがあれば、見て聞くだけで楽しみながらプログラミングテクニックが身につきます。
― 9,975円 ―

Y. Kanetkar Asang Dani

2008年の11月発売予定

Programmer's Guide to Web Application Security
Web System への侵入方法と原理を解説する事により、防止方法を理解することが出来る。
3,990

Vijay Mukhi

フォーラムの最新ポスト