■ setp60. 構造体[1] ■


■ 1、はじめに
 ここから、C言語の中でのメインテーマでもある構造体について解説していきます。


■ 2、構造体とは
 構造体とは、今まで解説してきたいくつかの型(int型・char型…etc)を集めて、新しい1つの型として定義し、取り扱うことです。これによって、各データへのアクセスの効率や管理が容易になります。


■ 3、具体的な構造体の考え方
 では、今成績表を作成するとします。これを構造体で定義してみましょう。
 内容には、クラス(int型)、氏名( char型 [配列])、成績(char型)の各データを記述します。

例題【ex009.png】




■ 4、構造体の定義のしかた
 ▼形式
 struct 構造体タグ{
     メンバ1の宣言;     /*構造体を構成するメンバたち*/
     メンバ2の宣言;
       ・
       ・
     メンバnの宣言;
};
 structを記述することによって、構造体であることを宣言しています。
ってこれじゃあ、よくわからないですね(^^;

 ▼上の成績表を例に、具体的な定義のしかたです
 struct seiseki{
     int no;     /*構造体 seiseki を構成するメンバたち*/
     char *name;
     char *result;
};
新しい型:seiseki を作り出しています。
そして、seisekiのメンバ(中身)には、int型*char型*char型を持っていることを宣言しています。


■ 5、構造体の変数の宣言
 構造体の定義だけでは、ただ新しい型を作成したに過ぎません
 よって、この新しい型を使用するには、普通の型(int型・char型)のように変数の宣言を行います。
 ▼形式
 struct 構造体タグ 変数名

 ▼上の成績表を例に、具体的な変数宣言のしかたです
 struct seiseki a  /*seiseki型の変数 a を宣言*/

■ 6、構造体のメンバへの参照のしかた
 構造体変数の宣言が終わり、残すはメンバ(中身)の参照の仕方です。
 ▼形式
 構造体変数名. メンバ名

 ▼上の成績表を例に、具体的なメンバ参照例です(構造体変数は a を宣言しているものとします)
 a.no  /*seiseki型の変数 a のメンバ(中身)のnoを参照する*/

これで、基本的な構造体の使い方の説明はおしまいです。


■ 7、サンプルプログラム
 では具体的な構造体の使い方を書いてみましょう。
File Name:program068.c
#include<stdio.h>	 /*おまじない*/

struct seiseki{	/*構造体seisekiの定義*/
	int no;	/*↓メンバの宣言*/
	char *name;
	char *result;
};

int main(void)
{
	struct seiseki a;	/*構造体変数 a の宣言*/

	a.no  = 3;			/*構造体変数 a のメンバ:noに3を代入*/
	a.name   = "Taro" ;		/*構造体変数 a のメンバ:nameにTaroを代入*/
	a.result = "C+" ;		/*構造体変数 a のメンバ:resultにC+を代入*/

	printf("a.no  = %2d\n", a.no);	/*構造体変数 a のメンバ:noの表示*/
	printf("a.name   = %s\n", a.name);	/*構造体変数 a のメンバ:nameの表示*/
	printf("a.result = %s\n", a.result);	/*構造体変数 a のメンバ:resultの表示*/
}


■ 8、実行結果
実行結果【c_068.jpg】

 →この結果だけだと、何かピンときませんね〜(^^ゞ


■ 9、考察
 今回の結果だけだと、構造体が便利なのか、はたまた不便なのかがまったくわかりませんね〜。今回の場合は構造体変数を1つしか宣言していないので少しわかりずらいと思います。

 ただ、構造体の使い方は、基本的に1、構造体を定義する→2、構造体変数を宣言する→3、メンバを参照し作業をする、の手順を行います。


■ 10、次回に向けて
 次回は、構造体変数を配列で宣言するやり方を解説します。

左やじるし  右やじるし

管理者:enoppi  作成日時:2000/9/17 訂正日時:2002/6/20
Home Page Copyright(C)2000 by Enoppi All rights reserved.