プログラミング応用の後半は、 構造体(構造体・共用体・ビットフィールド)と、中間以降はグラフィックスという予定を 説明してから説明を開始。
構造体を使わない場合の問題点として、 名前と電話番号のデータベース構築をテーマに、 問題点を説明。 複数の配列を宣言すれば、途中で1人分のデータに変更が加わって、 配列宣言すべてを見なおさないといけなくなることを紹介。
// まずは構造体の宣言を理解してもらうため
struct Person { // Personはタグ名
char name[ 20 ] ; // 要素の宣言
int age ;
} table[ 50 ] ; // table は Person型の50件分
// 実際は、構造体の宣言と、構造体変数の宣言は別に書く。
struct Person {
char name[ 20 ] ;
int age ;
} ;
struct Person table[ 50 ] ;
void main() {
struct Person saitoh ;
saitoh.age = 46 ;
strcpy( saitoh.name , "斉藤" ) ;
printf( "%s %d¥n" ,
saitoh.name , saitoh.age ) ;
}
構造体は入れ子にすることもできる。
struct Person {
char name[ 20 ] ;
int age ;
struct Birthday {
int year ;
int month ;
int day ;
} bday ;
} ;
構造体変数の一括代入とか説明したけど、 構造体の初期化を説明しなかったな…