今回は、構造体について説明していきます。
早速、構造体を使ってプログラムを作っていきましょう。
まさし君とひろみちゃんのプロフィールを表示するプログラムを作る事にします。
#include <stdio.h>
#include <string.h>
/* 構造体であるhitoを宣言 */
struct hito {
int age; /* 年齢 */
char blood[3]; /* 血液型 */
};
void main(void) {
struct hito masasi; /* hito型変数masasiを宣言 */
struct hito hiromi; /* hito型変数hiromiを宣言 */
/* プロフィール設定 */
/* まさし君 */
masasi.age = 10;
strcpy(masasi.blood, "A");
/* ひろみちゃん */
hiromi.age = 9;
strcpy(hiromi.blood, "B");
/* 年齢、血液型表示 */
/* まさし君 */
printf("まさしくんのプロフィール\n");
printf("年齢:%d歳\n", masasi.age);
printf("血液型:%s型\n", masasi.blood);
/* ひろみちゃん */
printf("ひろみちゃんのプロフィール\n");
printf("年齢:%d歳\n", hiromi.age);
printf("血液型:%s型\n", hiromi.blood);
}
このプログラムでは、hitoという新しい型を作っています。
(構造体を定義すると表現します。)
そして、その中身は、int型変数のageとchar型変数のbloodがあります。
つまり、hitoと言う型は、int型変数のageとchar型変数のbloodの
2つの要素を持っている構造体 と言う事になります。
/* 構造体であるhitoを宣言 */
struct hito {
int age; /* 年齢 */
char blood[3]; /* 血液型 */
};
使い方は簡単です。まずは、変数と同じように宣言します。
この時、先頭にキーワードstructを付けます。
struct hito masasi; /* hito型変数masasiを宣言 */
struct hito hiromi; /* hito型変数hiromiを宣言 */
続いて年齢と血液型をそれぞれ設定します。この時は、
変数名.(ドット)要素名 と言う感じで使います。
/* プロフィール設定 */
/* まさし君 */
masasi.age = 10;
strcpy(masasi.blood, "A");
/* ひろみちゃん */
hiromi.age = 9;
strcpy(hiromi.blood, "B");
あとは、今までと同じように表示しています。
/* 年齢、血液型表示 */
/* まさし君 */
printf("まさしくんのプロフィール\n");
printf("年齢:%d歳\n", masasi.age);
printf("血液型:%s型\n", masasi.blood);
/* ひろみちゃん */
printf("ひろみちゃんのプロフィール\n");
printf("年齢:%d歳\n", hiromi.age);
printf("血液型:%s型\n", hiromi.blood);
構造体を使う事で
プログラムを比較的分かりやすくする利点があります。