※過去講義資料編集中 編集終わったら有機酸内からリンクします /*********************
Lesson10 構造体
/* 今日は「構造体」について話します
「構造体」は幾つかの異なる型のデータをまとめて 1つのデータ型として扱うものです */
#include <stdio.h>
/* 構造体の型枠の宣言 まず、複数のデータ(メンバ)をまとめて1つの構造体の型枠を宣言します
書き方は下の通り struct 構造体型名 {型名 識別子(メンバ);…}; */
struct seiseki {
int no; /* 学生番号 */ char name[20]; /* 氏名 */ double average; /* 平均値 */
};
/* typedef
typedefを使うことで構造体等に名前をつけることができます 使い方は typedef 型名 識別子; */
typedef struct {
int no; /* 学生番号 */ char name[20]; /* 氏名 */ double average; /* 平均値 */
} SEISEKI;
int main(void) {
int i; /* 構造体の宣言 「構造体型名」を使って実際にデータを宣言し、メモリ上に領域を確保
構造体は「構造体変数」として 1つの構造体を扱う事もできる
もしくは複数の構造体をまとめて「構造体配列」として扱ってもいい 宣言は下の通り struct 構造体型名 構造体変数名(構造体配列名); */ struct seiseki seito1 = { 9, "Organic_acid", 3.12 }; /* typedefを使っている場合は識別子 構造体変数名(構造体配列名);で宣言できます */ SEISEKI seito2[20] = { { 15, "numa", 2.78 }, { 20, "tmhndk", 3.84 }, };
/* メンバへのアクセス ドット演算子(.)を使ってメンバにアクセスすることができます 使い方は下 構造体変数名.メンバ */ seito2[0].average = 2.21; printf("%2d %s %5.1f\n",seito1.no,seito1.name,seito1.average); for(i = 0; i < 2; i++) { printf("%2d %s %5.1f\n", seito2[i].no, seito2[i].name, seito2[i].average); } return 0;
}