構造体struct Cube型の構造体変数cube1に同じ構造体struct Cube型の構造体変数cube2を代入してみましょう


アレサ


「int型の変数aに


a=b;

のように


int型の変数bが代入できたように


float型の変数cに


c=d;

のように


float型の変数dが代入できたように


構造体変数cube1に


同じ構造体の型の


構造体変数cube2を代入してみたいと思います。


#include <stdio.h>


struct Cube{


int no;

float tate;

float yoko;

float takasa;

};


int main(void){


struct Cube cube1={1,4.0,5.0,6.0};


struct Cube cube2={2,1.0,2.0,3.0};


printf ("%d\n",cube1.no);

printf ("%f\n",cube1.tate);

printf ("%f\n",cube1.yoko);

printf ("%f\n",cube1.takasa);


cube1=cube2;

/*構造体変数cube1に構造体変数cube2を代入しています*/

printf ("%d\n",cube1.no);

printf ("%f\n",cube1.tate);

printf ("%f\n",cube1.yoko);

printf ("%f\n",cube1.takasa);


return 0;

}

コンパイル結果

1

4.000000

5.000000

6.000000

2

1.000000

2.000000

3.000000


構造体変数cube1に構造体変数cube2を代入する前は

構造体変数cube1のメンバ変数


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


には


構造体変数cube1のメンバ変数を初期化する


cube1.no=1;

cube1.tate=4.000000

cube1.yoko=5.000000

cube1.takasa=6.000000

により

数値

1

4.000000

5.000000

6.000000

が格納されていました


cube1=cube2;

をおこない


構造体変数cube1に構造体変数cube2を


代入した後は


構造体変数cube1のメンバ変数


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


に格納されている値が

2

1.000000

2.000000

3.000000


と変化しています


構造体変数cube1に構造体変数cube2を代入することによって


cube1の4つのメンバ変数


の値が

cube2のメンバ変数の値に1度に


全部変わっているのがわかります。」


ソーラー

「これも構造体の便利なところかな。


もし構造体をつかっていなければ


立方体cube1のデータを

int no1=1;

float tate1=4.000000

float yoko1=5.000000

float takasa1=6.000000


立方体cube2のデータを

int no2=2;

float tate2=1.000000

float yoko2=2.000000

float takasa2=3.000000


と変数に格納することになります。


そして


立方体cube2のデータを

立方体cube1のデータにわたすには


立方体cube1のデータを格納している変数

no1

tate1

yoko1

takasa1

1つの変数ごとに

それに対応する

立方体cube2のデータを格納している変数

no2

tate2

yoko2

takasa2

no1= no2;

tate1=tate2;

yoko1=yoko2;

takasa1=takasa2;

と代入していかないといけないね。


この場合は変数の数が4つだったから


まだ簡単だけど


変数の数が1000個だったらとても大変だね\(^o^)/


構造体をつかえば

cube1=cube2;

ですむものね。


構造体はこんなところが便利だね」


  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます