C言語 二次元配列






スポンサードリンク

今まで説明させて頂いていた配列は一次元配列ともうしまして、他に二次元配列、三、四・・等多次元宣言することが可能です。ただ一般的には二次元配列までしか実際に利用することは無いとの事です。

二次元配列のサンプル(整数型(int)、実数型(double)、文字列型(char)のサンプルをそれぞれ用意しております。)

int mydt[2][2];

double mydt[2][2];

char [2][2];


三次元配列サンプル

int mydt[2][2][2];

double mydt[2][2][2];

char [2][2][2];


※それぞれの配列要素は説明しやすいように[2](添字)としております。
要素:mydt[要素] 任意に用意した配列の数。
下図の赤線部分が要素です。


今までの配列(一次元配列)の場合【 int mydt[2]; 】とした場合
以下のようにメモリ上に確保されます。
※配列を宣言した場合、「0」からカウントされます。こちらのサンプルを見ていただくと解りやすいです
mydt[0]
mydt[1]

例えば mydt[1] = 5; と値を代入すると、以下のように値が確保されます。
mydt[0]
mydt[1] 5

二次元配列の場合【 int mydt[2][2]; 】とした場合
以下のように二組メモリ上に確保されます。
mydt[0][0]
mydt[0][1]
mydt[1][0]
mydt[1][1]

三次元配列の場合【 int mydt[2][2][2]; 】(多次元配列の説明は以下のみです。)
以下のようにメモリ上に確保されます。
mydt[0][0][0]
mydt[0][0][1]
mydt[0][1][0]
mydt[0][1][1]
mydt[1][0][0]
mydt[1][0][1]
mydt[1][1][0]
mydt[1][1][1]

二次元配列に初期値を設定する場合

int mydt[2][2] = {10,100,1000,10000};

二次元配列(多次元含む)に初期値を設定すると、先に変化する要素(添字)の順番で割り当てられます。
mydt[0][0] 10
mydt[0][1] 100
mydt[1][0] 1000
mydt[1][1] 1000

しかしながら配列要素が増えると、上記の初期値設定では読みにくい為、一般的には割り当てた組()づつカッコで区切り明確に記述方法が一般的になります。

int mydt[2][2] = { {10,100}, {1000,10000} };

確認サンプルソース

#include <stdio.h>
int main(void)
{
int mydt[2][2] = { {10,100},{1000,10000}};

printf("%d\n",mydt[0][0]);
printf("%d\n",mydt[0][1]);
printf("%d\n",mydt[1][0]);
printf("%d\n",mydt[1][1]);

return 0;
}

実行結果


要素数を増やした場合、以下のように分けて書くようにすれば見やすくまとめられます。

int mydt[6][2] = {
         {10,100},
         {1000,10000},
         {20,200},
         {2000,20000},
         {30,300},
         {3000,30000}
         };

表にまとめると以下の順番で、各配列要素に代入されます。ようになります。
mydt[0][0] 10
mydt[0][1] 100
mydt[1][0] 1000
mydt[1][1] 1000
mydt[2][0] 20
mydt[2][1] 200
mydt[3][0] 2000
mydt[3][1] 20000
mydt[4][0] 30
mydt[4][1] 300
mydt[5][0] 3000
mydt[5][1] 30000

二次元配列の説明は以上です。次は文字型【 char 】を用いた二次元配列を参照すると良いと思います。

あかかげまるのC言語入門はこちら!!

スポンサードリンク

パソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール

 Subscribe in a reader


ページトップへ