Transcript 構造体

構造体
• 構造体とは?
複数のデータをパックしたもの。
新しい“型“として使用できる
構造体
• キーワード struct
strcutは構造体を宣言する命令。
struct {
double x,y;
}a,b,c;
←この形式で、構造体a,b,c,を定義
↑ここまでが宣言
構造体
struct {
double x,y;
}a,b,c;
このばあい、a,b,cの三つは同じ形の構造体
a,b,cそれぞれに、xとyのデータを持っている。
構造体
構造体のメンバ変数にアクセスするには・・・
アクセス演算子 “.”を使う。
構造体aのメンバ変数xに3を代入するには、
a.x=3;
↑アクセス演算子
構造体
構造体のメンバ変数にアクセスするには・・・
アクセス演算子 “.”を使う。
変数fに構造体bのメンバ変数yを代入するには、
f=b.y;
↑アクセス演算子
構造体
struct宣言は、名前なしの構造体を宣言する。
struct {
double x,y;
}a,b,c;
a,b,cは名前なしの同じ構造体の変数
構造体
• typedf命令
typedef A B;
型AはBという名前でも使えるようにする。
struct命令と一緒に使うと、
構造体に名前をつけて、
新しい型として使用できる。
構造体
• 例:二次元ベクトル Vector型の宣言
typedef struct
{
double x,y;
} Vector;
以後、
Vector a,b,c;
として、Vector型の変数a,b,c,の定義ができる。
構造体
型として構造体を定義したら・・・
typedef struct
{
double x,y;
} Vector;
関数の型にも使用できる。
構造体
typedef struct
{
double x,y;
} Vector;
関数の型
Vector Add(Vector A,Vector B)
{
Vector C;
C.x=A.x+B.x;
関数の引数
C.y=A.y+B.y;
関数の戻り値
Return C;
}
構造体
• printfやscanfでの構造体の変数の使い方
↓
メンバ変数ごとにアクセスする。
例:
scanf(“%lf,%lf”, &a.x, &a.y);
書式指定子はメンバ変数の型にあわせる
構造体
構造体