おまけのコーナー 4次元配列宣言、初期化も行ってみよう
マックス「てんC,どうだ、どうだ、うまくいったろう。
そうかあ ここまできたなら
4次元配列宣言、初期化もできるはずじゃないか。
今までの例からして
多分
4次元配列宣言も
int hairetu[2][3][4][2];のように
あらわせるはずだろう
ははっ
ならば、この4次元配列宣言
int hairetu[2][3][4][2];
を初期化するための
数値を格納していく入れ物をつくっていくなら
手順は今まで通り
まず左端の[2]により
{ } { }を2つ作り
次に
[3]により
{ }のなかに{ }を3つ作る
{{ },{ },{ }},{{ },{ },{ }}
さらに
[4]により今の{ }のなかに{}を4つ作成する。
{{{},{},{},{}},{{},{},{},{}},{{},{},{},{}}},{{{},{},{},{}},{{},{},{},{}},{{},{},{},{}}}
そして
1番右端の[2]により
{}のなかに数値が代入される場所〇を2個表示すると
{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}},{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}}となり
これを{}でまとめれば
4次元配列宣言を初期化するためのいれものの原型である
{{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}},{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}}}
が完成する。
な、なんか・・・長いかな・・・
4次元配列宣言
int hairetu[2][3][4][2];
に数値を格納して
初期化するには
int hairetu[2][3][4][2]=
{{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}},{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}}};
の
〇の部分に数値を代入すればいいわけだ。
この様式で正しいかどうかは
まず
この〇に適当に数値を代入し
int hairetu[2][3][4][2];
により生成される
配列変数
hairetu[1][1][2][1]に代入された値をprintf表示
するプログラムをつくる。
#include <stdio.h>
int main(void)
{
int hairetu[2][3][4][2]=
{{{{1,2},{3,4},{5,6},{7,8}},{{9,10},{11,12},{13,14},{15,16}},{{17,18},{19,20},{21,22},{23,24}}},{{{25,26},{27,28},{29,30},{31,32}},{{33,34},{35,36},{37,38},{39,40}},{{41,42},{43,44},{45,46},{47,48}}}};
printf("%d\n",hairetu [1][1][2][1]);
return 0;
}
そしてこのプログラムの実行結果で
hairetu[1][1][2][1]の場所に格納された数値38がprintf表示されれば成功となるわけだ。
(なぜ数値38が
hairetu[1][1][2][1]の場所に格納されているのが
わかるのかは後述するんだぞ)
ふふ いいアイデアだろっ。」
てんC 「いい思考の流れですね。
これはとても楽しみです。どのような結果がでてくるのでしょうか?」
マックス 「なあっ 楽しみだろ
うまくこの4次元配列宣言、初期化が機能するか・・
( ̄∇ ̄;)ハッハッハ それではコンパイル」
てんC「コ・ン・パ・イ・ル結果は・・・
お見事
38
です。
4次元配列宣言、初期化に成功しています。 マックスさん(^^)」
」
マックス「これも成功か! やったぜ。
いやあ いい感じじゃないか。
それに、なんか、てんCがいると楽しいじゃないか(^^ ) 」
てんC「うふっ」
目が泳ぐてんC。
てんC「
ありがとう、マックスさん
おめでとう。 4次元配列も・・・使えるようになりました。」
。。。。。。。。。。。。。
ここで4次元配列宣言を初期化するための数値のいれもの
{{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}},{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}}};
においては
int hairetu[2][3][4][2];
の
[2]によってつくられた最初の{} ,{}に左から0番目.1番目
その{}の中の
[3]によってつくられた{},{},{}に左から0番目.1番目、2番目
さらにその{}の中の
[4]によってつくられた{},{},{},{}に0番目.1番目、2番目、3番目
さらにその{}の中の
[2]によってつくられた〇,〇に0番目.1番目
と順番が名づけられています。
0番目から順番がはじまっているのは
1,2,3次元配列のときとおなじです。
hairetu [1][1][2][1]に数値が格納される場所は
int hairetu[2][3][4][2];
の
[2]によってつくられた最初の{} ,{}の左から1番目
その{}の中の
[3]によってつくられた{},{},{}の左から1番目
さらにその{}の中の
[4]によってつくられた{},{},{},{}の左から2番目
さらにその{}の中の
[2]によってつくられた〇,〇の左から1番目
//👆🌞順番は0番目、1番目、2番目・・・のように0番目から始まることになります
になります
ですので
今のプログラムででてきた
4次元配列hairetuの
配列変数の1つ
hairetu [1][1][2][1]に格納される数値の場所は◎の位置にあたり
{{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}},{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,◎},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}}};
38が格納されています。
もうひとつ例を示すと
hairetu [0][2][2][1]に数値が格納される場所は
int hairetu[2][3][4][2];
の
[2]によってつくられた最初の{} ,{}の左から0番目
その{}の中の
[3]によってつくられた{},{},{}の左から2番目
さらにその{}の中の
[4]によってつくられた{},{},{},{}の左から2番目
さらにその{}の中の
[2]によってつくられた〇,〇の左から1番目
//👆🌞順番は0番目、1番目、2番目・・・のように0番目から始まることになります 注意してね
になります
ですので
hairetu [0][2][2][1]に格納される数値の場所は◎の位置にあたり
{{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,◎},{〇,〇}}},{{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}},{{〇,〇},{〇,〇},{〇,〇},{〇,〇}}}}
この場合は22が格納されています。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます