はじめての 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 では (それを) 自分自身で 決めるように する。