異なるデータをまとめて管理!C言語の「構造体(struct)」をやさしく解説
「名前」「年齢」「身長」など、異なる種類の情報をひとまとめにしたいときに便利なのが、構造体(struct)です。
C言語では、構造体を使うことで複数のデータ型をひとつのまとまりとして扱うことができます。
構造体とは?
構造体(structure)は、異なるデータ型のメンバー(項目)をまとめて定義できるデータ型です。
たとえば「人」を表す場合、名前(文字列)、年齢(整数)、身長(小数)を1つの構造体として管理できます。
構造体の定義
struct Person {
char name[20];
int age;
float height;
};
構造体の使い方
struct Person p1; // 構造体の変数を宣言
// 値を代入
strcpy(p1.name, "Taro");
p1.age = 20;
p1.height = 172.5;
// 表示
printf("名前: %s\n", p1.name);
printf("年齢: %d\n", p1.age);
printf("身長: %.1fcm\n", p1.height);
typedefで簡略化
typedef
を使うと、毎回struct
を書かずに済みます:
typedef struct {
char name[20];
int age;
float height;
} Person;
Person p1;
構造体の初期化
Person p2 = {"Hanako", 18, 158.2};
構造体の配列
Person class[3] = {
{"Aoi", 16, 160.5},
{"Ken", 17, 170.2},
{"Miki", 16, 155.0}
};
構造体のポインタ
構造体変数へのポインタを使うことで、関数に渡したり効率的にアクセスしたりできます。
Person p;
Person *ptr = &p;
ptr->age = 21; // ポインタからアクセスする場合は -> を使用
まとめ
構造体(struct)は、複数の異なる型のデータをひとつのまとまりとして扱える便利な機能です。
初心者の方は、「定義 → 宣言 → メンバーの代入・表示」の基本的な流れをマスターして、
現実のデータ(人・商品・住所など)をモデル化する練習をしてみましょう!