はじめての C
しばらく C++ World の tutorial を 少しずつ 訳してみる。
「構造体について」
構造体は、互いに 関連している 異なった型の値を まとめて 扱うことのできる、都合のよい やり方 - convenient way - です。
struct Person {
char *name;
int age;
float height;
};まず初めに - ちょうど ぼくらが おしゃべりを 始めるときのように - 構造体を 宣言します。 ただし ここでは 構造体の 値の宣言は 含まれていません。
なぜかというと、構造体は 名前を書き込む荷札 - tag - を 1つ もっていて、後から その構造体の 値を 宣言することが できるからです。
"struct" という キーワードで、"Person" が 構造体だということを、コンパイラに 知らせるよう 命じているのです。
構造体の値は (そこで コピーを 作ってやることで) 実際の構造体を 割り当てることにより、初期化することが できます。
struct Person {
char *name;
int age;
float height;
} Prelude = { "Prelude", 25, 5.9f };struct Person Prelude = { "Prelude", 25, 5.9f };
同様に、同じ型の 構造体を返す 関数を 呼び出すことでも、初期化できます。
ポインタで 構造体に アクセスするときには、はじめに、ドット演算子を 使うことで、ポインタの示す先を 参照 - dereference - しないと いけません。
(*structure-name).member
このやり方は 使いにくくて みっともないし、すでに こき使われてる language に、さらに ムダな語句を 加えることにも なります。
そこで、ポインタのメンバに アクセスするのに、構造体を 一般的で 使いやすいものに するため、arrow operator という 操作が language に 追加されました。
structure-name->member