1999年度のプログラミングIIIの授業は終りました。 この授業のページは参照用の資料として保存しているものです。最新の情報・資料は江上の授業ページで。 |
構造体の理解 |
以下はさきほど例題として使用したプログラムである。同じプログラムを3つの違った変数(データ構造)でもって表現してみよう。
通常変数を用いて
#include <stdio.h> main()
{
int yy;
int mm;
int dd;yy = 1998; /* 変数 yy に代入 */
mm = 11;
dd = 19;printf("%d 年 %d 月 %d 日\n", yy, mm, dd);
}
配列を用いて
#include <stdio.h> main()
{
int d[3];d[0] = 1998; /* 配列変数 d の 1番目の要素に代入 */
d[1] = 11;
d[2] = 19;printf("%d 年 %d 月 %d 日\n", d[0], d[1], d[2]);
}
構造体を用いて
#include <stdio.h> main()
{
struct DATE_DATA
{
int yy;
int mm;
int dd;
} data ;data.yy = 1998; /* date という構造体変数名の yy というメンバに代入 */
data.mm = 11;
data.dd = 19;printf("%d 年 %d 月 %d 日\n", data.yy, data.mm, data.dd);
}
struct DATE_DATA
{
int yy;
int mm;
int dd;
} date ;において・・・
1) date.yy .... ( 「構造体変数名.メンバ名」のフルセット )
この構造体変数の(中の)・・・2) date ... ( 「構造体変数名」のみ )
↓
date ... (構造体変数名) yy というメンバ
↓
yy ... int 型 のメンバ mm ... int 型 のメンバ dd ... int 型 のメンバ
→ 個々のメンバにデータを代入する時 or データを参照する時
この構造体変数全体(つまりメンバ全部)
↓
date ... (構造体変数名)
yy ... int 型 のメンバ mm ... int 型 のメンバ dd ... int 型 のメンバ
→ 構造体をまとめて代入・参照する時
→ 関数の引数・戻り値として使用するとき