[[C言語講座]] #markdown{{ #配列とポインタと文字列 ##配列 同じようなデータがたくさんあるとき、そのデータの管理をどのようにすればよいでしょうか。 いちいち変数を作っていたのではきりがありません。そこである型の変数をまとめて管理する方法があります。これは配列を使って実現できます。 変数は値を入れるは箱と書きましたが配列はその箱を幾つかつなげて1つにしたものです。 ###宣言 配列は次のように宣言します。 型 配列名[配列の要素数]; 配列の要素数に作りたい変数の数を入れます。 例えば int array[5]; とするとint型の変数が5個まとまった配列arrayが出来上がります。 ###使用 配列の中の値を扱うときは次のようにします。 配列名[添字] 添字とは扱いたい値の配列内での位置です。最初の要素は0であることに注意してください。 例えば array[4] とするとarrayの最後の要素の値を表します。なので array[5] とすると意味のない場所を扱うことになり最悪エラーとなります。 配列の添字は値なので変数が使えますが、宣言時の要素数はコンパイル時に決まっていなければなりません。 ###次元 配列の[]はいくつでもつけることが出来ます。 例えば int array[4][5]; とすると4*5の配列が出来ます。 イメージとしては /|0|1|2|3|4 -|-|-|-|-|- 0|array[0][0]|array[0][1]|array[0][2]|array[0][3]|array[0][4] 1|array[1][0]|array[1][1]|array[1][2]|array[1][3]|array[1][4] 2|array[2][0]|array[2][1]|array[2][2]|array[2][3]|array[2][4] 3|array[3][0]|array[3][1]|array[3][2]|array[3][3]|array[3][4] このような配列を二次元配列と言います。 []が1つしか無いのは一次元配列です。 ###初期化 配列は以下のようにすると初期化出来ます。 int array[5]={1,2,3,4,5}; 初期化する要素は指定した要素数より少なく出来ますが多くすることは出来ません。 また初期化するときに要素数を省略すると式化した要素数が配列の要素数になります。 例えば int array[] ={1,2,3,4}; は int array[4]={1,2,3,4}; と同じです。 また二次元配列の初期化は int array[3][4]= { {1,2,3,4}, {2,3,4,5}, {3,4,5,6} } となります。 ###ポインタ ##ポインタ ##文字列 ダブルクォーテーショ"で囲まれた文字列やgets()等で取得できるのはchar型のポインタです。 では }}