※過去講義資料編集中 編集終わったら有機酸内からリンクします /*********************

 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;

}


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS