構造体
構造体は、いくつかの変数を一つのグループにまとめて扱うことができます。
次の例を見てください。
<構造体>
#include<stdio.h>
main()
{
struct POINT /* POINTという型を作る */
{
int x;
int y;
};
struct POINT a; /* 自分で作ったPOINT型 */
a.x=2;
a.y=5;
printf("x=%d y=%d\n",a.x,a.y);
} |
<実行結果>
まず、構造体の型を作ります。この型は int ,double ,char とかと同じ意味です。
の { } 内に作った変数が一つのグループとなります。
グループにまとめられた変数をメンバーと呼びます。
最初についている struct は構造体であることを表しており、
型を定義する機能を持っています。
型名 POINT は任意です。別に大文字でないと駄目というわけでもありません。
できれば、何のグループかわかりやすくした方がいいです。
次に、stuct POINT a; で、変数 a を自作した構造体型で宣言しています。
構造体の各メンバーを使うには、例えば a.x というように、
“a というグループ内の変数 x ”みたいな使い方をします。 |
構造体とポインタ
構造体変数をポインタにすると、メンバーへのアクセスの仕方が
a.x から a->x と変わります。
<構造体とポインタ>
#include<stdio.h>
main()
{
struct POINT /* POINTという型を作る */
{
int x;
int y;
};
struct POINT a,*b; /* 自分で作ったPOINT型 */
a.x=2;
a.y=5;
b=&a;/* bへaのアドレスを代入 */
printf("x=%d y=%d\n",b->x,b->y);
} |
<実行結果>
<構造体>のプログラムと異なるところは、a.x から a->x へ変わっただけで、
アドレスの代入の仕方も、ポインタと変わりません。 |
|