Presentation is loading. Please wait.

Presentation is loading. Please wait.

構造体と共用体.

Similar presentations


Presentation on theme: "構造体と共用体."— Presentation transcript:

1 構造体と共用体

2 Quiz void effect(int); int main(void) { int x=1, *p; p = &x;
effect(*p); printf(“%d\n”,x); } void effect(int z) z = 4; void effecp(int *); int main(void) { int x=1, *p; p=&x; effectp(p); printf(“%d\n”,x); } void effectp(int *z) *z = 4;

3 前回の復習 ポインタ変数の定義 アドレス演算子・間接参照演算子 (代入演算の左辺と右辺では機能が違う!) ポインタ変数を用いた関数定義
なぜアドレス変数と呼ばない? アドレス演算子・間接参照演算子 (代入演算の左辺と右辺では機能が違う!) ポインタ変数を用いた関数定義

4 構造体・共用体の定義

5 構造体の例(1) C言語には複素数型がない!→ ならば定義しよう! メンバ変数 .はメンバ参照演算子

6 構造体の例(2) ちょっと新しい型を定義したという気分に欠ける typedefを使う

7 構造体のポインタ変数 構造体を値として渡すとメンバ変数の全ての値がコピーして渡されプログラムの実行効率が悪い
構造体のアドレス(ポインタ)を使う

8 間接メンバ参照演算子 -> (*a).x = a->x (*変数名)はプログラムを見難くする(?)

9 演算子の優先順位に注意!

10 共用体(1) 同じような概念のデータで、選択的に一つのデータが使われる場合か、同じデータ の別表現を格納するのに使う w b c h r a
type = 1 (円) type = 2 (長方形) type = 3 (三角形)

11 共用体(2) c c r t r t

12 練習1: アドレス帳の1ページを表す構造体を定義してみよう。 練習2: アドレス帳の配列を集めてアドレス帳構造体を定義しよう。
練習1: アドレス帳の1ページを表す構造体を定義してみよう。 練習2: アドレス帳の配列を集めてアドレス帳構造体を定義しよう。 1.名前 2.生年月日 3.性別 4.住所 5.コメント .


Download ppt "構造体と共用体."

Similar presentations


Ads by Google