構造体の基礎


構造体とは

 前回はポインタを引数として使う方法について解説しました(前回の記事)。今回から構造体について解説したいと思います。まずは構造体のイメージをラフにつかみましょう。
 下記資料が構造体のイメージです。

 構造体は自作の変数を作り、その中にメンバー変数と言われる、今まで使ってきたint型などの変数を持つことができます。例えば猫と言う構造体があるとします。猫には名前、身長、体重、年齢など沢山の構成要素があります。これがメンバー変数に相当します。このような考え方をオブジェクトと言います。オブジェクトではイメージしにくい場合は「モノ」とイメージすると良いでしょう。
 下記テストコードで構造体動かしてみます。

コード

#include <stdio.h>
//構造体の宣言
struct cat{
    char *name;  //名前
    int weight;  //体重
    int age;  //年齢
};

int main()
{
    //構造体の作成
    struct cat cat1;  //猫1
    struct cat cat2;  //猫2

    //メンバー変数に代入
    cat1.name="kyle";
    cat1.weight=4;
    cat1.age=12;

    cat2.name="riri";
    cat2.weight=6;
    cat2.age=10;

    //出力
    printf("cat1.name=%s\n",cat1.name);
    printf("cat1.weight=%d\n",cat1.weight);
    printf("cat1.age=%d\n",cat1.age);

    printf("cat2.name=%s\n",cat2.name);
    printf("cat2.weight=%d\n",cat2.weight);
    printf("cat2.age=%d\n",cat2.age);
    return 0;
}
Option Explicit

'構造体の宣言
Type cat
    name As String
    weight As Integer
    age As Integer
End Type

Sub testStruct()
    '構造体の作成
    Dim cat1 As cat
    Dim cat2 As cat
    
    'メンバー変数に代入
    cat1.name = "kyle"
    cat1.weight = 4
    cat1.age = 12
    
    cat2.name = "riri"
    cat2.weight = 6
    cat2.age = 10
    
    '出力
    Debug.Print ("cat1.name=" + CStr(cat1.name))
    Debug.Print ("cat1.weight=" + CStr(cat1.weight))
    Debug.Print ("cat1.age=" + CStr(cat1.age))
    
    Debug.Print ("cat2.name=" + CStr(cat2.name))
    Debug.Print ("cat2.weight=" + CStr(cat2.weight))
    Debug.Print ("cat2.age=" + CStr(cat2.age))
End Sub

 代入した文字や数字が出力されたと思います。
今回は簡単に構造体の宣言、代入、出力と基本的なことを解説しました。次回は構造体を配列にしてみます。


コメントを残す