二次元配列

 前回、配列というものをご紹介しました。前回の記事のタイトルは「一次元配列」としたのですが、このタイトルから「二以上の次元の配列があるのか」と気になった方もいらっしゃるかもしれません。実際に、二次元配列というものは存在します。一次元配列が、箱が横並びでくっついたものだとしたら、二次元配列は、縦と横に箱がくっついて伸びている状態です。よくあるロッカーみたいなものです。Excelの表をイメージしていただけるとわかりやすいかもしれません。

 二次元配列は、以下のように定義します。

int score[9][9];        // 整数型で要素数が9×9個の「score」という二次元配列
double data[10][5];     // 小数型で要素数が10×5個の「data」という二次元配列
char abcd[4][4];        // 文字型で要素数が4×4個の「abcd」という二次元配列

 このように、[]が2個くっつきます。Excelの表をイメージして頂くと、「配列名[縦のセル番号][横のセル番号]」という意味になっています。要素の格納も、一次元配列と同じようにできます。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int multiple[9][9];
    
    multiple[0][0] = 1;
    multiple[1][0] = 2;
    multiple[2][0] = 3;
    
    /* ...(中略)... */
    
    multiple[1][0] = 2;
    multiple[1][1] = 4;
    multiple[1][2] = 6;
    
    /* ...(中略)... */
    
    multiple[8][6] = 63;
    multiple[8][7] = 72;
    multiple[8][8] = 81;
    
    printf("9 x 9 = %d", multiple[8][8]);
    
    return 0;
}

 上の例は、かけ算の九九の表を作っています。[0][0]の要素から順番に九九の数を入れています。(二次元配列でも要素は[0]からスタートします。)

 ちなみに、三次元配列なんかも作れてしまいます。Excelでいうところの、「Sheet 1」「Sheet 2」みたいなものです。「score[0][0][0]」と書くと、Sheet 1の一番左上のセルというイメージになります。ただし、三次元とまでなると、非常に頭が混乱するかもしれないので、まずは二次元配列というものもありますよ、というのを覚えていただければ構いません。

■スポンサーリンク

このページの先頭へ