3次元配列宣言を行い生成される配列変数を簡単に初期化してみる
マックス 「くすくすっ」
てんC 「マックスさん 畑仕事順調ですね。」
マックス 「最近 いい天気が続いてぇ~~
はかどる。はかどる。
まあっ 楽しい日々さ」
きれいに耕された土地は目の前にひろびろと広がっている。
てんC「作物が実る姿がうかんでみえます。」
マックス
「そっちも元気に進んでるじゃないか。
今さっきのエピソードは
簡単な2次元配列宣言、初期化方法をおこなっていたじゃないか。
その手順は
int hairetu[2][3]なら
[2]により
{ } { }を2個用意し
[3]で
{ }の中に3個〇を
{〇,〇,〇}
のようにかきこみ
2次元配列の数値のいれもの
{〇,〇,〇},{〇,〇,〇}をつくる
{〇,〇,〇},{〇,〇,〇}を{}でまとめて
簡単に2次元配列宣言を初期化できるいれものの原型
{{〇,〇,〇},{〇,〇,〇}}
ができる
こんな感じかな?(^^)
これを
int hairetu[2][3]にくっつけると
int hairetu[2][3]={{〇,〇,〇},{〇,〇,〇}};
が完成する
どう😊どう😊? あとはこの〇に
int hairetu[2][3]={{1,2,3},{4,5,6}};
のように
数値をかきこめば
簡単な2次元配列宣言、初期化を実行することができる😊
こんな感じかな」
てんCがマックスが実行した方法を確認してみる。
てんC 「はい、そのとおりです。」
マックス「
2次元配列宣言、初期化方法が
このようにおこなわれるならば
これを真似て
3次元配列宣言、初期化もできるんじゃないか?」
てんC「そう・・ですね。」
美しい畑にみとれるてんC。
てんCのシステムがあたりを観測している。
マックス
「int hairetu[2][3][4];
と3次元配列宣言した場合
生成される数値の入れ物である
配列変数は
hairetu[0][0][0]
hairetu[0][0][1]
hairetu[0][0][2]
hairetu[0][0][3]
hairetu[0][1][0]
hairetu[0][1][1]
hairetu[0][1][2]
hairetu[0][1][3]
hairetu[0][2][0]
hairetu[0][2][1]
hairetu[0][2][2]
hairetu[0][2][3]
hairetu[1][0][0]
hairetu[1][0][1]
hairetu[1][0][2]
hairetu[1][0][3]
hairetu[1][1][0]
hairetu[1][1][1]
hairetu[1][1][2]
hairetu[1][1][3]
hairetu[1][2][0]
hairetu[1][2][1]
hairetu[1][2][2]
hairetu[1][2][3]
となる
この数値の入れ物である配列変数に
hairetu[0][0][0]=2;
hairetu[0][0][1]=3;
hairetu[0][0][2]=4;
hairetu[0][0][3]=5;
hairetu[0][1][0]=8;
hairetu[0][1][1]=8;
hairetu[0][1][2]=8;
hairetu[0][1][3]=7;
hairetu[0][2][0]=3;
hairetu[0][2][1]=8;
hairetu[0][2][2]=2;
hairetu[0][2][3]=8;
hairetu[1][0][0]=7;
hairetu[1][0][1]=1;
hairetu[1][0][2]=0;
hairetu[1][0][3]=8;
hairetu[1][1][0]=3;
hairetu[1][1][1]=2;
hairetu[1][1][2]=4;
hairetu[1][1][3]=5;
hairetu[1][2][0]=6;
hairetu[1][2][1]=3;
hairetu[1][2][2]=0;
hairetu[1][2][3]=8;
と
適当に数値を代入することにより
3次元配列宣言int hairetu[2][3][4]により生成される
3次元配列を初期化するわけだが
手間がかかりすぎるだろう
そこで
できるかどうかはわからないが
今の簡単な2次元配列宣言、初期化方法を応用し
簡単な3次元配列宣言、初期化をおこなうんだ。
へへっどれどれ
int hairetu[2][3][4]なら
2次元配列のときと同じように
まず[2]により
{ } { }を2つ作り
次に
[3]により
{ }のなかに{ }を3つ作る
{{ },{ },{ }},{{ },{ },{ }}
そして
[4]により{ }のなかに数値を格納する場所〇を4つ生成する。
{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}},{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}}
これを{}でまとめれば
{{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}},{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}}}となり
3次元配列の数値を格納するいれものが完成する。
そう、
3次元配列宣言、初期化をおこない
数値を格納するための原型のモデルができあがる
3次元配列宣言
int hairetu[2][3][4];
と組み合わせると
int hairetu[2][3][4]=
{{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}},{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}}};
となる。
てんC「きれいに
3次元配列宣言、初期化するためのシステムができたようですね。」
マックス「だろう。ははははは
この〇に適当に数値を代入し
hairetu [0][1][1](すぐ後で説明するんだぞ)
に格納されている数値をprintf表示するプログラムをつくる。
#include <stdio.h>
int main(void)
{
int hairetu[2][3][4]={{{2,3,4,5},{8,8,8,7},{3,8,2,8}},{{7,1,0,8},{3,2,4,5},{6,3,0,8}}};
printf("%d\n",hairetu[0][1][1]);
return 0;
}
マックス「そして、このプログラムを実行するんだ。
プログラムの実行っっ」
てんC「どうなるでしょうか?(^^)」
プログラムの実行結果
8
てんC 「お見事です。 予測どおり
3次元配列宣言、初期化を行うことに成功しています。」
マックス「ここで
先程の
3次元配列宣言
int hairetu[2][3][4];
の数値を格納するいれもの
{{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}},{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}}}を作る手順で
[2]によってつくられた最初の{} ,{}を左から0番目.1番目
その{}の中の
[3]によってつくられた{},{},{}に左から0番目.1番目、2番目
さらにその{}の中の
[4]によってつくられた〇,〇,〇,〇に0番目.1番目、2番目、3番目
と順番を名づけると
hairetu[0][1][1]とは
011
{{{〇,〇,〇,〇},{〇,◎,〇,〇},{〇,〇,〇,〇}},{{〇,〇,〇,〇},{〇,〇,〇,〇},{〇,〇,〇,〇}}}
の◎の位置にあたるわけだ。
この場合、
int hairetu[2][3][4]={{{2,3,4,5},{8,8,8,7},{3,8,2,8}},{{7,1,0,8},{3,2,4,5},{6,3,0,8}}};
が実行されているので
この◎に格納されている数値は8となる。」
てんC「順番を名付けるとき0番目から始めるのも
2次元配列のときと同じですね。」
マックス
「
ふっふっふっ
ね、どう、どう?いいでしょ、いいでしょ
だからぁぁ
かまって かまって
てんC にゃははははははは」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます