ちょっとおまけ 自作関数の引数となっているポインタ変数に複数の構造体変数のアドレスが代入される様子を観察してみましょう
ソーラー「次のプログラムのどこがおもしろい点なのか?
それは・・・」
#include <stdio.h>
typedef struct CharacterStatusData
{
int HP;
int MP;
int AP;
int TP;
}CharacterStatusData;
void CharacterStatusData2bai(CharacterStatusData*pta){
pta->HP=2*pta->HP;
pta->MP=2*pta->MP;
pta->AP=2*pta->AP;
pta->TP=2*pta->TP;
}
int main(void)
{
CharacterStatusData charcter1StatusData={10,8,22,18};
CharacterStatusData charcter2StatusData={7,28,12,30};
printf("%d\n" ,charcter1StatusData.HP);
printf("%d\n" ,charcter1StatusData.MP);
printf("%d\n" ,charcter1StatusData.AP);
printf("%d\n" ,charcter1StatusData.TP);
printf("%d\n" ,charcter2StatusData.HP);
printf("%d\n" ,charcter2StatusData.MP);
printf("%d\n" ,charcter2StatusData.AP);
printf("%d\n" ,charcter2StatusData.TP);
CharacterStatusData2bai(&charcter1StatusData);
CharacterStatusData2bai(&charcter2StatusData);
printf("%d\n" ,charcter1StatusData.HP);
printf("%d\n" ,charcter1StatusData.MP);
printf("%d\n" ,charcter1StatusData.AP);
printf("%d\n" ,charcter1StatusData.TP);
printf("%d\n" ,charcter2StatusData.HP);
printf("%d\n" ,charcter2StatusData.MP);
printf("%d\n" ,charcter2StatusData.AP);
printf("%d\n" ,charcter2StatusData.TP);
return 0;
}
コンパイル結果
コンパイル結果
10
8
22
18
7
28
12
30
20
16
44
36
14
56
24
60
アレサ「実はいたって普通のプログラムなんですの。」
ソーラー「そうなんです(#^^#)
ただ
CharacterStatusData2bai(&charcter1StatusData);
CharacterStatusData2bai(&charcter2StatusData);
をみて あれっつと思った人もいるんじゃないかなって
思ったんだ
自作関数CharacterStatusData2baiの引数であるポインタ変数ptaに
&charcter1StatusDataにつづいて
&charcter2StatusDataが代入されているので
このプログラム
CharacterStatusData2bai(&charcter2StatusData);
だけが有効になると思った人が
いるんじゃないかなっておもったんだよ~
CharacterStatusData2bai(&charcter1StatusData);
が実行された時点で
アドレス&charcter1StatusDataに格納されている数値データは
2倍になっているんだ
そのあと
CharacterStatusData2bai(&charcter2StatusData);
により
アドレス&charcter2StatusDataに格納されている数値データは
2倍になっているんだね。
だから
アドレス&charcter1StatusDataのメモリに格納されている数値データも
アドレス&charcter2StatusDataのメモリに格納されている数値データも
ちゃんと
2倍になっているんだね。
めでたし めでたしってわけなんだね(^_^)/」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます