構造体と構造体変数の名前の付け方を一緒に考察してみましょう

ソーラー「きた、きたあ


構造体と構造体変数の名前の付け方あああ」


アレサ「はしゃいでおられますね」


ソーラー「こここそが僕のフィールドかな😊


だって


構造体と構造体変数の名前は自由につけられるんだもんね」


アレサ「はい😊😊😊」


ソーラー「わかりやすくて かっこいい名前がいいな


どんな名前がいいかな?


(´▽`*)(*´▽`*)」



アレサ「では😊まず


立方体cube1,cube2があるとします


cube1は

NO=1

縦=4.0

横=5.0

高さ=6.0


cube2は

NO=2

縦=7.0

横=8.0

高さ=9.0


の4つのデータ情報をもっています。


前のエピソードでは


cube1のデータ


NO=1

縦=4.0

横=5.0

高さ=6.0


これらの数値を


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


cube1.no=1;

cube1.tate=4.0;

cube1.yoko=5.0;

cube1.takasa=6.0;


のように格納して


printf出力表示することができました


同様に


構造体変数cube2の構造体変数宣言を行い


cube2のデータである


NO=2

縦=7.0

横=8.0

高さ=9.0


👆これらの数値を


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


cube2.no

cube2.tate

cube2.yoko

cube2.takasa;

cube2.no=2;

cube2.tate=7.0;

cube2.yoko=8.0;

cube2.takasa=9.0;


と格納しprintf出力表示することもできます


立方体cube1も立方体cube2も


同じ

NO

高さ

に関する情報をもっているので


同じ構造体Cube型の


構造体変数cube1,cube2をもちいてデータを1括管理することができます


ところで


1つ前のエピソードで出てきた


この構造体変数の名前cube1 構造体の名前Cubeは


どのように決められたのでしょうか」


ソーラー「や・ま・か・ん かな」


アレサ

「そうですの・・・


構造体をつかって


プログラムを構成する際


構造体、構造体変数名は自分でつけることになるのですが


どのように名前をつけていったらよいのでしょうか


1つ前のエピソードで


立方体cube1のデータである


NO=1

縦=4.0

横=5.0

高さ=6.0


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


cube1.no=1;

cube1.tate=4.0;

cube1.yoko=5.0;

cube1.takasa=6.0;


と格納しましたね


このとき

cube1.tate=4.0;は


立方体cube1の縦の長さのデータ4.0をcube1.tateに格納しています

👆

この文章をよくご覧ください


構造体変数の名前の付け方のヒントが隠れています」


ソーラー「えっどこ、どこ?」


アレサ


「 "立方体cube1の縦の長さのデータ4.0を"


"構造体変数のメンバ変数に格納する"


のなら


構造体変数名はcube1にすればよいのですの。


 cube1     縦の長さのデータ4.0

  ⇕         ⇕

構造体変数名   構造体変数のメンバ変数に格納

 

の関係になっています」


