【独学C言語入門⑳】構造体

構造体を使用すると複数のデータ型の変数をまとめて管理することができて便利です。スポーツジムの入会申込書を例にご説明します。この入会申込書は身長、体重の項目がありますが、これらをメンバと呼び、どういうデータ型の変数をまとめるかを宣言することを「構造体テンプレートの宣言」と呼びます。

入会申込書
身長 ht
体重 wt

太郎さんが入会申込書に記入をしました。このようにテンプレートに具体的な値を入力することを「構造体変数の宣言」と呼びます。

入会申込書
身長 ht 170
体重 wt 60

C言語で実際に構造体テンプレートの宣言と構造体変数の宣言を行う場合は以下のようにします。このC言語入門は完全な初心者の方を想定していますので、まず構造体の中は数値型を2つだけ入れてご説明し、徐々に増やしたいと考えております。

//構造体テンプレートの宣言
struct data {
    int ht;
    int wt;
};

//構造体変数の宣言のみ
struct data taro;

//構造体変数の宣言と初期化を同時
struct data taro = {170, 60};

//縦に書いても良い
struct data taro = {170, 
                     60
};

//右が切れたら左にスワイプしてください

構造体のメンバへのアクセスは次のように行います。

構造体変数名.メンバ名

//太郎の体重を書き換える
taro.wt = 55;

実際に使用してみます。

#include <stdio.h>

//構造体テンプレートの宣言
//まずは数値型を2個だけで慣れる
struct man {
   int ht;
   int wt;
};

main()
{
   //構造体変数の宣言と初期化
   struct man taro = {170,60};

   taro.wt = 55;  //wtを変更

   printf("ht:%d\n", taro.ht);
   printf("wt:%d\n", taro.wt);
}

//右が切れたら左にスワイプしてください

すでに他の言語を習得されている方は構造体はクラスをインスタンス化してフィールドにアクセスするのと一緒と思われた方もおられるかと思います。たしかに非常に似ているのですがC言語は構造体の中にメソッドを持てないという特徴がありますのでご注意ください。

独学C言語入門一覧に戻る