はじめての C

[Learning GNU C]

第6章 構造化データ structured data の型

連続的 contiguous 構造化 データ型のこと

6.1. 構造化データ型とは なにか?

C では 構造化 あるいは 総合化 aggregate データの 型を 決めるのに 2つの 方法が ある。 どちらも -- 別の 構造体 struct や 配列 array への ポインタを 含む -- どんな 標準的 standard データ型からでも 構成することが 可能だ。 構造体が (異なった) 型を 混ぜ合わせて 入れることが できるのに 対し 配列は 多くの 同じ 型を もつ 変数から なる。

6.2. 配列 array

配列は 多くの 変数を 同時に 含んだ データ型だ。 配列の それぞれの 要素 element には その要素に アクセスできるよう 番号 number が 与えられる。 100 の 要素から なる 配列では 1つ目の 要素が 0 (ゼロ) で 最後が 99 だ。 こうした 指数 index による アクセスは 配列の それぞれの 要素を 渡り歩くのに 都合が いい。

6.3. 配列の 宣言と アクセス

配列の 宣言は 配列の 大きさを 指定しないと いけないこと 以外は その他の 変数の 宣言と ほとんど 同じだ。 その大きさ (または 要素の 数) が 配列識別子の 後の カクカッコ "[ ]" に 置かれた 整数値だ。

Example 6-1. first_array.c

#include <stdio.h>

int
main()
{
int person[10];
float hourly_wage[4] = {2, 4.9, 10, 123.456};
int index;

index = 4;
person[index] = 56;

printf("the %dth person is number %d and earns $%f an hour\n", (index + 1), person[index], hourly_wage[index]);

return 0;
}

注意点: 確かめるのは かまわないが その配列には ない 要素、例えば 10 の 要素から なる 配列の 11番目の 要素へは アクセスを 試みない。 配列の 限界を 越える 値に アクセスを 試みると プログラムを 壊してしまうか もっと 悪くて エラーが 起きた 警告無しに ゴミ garbage データを 取り込んでしまうかの どちらかに なるだろう。