
■ 1、はじめに
ここから、C言語の中でのメインテーマでもある構造体について解説していきます。
■ 2、構造体とは
構造体とは、今まで解説してきたいくつかの型(int型・char型…etc)を集めて、新しい1つの型として定義し、取り扱うことです。これによって、各データへのアクセスの効率や管理が容易になります。
■ 3、具体的な構造体の考え方
では、今成績表を作成するとします。これを構造体で定義してみましょう。
内容には、クラス(int型)、氏名( char型 [配列])、成績(char型)の各データを記述します。

■ 4、構造体の定義のしかた
▼形式
|
struct 構造体タグ{ メンバ1の宣言; /*構造体を構成するメンバたち*/ メンバ2の宣言; ・ ・ メンバnの宣言; }; |
|
struct seiseki{ int no; /*構造体 seiseki を構成するメンバたち*/ char *name; char *result; }; |
■ 5、構造体の変数の宣言
構造体の定義だけでは、ただ新しい型を作成したに過ぎません。
よって、この新しい型を使用するには、普通の型(int型・char型)のように変数の宣言を行います。
▼形式
| struct 構造体タグ 変数名 |
|
struct seiseki a /*seiseki型の変数 a を宣言*/ |
■ 6、構造体のメンバへの参照のしかた
構造体変数の宣言が終わり、残すはメンバ(中身)の参照の仕方です。
▼形式
| 構造体変数名. メンバ名 |
|
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、実行結果

→この結果だけだと、何かピンときませんね〜(^^ゞ
■ 9、考察
今回の結果だけだと、構造体が便利なのか、はたまた不便なのかがまったくわかりませんね〜。今回の場合は構造体変数を1つしか宣言していないので少しわかりずらいと思います。
ただ、構造体の使い方は、基本的に1、構造体を定義する→2、構造体変数を宣言する→3、メンバを参照し作業をする、の手順を行います。
■ 10、次回に向けて
次回は、構造体変数を配列で宣言するやり方を解説します。