複数の値を連続して使えるようにしたものを配列という。C言語の配列も Ruby言語と同じように使える。
Ruby言語で
x = Array.new(5) x[0] = 5 x[1] = 6 x[2] = 3 x[3] = 2 x[4] = "abc"
とすると変数 x
は5個の値を入れる箱に付いたラベルになる。
5個の箱にはそれぞれ違う値を入れることができる。
x[0] | x[1] | x[2] | x[3] | x[4] |
5 | 6 | 3 | 2 | "abc" |
Rubyでは、変数に型がない、つまり変数にはどんな種類の値を入れ ても良い。
C言語でも配列が作れる。ただし、単純変数と同様、型を指定する必要がある。
int x[5]; x[0] = 5; x[1] = 6; x[2] = 3; x[3] = 2; x[4] = 8;
とすると変数 x
は5個の値を入れる箱に付いたラベルになる。
5個の箱にはそれぞれ違う値を入れることができるが、どれもint(整数)を
入れなければならない。
x[0] | x[1] | x[2] | x[3] | x[4] |
5 | 6 | 3 | 2 | 8 |
配列のそれぞれの個別の箱の中味のことを要素という。
配列の何番目かを示す値のことを添字(そえじ)という。
たとえば、上の図の2番目の要素 x[1]=6
は、
「添字1」で示される要素である。配列の添字は必ず0から始まる。
j=3
のとき、
x[j]
はいくつか?
C言語で配列を使うときには以下のようにする。
型名 変数名[要素数]; 例: int x[10];
この例のようにすると、int型の値を10個持てる配列変数x
が
宣言される。ただし各要素に値を代入していないのでそのまま
参照するとエラーになる。あとで値をまとめて代入するときには
個数だけを宣言しておく。
配列変数の宣言と同時にあらかじめ値を代入しておく場合は以下のようにする。
型名 変数名[] = {値をカンマで区切って列挙したもの}; 例: char s[] = {72, 101, 108, 108, 111, 0};
上記の例のようにすると char 型で要素6個の配列変数 s
が
以下のように作成される。
s | |||||
---|---|---|---|---|---|
s[0] | s[1] | s[2] | s[3] | s[4] | s[5] |
72 | 101 | 108 | 108 | 111 | 0 |
Ruby言語では配列の大きさはあとからいくらでも拡大することができたが、 C言語では最初に配列を宣言するときに決めた大きさから変えることはでき ない。
実際には別の方法で大きさを変えられる配列を作ることができる。 実用的なプログラムを作る場合にはその方法も覚える必要がある。