コンピュータのメモリに効率よくデータを保存、そして使用する為に配列や構造体は作られています😊ゲームでは大量のデータを扱うので大変重宝されます

構造体を導入します。構造体structure Cubeを定義しcube1の構造体変数宣言structure Cube cube1をおこないます

今日は私 solarplexussがおおくりいたします。



ここでは立方体(英語名Cube)を例に構造体の仕組みをみていきましょう。



Cube(立方体)は

縦、横、高さの3つの情報をもっています。


そして

このCubeは

縦=4.0

横=5.0

高さ=6.0


のデータをもっているとします。


さらに


このCubeにはNO=1とナンバー番号がついているとします。


すると

Cube

NO=1

縦=4.0

横=5.0

高さ=6.0

4つの情報をもっていますね。


このCubeの4つの情報を管理し


プログラムをもちいて表示するには


4つの変数が必要となります


これらの4つの数値を


4つの変数

no

tate

yoko

takasa


に格納するなら


int no=1;

float tate=4.0;

float yoko=4.0;

float takasa=4.0;

と変数宣言をおこなえばよいですね。


このように

intやfloatの型をもちいて

Cubeの数値情報が4つの変数にとりこまれることになります。


Cubeの数値情報を表示するプログラムは

次のようになります。


#include <stdio.h>

int main (void){

int no=1;

float tate=4.0;

float yoko=5.0;

float takasa=6.0;


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

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

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

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

return 0;

}


コンパイル結果

1

4.000000

5.000000

6.000000


Cubeの数値データ情報を表示できました。


これらの4つの変数を


構造体と構造体変数をもちいて


一括して便利に管理することができます。。


構造体と構造体変数をつかっても


4つの変数に数値を代入することになります


まずは構造体とはどんなものか


一緒にみていきましょう。



構造体は


以下の構造体宣言をもちいて


struct 構造体名{

型名 変数名;

型名 変数名;

};


作成することができます。


ここでは構造体名をCubeとします


そして


4つの変数


no

tate

yoko

takasa


を管理する


構造体

struct Cube


を作成していきます。


ここでstruct Cubeのstructは


構造体を宣言するときに


必ずつかわれる文字であり


Cubeは構造体名となります。


構造体名は自由に半角英数字で決めることができます。


構造体名がCubeとなっている構造体の


構造体宣言は以下のようになります。


struct Cube{


int no;

float tate;

float yoko;

float takasa;

};


これで

4つの異なる型を持つ変数

int no;

float tate;

float yoko;

float takasa;

を管理する


構造体struct Cubeを


作成することができました。


ここで構造体を構成している

変数

no

tate

yoko

takasa

構造体のメンバ変数といいます。


これで準備段階は終了です。


構造体は構造体変数とともにもちいられて


初めてつかわれることができます。


ここでは


struct Cubeという構造体の


cube1という構造体変数を作製することにします。


その方法は


struct Cube cube1 ;



cube1の構造体struct Cube型の構造体変数宣言とよびます。


それは


int a;


つまり


aのint型の変数宣言に相当します。



int a;や

float b;のように

struct Cube cube1 ;

と表記してもちいられます。


この構造体変数も自由に半角英数字で名前を

つけることができます。


struct Cube が構造体

cube1 が構造体変数


ですね。


この構造体変数cube1 は

no

tate

yoko

takasa

という4つの変数を

cube1.no

cube1.tate

cube1.yoko

cube1.takasa

という形で


一括管理することになります。


構造体変数cube1によって管理される


これら4つの変数


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


を構造体変数cube1のメンバ変数といいます。


構造体のメンバ変数が

no

tate

yoko

takasa

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

cube1.no

cube1.tate

cube1.yoko

cube1.takasa


ですね。


それではいよいよ

構造体変数cube1のメンバ変数である

cube1.no

cube1.tate

cube1.yoko

cube1.takasa

に立方体Cubeの数値データ

NO=1

縦=4.0

横=5.0

高さ=6.0


を格納していきます。


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

cube1.no

cube1.tate

cube1.yoko

cube1.takasa


に数値を代入するときは


次のように表記します。


cube1.no=1

cube1.tate=4.0

cube1.yoko=5.0

cube1.takasa=6.0


それでは実際にプログラムを組んで


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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


に立方体Cubeの数値データを代入して


数値データをprintf表示してみます。


まずは構造体宣言struct Cubeを記述し


その後main関数を記述していきます。


#include <stdio.h>


struct Cube{


int no;

float tate;

float yoko;

float takasa;

};


int main(void){


struct Cube cube1;/*cube1の構造体変数宣言が行われています*/

cube1.no=1;

cube1.tate=4.0;

cube1.yoko=5.0;

cube1.takasa=6.0;


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




これで構造体struct Cubeを作製し


構造体変数宣言cube1を行い


立方体Cubeの4つの数値データを


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


cube1.no

cube1.tate

cube1.yoko

cube1.takasa


に格納することができました。


後のエピソードにも出てきますが


構造体宣言struct Cubeをmain関数の前で宣言するのは


構造体struct Cubeの構造体変数を


main関数内だけでなく


自作関数内でもつかえるようにするためです。


その場合は


自作関数内でもつかえるよう


自作関数の定義の前に


構造体宣言struct Cubeは


記述されることになります

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

作者を応援しよう!

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

応援したユーザー

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