構造体と構造体変数の名前の付け方を一緒に考察してみましょう
ソーラー「きた、きたあ
構造体と構造体変数の名前の付け方あああ」
てんC「はしゃいでおられますね」
ソーラー「こここそが僕のフィールドかな😊
だって
構造体と構造体変数の名前は自由につけられるんだもんね」
てんC「はい そうなんです」
ソーラー「わかりやすくて かっこいい名前がいいな
どんな名前がいいかな?
(´▽`*)(*´▽`*)」
てんC「では😊まず
立方体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の構造体変数宣言
struct Cube cube1;
によって生成される
構造体変数cube1のメンバ変数
cube1.no
cube1.tate
cube1.yoko
cube1.takasa
に
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は
どのように決められたのでしょうか」
ソーラー「や・ま・か・ん かな」
てんC
「そうですね・・・
構造体をつかって
プログラムを構成する際
構造体、構造体変数名は自分でつけることになるのですが
どのように名前をつけていったらよいのでしょうか
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に格納しています
👆
この文章をよくご覧ください
構造体変数の名前の付け方のヒントが隠れています」
ソーラー「えっどこ、どこ?」
てんC
「 "立方体cube1の縦の長さのデータ4.0を"
"構造体変数のメンバ変数に格納する"
のなら
構造体変数名はcube1にすればよいのです。
cube1 縦の長さのデータ4.0
⇕ ⇕
構造体変数名 構造体変数のメンバ変数に格納
の関係になっています」
ソーラー「はい(´▽`*) なんかそのまんまです」
てんC「他の例で示すなら
長方形rectangle1,rectangle2となづけられたものがあるなら
それは縦、横のデータ情報を持っています
その縦、横のデータ情報をコンピュータのメモリに格納するには
tate
yoko
の2つの変数が必要になります」
ソーラー「そう、そう」
てんC
「これらの2つの変数を構造体にとりこみ
構造体変数のメンバ変数に
縦、横のデータ情報を格納していくのですが
"長方形rectangle1の縦の長さを"
"構造体変数のメンバ変数に格納する"
のなら
先程の立方体の時と同様に
構造体変数名はrectangle1にし
縦の長さを
構造体変数のメンバ変数
rectangle1.tateに格納すればよいのです。
そう おもいませんか
ソーラーさん😊」
ソーラー「いやあ😊まんまそうです」
てんC
「では 構造体名はどのようにつけたらよいでしょうか
逆に類推すると
縦、横のデータ情報をもつものは
長方形であるといえます
そこで
構造体の名前は
Rectangleとします」
ソーラー「おおぅう 冴えてるぅ 」
てんC
「では 複数のデータをもつ物のデータ情報を
構造体と構造体変数をつかってコンピュータのメモリに格納して
printf出力表示してみましょう
そのときの
構造体と構造体変数の名前を一緒に考えてみましょう
ソーラーさん」
ソーラー「もちろん OK いい名前を付けてあげるよ」
てんC
「まずは
ゲームキャラの絵が描いてあるトレーディングカードの
データ情報を
構造体と構造体変数を使ってコンピュータのメモリに格納したのち
そのデータ情報を
コマンドプロンプト画面に
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に格納すればよいのです。
🍋構造体変数名は最初の1文字目を小文字にします🍋
(💖構造体名は最初の1文字目を大文字にします
そのようにして
構造体と構造体変数の見分けがつきやすいようにします💖)
」
ソーラー
「簡単だね。にゃんこのHPとnyannko.HPがもろに対応しているよね
では 構造体名はどのようにつけたらよいでしょうか
逆に類推すると
HP
MP
AP
DP
のデータ情報をもつものはたくさん
ありますね。
RPGゲームのゲームキャラデータ
アクションゲームのキャラデータ
シュミレーションゲームのキャラデータなどなど
・・・・・」
solarplexuss「(全部ゲームキャラのデータなような気がする・・・)」
ソーラー「僕の作ったお料理も
HP
MP
AP
DP
のデータ情報をもってるんだよ
構造体名はすき焼き鍋にしようよ アレサ」
アレサ
「そうですね それもいいですね
ですが
この状況では
HP
MP
AP
DP
のデータ情報をもつものは
明らかにトレーディングカードです
そこで
構造体の名前は
TradingCardとします
💖構造体名は最初の一文字は大文字にします💖
」
ソーラー「にゃおお~~んん🙀
すき焼き鍋は・・・」
アレサ
「すき焼き鍋は後ほど作製いたします
構造体変数の名前をnyannko
構造体の名前をTradingCardにきめたところで
にゃんこ
HP=100
MP=15
AP=7
DP=8
のデータ情報を
nyannkoの構造体変数宣言
struct TradingCard nyannko;
を実行することにより生成される
構造体変数nyannkoのメンバ変数
nyannko.HP
nyannko.MP
nyannko.AP
nyannko.DP
に
格納して
printf出力表示してみますね😊
そのプログラムは次のようになります。
#include <stdio.h>
struct TradingCard{
int HP;
int MP;
int AP;
int DP;
};
int main(void) {
struct TradingCard 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のメンバ変数
nyannko.HP
nyannko.MP
nyannko.AP
nyannko.DP
に格納し
printf出力表示することができました」
ソーラー「整数値をprintf出力表示するときは%d出力変換指定子を
つかうんだったね よく忘れちゃうね。(^_^)/」
いまのは構造体名と構造体変数名の付け方の1例でした
が
このように構造体と構造体変数の名前の付け方を
自分できめておくのはたいへん役にたつとおもわれます
その場に応じて
構造体と構造体変数の名前を適当につけると
後で見返したときに何が何だか分からなくなります
先程のプログラムで
構造体名をTradingCardから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;
}
ソーラー「構造体はAppleで
構造体変数はmouse
もはや なんのことかさっぱりわからないよね」
アレサ
「なんのことだか かなりわかりにくいですね。
そう、
自分なりにわかりやすいように
構造体と構造体変数の名前の付け方を決めておかないと
いつも どのように名前をきめたらよいかわからず
あるときは
先程のプログラムで
構造体名TradingCard
構造体変数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~~~
より
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます