Download presentation
Presentation is loading. Please wait.
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.コメント .
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.