ホーム » スタッフ » 斉藤徹 » 構造体の説明

2010年9月
« 8月   10月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

構造体の説明

プログラミング応用での後半では、構造体などの複合型とグラフィックスを説明する予定。 特に中間試験までは、構造体・共用体・列挙型といったプログラムのデータ構造の 記述のバリエーションが広がることを目標にする。

構造体の説明といっても、2年生でも一応習っている内容でもあり、 関連する情報なども交えながら解説を行う。 構造体は、COBOL(Common Business Oriented Language:商用向け言語)での、 複合データを記述する考え方から出ている。 同じように、プログラミング言語では、手続きの構造化などの発展と共に、 構造化プログラミング(Structured Programming)に発展する。 データの構造化・処理の構造化は、データに対する処理の記述から、 オブジェクト指向へと発展していく。

構造体が無かったら、プログラムが発展していくときに、面倒が増えるのかといった話題を 説明したあと、実際の文法の説明を行う。 この中で、タグ名(Person) , 要素名(name,kokugo…) といった用語を解説。

struct Person {
char  name[ 20 ] ;
int   kokugo ;
int   sansu ;
int   rika ;
} ;
struct Person saitoh ;
strcpy( saitoh.name , "Saitoh" ) ;
saitoh.kokugo = 59 ;

途中で、タグ名などで変数名と同じルールといっても通じなかったので、 変数名が [A-Za-z_][A-Za-z0-9_]* (正規表現でかくと)といったものが使用可能 であることを説明する。

複合の型の雰囲気を感じてもらうために、構造体の初期化、構造体の入れ子(nesting)、 同一構造体の一括代入などの説明を行う。

構造体の一括代入などは、ANSI-Cなどでの機能であり、K&Rだとダメ…とかいった、 話題をしたので、ちょっと脱線して、JIS規格とかK&R文法などを紹介する。