情報処理演習C2 構造体について 1 構造体とは • いくつかの変数を、ひとまとめにしたもの。 // 車のタイプ int racingcar_type; struct RacingCar { // 車のタイプ int type; // 車の色 int racingcar_color; // 車の色 int color; }; 2 #include <stdio.h> int main() { struct RacingCar { int type; int color; }; RacingCar c1; RacingCar c2; c1.type = 10; c1.color = 2; c2.type = 20; c2.color = 5; 構造体の定義 構造体変数の作成 構造体変数への代入 printf("c1 type=%d, color=%d\n",c1.type,c1.color); printf("c2 type=%d, color=%d\n",c2.type,c2.color); 構造体変数の使用 return 0; } 3 構造体の定義と変数 struct RacingCar { int type; int color; }; RacingCar c1; RacingCar c2; type color 定義は設計図のようなもの c1 c2 実際の変数は設計図から作った車のようなもの 4 なぜ構造体が必要か • プログラムが大きくなると、変数 がたくさんになる。 • 変数がたくさんになると、わけ が分らなくなる。 • そこで、構造体で関連する変数 をひとまとめにして、整理する。 struct int ivalue1; values { int intivalue2; ivalue1; double int ivalue2; counter=0; int p,q,r,s; }; int color; struct RacingCar { int double type; counter=0; int intneko, p,q,r,s; inu, kirin; int intcgengo_ha_sukidesuka; color; int inta,b,c; type; int cnt = 0; }; struct c2 { int neko, inu, kirin; int cgengo_ha_sukidesuka; int a,b,c; }; int cnt = 0; 5 構造体と配列 struct RacingCar { int type; int color; }; RacingCar cars[3]; cars[0].type = 1; cars[1].color = 2; 構造体配列変数の作成 構造体配列変数への代入 6 構造体とポインタ struct RacingCar { int type; int color; }; RacingCar car; 構造体変数の作成 RacingCar* p_car = &car; 構造体ポインタの作成、 car変数のアドレスをセット p_car->color = 1; ポインタによる変数への代入 car.color = 1;と同じ。 7 構造体変数の引数 struct RacingCar { 関数とmainの両方で構造体を使 int type; いたい場合、両方を含む位置(関 int color; 数とmainの外側)で定義する。 }; 構造体変数(コピー) int function1(RacingCar c){...} int function2(RacingCar c[3]){...} 構造体配列変数(ポインタ) int function3(RacingCar* p_c){...} 構造体変数ポインタ int main(){...} 8 構造体の中に構造体 struct Engine { int manufacture; int date; }; struct RacingCar { Engine engine; int type; int color; } エンジンを表す構造体 レーシングカー構造体に エンジン構造体の変数を入れる 9
© Copyright 2024 ExpyDoc