構造体は、異なった型の変数(同じ型だけでもよい)をまとめて扱えるようにできます。アドレス帳などのプログラムを作ろうとしたとき、連番、漢字氏名、カナ氏名、住所などをのデータを1まとまりで扱うことができます。他にもよく使う例としてウインドウの中でマウスがどの位置にあるのかなどをx座標、y座標として格納したりもできます。
構造体の宣言の仕方は、
struct 構造体タグ {
型 変数名;
型 変数名;
};
のように宣言します。構造体タグは省略可能です。実際では、
struct kojin {
int no;
char kanji_name[20];
char kanna_name[20];
char addr[120];
};
struct point {
int x;
int y;
};
のように宣言します。でも、その構造体を使うのにpoint.x = 0; のように使用するのではありません(コンパイルでエラーになる)。これは構造体の雛形です。
変数を宣言したときのように、
struct point pt;
とstruct point型の変数ptを宣言しなければなりません。構造体の初期化は、宣言時であれば
struct point pt = { 0, 0 }; のよにできます。
では実際にコードを見ていきましょう。
#include <stdio.h>
struct point {
int x;
int y;
};
int main()
{
struct point pt = { 0, 0 };
printf("初期表示 a = %d, b = %d\n\n", pt.x, pt.y);
pt.x = 100;
pt.y = 200;
printf("代入後表示 a = %d, b = %d\n", pt.x, pt.y);
return 0;
}