構造体とは


 

   C言語における「構造体」とは一体何でしょうか。現実世界で実用性のあるプログラムを作成するときには単一のデータをそれぞれバラバラに扱うことはあまりありません。複数のデータをひとまとめにして、グループ単位で、扱うことのほうが圧倒的に多いのです。複数の異なるデータ型の情報をひとまとめにして扱うためのデータ型が構造体です。例えば名刺を思い浮かべて下さい。名刺には、名前をはじめとして肩書きや連絡先などといった情報が一枚の紙にまとめて書かれています。複数の情報を1セットとして扱っているわけです。これとまったく同じように、複数のデータ型をまとめて1つの変数として扱えるようにする機能が構造体です。ちなみに、配列との違いは、配列が同一データ型をまとめて扱うのに対し、構造体は、いくつかの異なるデータ型をまとめて扱うことが出来る点です。
   実際に例として何かの会員カードを扱ったプログラムを作成する場合を考えてみましょう。会員カードには、ID番号(int型)、氏名(char型配列)、住所(char型配列)、電話番号(char型配列)、年齢(int型)などの情報で構成されています。これらの情報を別々のデータとして宣言することも可能です。しかし、別々のデータで、一人の情報を扱うよりも、これらの情報をひとまとめにして一つのデータとして扱えば、より簡潔に表現できます。

「会員カード」の情報
ID番号(数字)

int id

氏名 (文字列)

char name[20]

住所 (文字列)

char add[50]

電話番号(文字列)

char tel[15]

年齢 (数字)

int age

また、書籍分類カードを扱う場合は著者名、書名、出版社、発行年などをひとまとめにして扱います。

「図書分類カード」の情報
著者名(文字列)

char name[20]

書名 (文字列)

char title[40]

出版社(文字列)

char pub[20]

発行年(数字)

int date


構造体と言うと、少し難しそうに聞こえますが、
「構造体とは異なるデータ型の変数をひとまとめにして格納するための整理箱である。」
と考えておいて下さい。


「基礎講座もくじへ」

「Q&Aもくじへ」

「つぎへ」