構造体

構造体(こうぞうたい、Structure)とは、プログラムのソースコードにおいて、既存のデータ型を組み合わせた構造を持つ型のことです。
異なる型のデータをまとめて扱う際に使用します。


構造体を使用した記述例

// 構造体 program in C.
#include <stdio.h>

// 従業員情報
struct EMPLOYEE 
{
    int     no;		    // 従業員 番号
    char    name[20];	    // 従業員 名前
    double  average;	    // 平均値
};
        
// 評価
typedef struct  
{
    int     no;		    // 従業員 番号
    char    comment[20];    // コメント
    double  point;	    // 評価点
} EVALUATION;

int main(int argc, char *args[])
{    
    struct EMPLOYEE emp = { 1, "Bob", 83.5 };     // 従業員情報
    EVALUATION      evaluation[5];                // 評価

    memset(evaluation, 0x00, sizeof(evaluation)); // 構造体配列を初期化
    
    // 構造体配列の3番目に個別に格納
    evaluation[2].no = emp.no;
    strncpy(evaluation[2].comment, "It's OK", 
            sizeof(evaluation[2].comment));
    evaluation[2].point = 60.7;    
        
    printf("EMPLOYEE > %d,%s,%f\n", emp.no, emp.name, emp.average);        
    printf("EVALUATION[2] > %d,%s,%f\n", 
            evaluation[2].no, evaluation[2].comment, evaluation[2].point);    

    return 0;
}

typedef を用いることで、既に定義されている型に、別の新しい名前をつけて定義することができます。
ここでは「EVALUATION」を新しい型として定義したことで、変数宣言時に struct というキーワードを省略しています。

構造体型変数の中にあるメンバを参照(アクセス)するには、変数名の後に「.」(ピリオド)、続いてメンバ名を付けます。

実行結果

EMPLOYEE > 1,Bob,83.500000
EVALUATION[2] > 1,It's OK,60.700000


Last updated:2017/06/06
Author:efn

';