先週の授業では,構造体の基礎的なことを説明した.構造体はデータをまとめて管理するこ
とができる--ということを理解しなくてはならない.構造体が便利な例として,2年電気
情報工学科の45人の英語と数学のテストの点を管理することを考える.構造体の定義と宣
言は次のようにする.
struct student{
char name[80]
int math;
int eng;
};
struct student E2[45];
これに対して,構造体が無いプログラミング言語の場合,次のように配列を使うことにな
る.
char name[45][80];
int math[45], eng[45];
配列を使った例だと,データはバラバラである.出席番号23番--添字23--の名前と数学,
英語の点の関係がはっきりしない.添字の番号が同じであれば,名前と数学,英語の成績
が対応するという暗黙の了解があるのみである.一方,構造体だと,名前と数
学,英語の成績でひとつの変数となっており,強いつながりがある.構造体を使うと,デー
タをまとめることができ,分かり易いプログラムを書くことができる.
前回に引き続き,構造体について学習する.教科書 [
1]
のpp.304-323が範囲であるが,共用体(union)と列挙型は学習範囲外とする.共用体は組
込みシステムのプログラムでは必須ではあるが,諸君が作るプログラムで使うことはない
からだ.列挙型は便利あるが,混乱する学生も出てくるのでここでは教えない.自分で勉
強して,使ってみると良いだろう.
本日は,構造体を上手に使うことを学習する.次の通り,学習のゴールを設定している.
- ユーザー定義型を使い,構造体を定義できる.
- 関数の引数に構造体を使うことができる.
- 構造体のポインターを使うことができる.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成19年4月17日