はじめての C
[Learning GNU C]
6.5. 多次元 multidimensional 配列
先の 例題で 使われた 配列は 1次元配列だった。 配列は 次元を 1つ以上 もつことが できる。 こうした 配列の配列 array-of-array は 多次元配列と 呼ばれる。 それは 配列の 識別子 (名前) の 後に 複数の カクカッコ
"[ ]"
の セットを もつことを 除けば 基本になる 配列と 全く 同じだ。 2次元の 配列は 列 row と 行 column の 網目 grid のように 考えることが できる。Example 6-3. number_square.c
#include <stdio.h>const int num_rows = 7;
const int num_columns= 5;
int
main()
{
int box[num_rows][num_columns];
int row, columns;
for (row = 0; row < num_rows; row++)
for (column = 0; column < num_columns; column++)
box[row][column] = column + (row * num_columns);
for (row = 0; row < num_rows; row++) {
for (column = 0; column < mum_columns; column++) {
printf("%4d", box[row][column]);
}
printf("\n");
}
return 0;
}
この例題を コンパイルし 実行すれば このような 数字の 長方形 box が 得られるだろう。
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
25 26 27 28 29
30 31 32 33 34
上の 配列は 2つの 次元を もち 2組 添字つき double subscripted 配列と 呼ぶことが できる。 GCC では 3次元 以上の 配列を 使うことは 実際には 非常に まれだとしても 29次元までの 配列が 可能だ。
6.6. 文字配列 (文字列)
C の 文字列 text は ナル null 文字 '\n' で 終わる char 型 変数の 連続した number として (配列 あるいは ポインタで) 表される。
6.7. データ型の 定義
C language には もっとも 基本的で よく 使われる 型しか 用意されていない。 多くの language では もっと 大きな 型の セットが 用意されているが それは 便宜上の ためでしか ない。 text 文字列を 扱う C での 方法が この よい例だ。 時には 複雑な data を 保持できる 別な データ型が あれば 役立つと 考えるかも しれない。 C では (それを) 自分自身で 決めるように する。