ソーラー「はい(´▽`*) なんかそのまんまです」


アレサ「他の例で示すなら


長方形rectangle1,rectangle2となづけられたものがあるなら


それは縦、横のデータ情報を持っています


その縦、横のデータ情報をコンピュータのメモリに格納するには


tate

yoko


の2つの変数が必要になります」


ソーラー「そう、そう」


アレサ

「これらの2つの変数を構造体にとりこみ


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


縦、横のデータ情報を格納していくのですが


   


     "長方形rectangle1の縦の長さを"


     "構造体変数のメンバ変数に格納する"



のなら


先程の立方体の時と同様に


構造体変数名はrectangle1にし


縦の長さを


構造体変数のメンバ変数


rectangle1.tateに格納すればよいのですの。


そう  おもいませんか


ソーラーさん😊」


ソーラー「いやあ😊まんまそうです」


アレサ


「では 構造体名はどのようにつけたらよいでしょうか


逆に類推すると


縦、横のデータ情報をもつものは


長方形であるといえます


そこで


構造体の名前は

Rectangleとします」


ソーラー「おおぅう 冴えてるぅ アレサ」


アレサ


「では 複数のデータをもつ物のデータ情報を


構造体と構造体変数をつかってコンピュータのメモリに格納して


printf出力表示してみましょう


そのときの


構造体と構造体変数の名前を一緒に考えてみましょうね


ソーラーさん」


ソーラー「もちろん OK いい名前を付けてあげるよ」


アレサ

「まずは


ゲームキャラの絵が描いてあるトレーディングカードの


データ情報を


構造体と構造体変数を使ってコンピュータのメモリに格納したのち


そのデータ情報を


コマンドプロンプト画面に


printf出力表示してみましょう


トレーディングカードには


にゃんこ


HP=100

MP=15

AP=7

DP=8


と記載されているとします


先程の例に倣って


構造体名と構造体変数名を決めていきましょう



にゃんこ のトレーディングカードは


HP=100

MP=15

AP=7

DP=8

データ情報を持っています


そのデータ情報をコンピュータのメモリに格納するため

HP

MP

AP

DP

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


これらの4つの変数を構造体にとりこみ


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


HP=100

MP=15

AP=7

DP=8

のデータ情報

100

15

7

8


を格納していくのですが


  

 

   ”にゃんこのHP=100を構造体変数のメンバ変数に格納する”




ので




構造体変数は構造体変数名をNyannko(にゃんこ)とし


100を構造体変数Nyannkoのメンバ変数


Nyannko.HPに格納すればよいのです。」


ソーラー


「簡単だね。にゃんこのHPとNyannko.HPがもろに対応しているよね


では 構造体名はどのようにつけたらよいでしょうか


逆に類推すると


HP

MP

AP

DP

のデータ情報をもつものはたくさん


ありますね。


RPGゲームのゲームキャラデータ

アクションゲームのキャラデータ

シュミレーションゲームのキャラデータなどなど


・・・・・」


solarplexuss(全部ゲームキャラのデータなような気がする・・・)


ソーラー「僕の作ったお料理も


HP

MP

AP

DP

のデータ情報をもってるんだよ


構造体名はすき焼き鍋にしようよ アレサ」



アレサ

「そうですね それもいいですね


ですが


この状況では


HP

MP

AP

DP

のデータ情報をもつものは


明らかにトレーディングカードデータです


そこで


構造体の名前は

TradingCardDataとします」


ソーラー「にゃおお~~んん🙀


すき焼き鍋は・・・」


アレサ


「すき焼き鍋は後ほど作製いたします



構造体変数の名前をNyannko

構造体の名前をTradingCardDataにきめたところで


にゃんこ


HP=100

MP=15

AP=7

DP=8


のデータ情報を


構造体変数のメンバ変数


Nyannko.HP

Nyannko.MP

Nyannko.AP

Nyannko.DP



格納して


printf出力表示してみますね😊


そのプログラムは次のようになります。


#include <stdio.h>



struct TradingCardData {


int HP;

int MP;

int AP;

int DP;


};


int main(void) {


struct TradingCardData Nyannko;

/*Nyannkoの構造体変数宣言が行われています*/


Nyannko.HP = 100;

Nyannko.MP = 15;

Nyannko.AP = 7;

Nyannko.DP = 8;


printf("%d\n", Nyannko.HP);

printf("%d\n", Nyannko.MP);

printf("%d\n", Nyannko.AP);

printf("%d\n", Nyannko.DP);

return 0;

}



コンパイル結果

100

15

7

8


アレサ「にゃんこのトレーディングカードデータに記載されている


HP=100

MP=15

AP=7

DP=8


の数値データを


構造体変数のメンバ変数

Nyannko.HP

Nyannko.MP

Nyannko.AP

Nyannko.DP


に格納し


printf出力表示することができました」


ソーラー「整数値をprintf出力表示するときは%d出力変換指定子を


つかうんだったね よく忘れちゃうね。(^_^)/」




いまのは構造体名と構造体変数名の付け方の1例でした



このように構造体と構造体変数の名前の付け方を


自分できめておくのはたいへん役にたつとおもわれます


その場に応じて


構造体と構造体変数の名前を適当につけると


後で見返したときに何が何だか分からなくなります



先程のプログラムで


構造体名をTradingCardDataからApple


構造体変数NyannkoからMouse

に変えると

次のようになります



#include <stdio.h>


struct Apple

{


int HP;

int MP;

int AP;

int DP;

};


int main(void){


struct Apple Mouse;

/*Mouseの構造体変数宣言が行われています*/


Mouse.HP=100;

Mouse.MP=15;

Mouse.AP=7;

Mouse.DP=8;


printf ("%d\n",Mouse.HP);

printf ("%d\n",Mouse.MP);

printf ("%d\n",Mouse.AP);

printf ("%d\n",Mouse.DP);

return 0;

}


ソーラー「もはや なんのことかさっぱりわからないよね」


アレサ

「なんのことだか かなりわかりにくいですね。


そう、


自分なりにわかりやすいように


構造体と構造体変数の名前の付け方を決めておかないと


いつも どのように名前をきめたらよいかわからず


あるときは


先程のプログラムで


構造体名TradingCardData

構造体変数Nyannko


だったのを


構造体名Player1

構造体変数player1

としてプログラムを構成してみたり

👇

#include <stdio.h>


struct Player1

{


int HP;

int MP;

int AP;

int DP;

};


int main(void){


struct Player1 player1;

/*player1の構造体変数宣言が行われています*/


player1.HP=100;

player1.MP=15;

player1.AP=7;

player1.DP=8;


printf ("%d\n",player1.HP);

printf ("%d\n",player1.MP);

printf ("%d\n",player1.AP);

printf ("%d\n",player1.DP);

return 0;

}


またあるときは

同じプログラムなのに


先程のプログラムで


構造体名Player1

構造体変数player1

だったのを


構造体名Player

構造体変数Player1

としてプログラムを構成することになります。

👇

#include <stdio.h>


struct Player

{


int HP;

int MP;

int AP;

int DP;

};


int main(void){


struct Player Player1;

/*player1の構造体変数宣言が行われています*/


Player1.HP=100;

Player1.MP=15;

Player1.AP=7;

Player1.DP=8;


printf ("%d\n",Player1.HP);

printf ("%d\n",Player1.MP);

printf ("%d\n",Player1.AP);

printf ("%d\n",Player1.DP);

return 0;

}


上の2つのプログラムを見ても


お分かりいただけますように


もうっ なんか いろいろ😊 かなりまぎらわしく


なります。


Player1って何をあらわしていたんだっけ?


あのプログラムでは ああだったっけ・・・?????


という具合になります。


えへへ うちもまぎれてでてきましたよ~ん


わたしも解説したいも~ん。


             ~~~solarplexuss~~~

                       より



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

作者を応援しよう!

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

応援したユーザー

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