【MQL4の勉強】多次元配列とは何?プログラム書き方やサンプルコードも!

ザフナーラボブログ

今回は多次元配列という少し難しい名前プログラミングの概念を紹介いたします。

名前は少し難しいですが、一度分かってしまえばそんなに難しい話でも無いので、ぜひ勉強してみて下さい!

1.多次元配列とは

多次元配列(Multi-dimensional Array)とは、配列の中に配列を定義(=配列そのものを要素として定義)している配列をいいます。

例えば、以下のようなものです。


int ma[2][3];

 

上記のような配列を、2次元配列といいます。

また、以下のような配列を、3次元配列といいます。


int ma[2][3][4];

2.宣言の仕方

多次元配列の宣言は、以下のように記述して行います。

型名 配列名[要素数1][要素数2] …;

多次元配列の各要素の値の初期化は、以下のように記述して行います(2次元配列を例とします。)。


int ma[2][3] = {{1,2,3},{4,5,6}};

 

上記は、以下のように記述したのと、同様となります。


int ma[2][3];

ma[0][0] = 1;
ma[0][1] = 2;
ma[0][2] = 3;
ma[1][0] = 4;
ma[1][1] = 5;
ma[1][2] = 6;

 

また、以下のように記述することもできます。


int ma[2][3] = {{1,2,3},{4,5,6}};

 

上記のような2次元配列は、以下に示すように、エクセルにおける表のようにイメージすると分かりやすいと思います。

multidimensional-array-image

3.具体例

例えば、以下のようなスクリプトを作成したとします(スクリプトの作成方法については「こちら」を参照してください。)。

サンプルコード


#property strict

#property show_cnfirm

void OnStart()
{
  int ma[2][3] = {{1,2,3},{4,5,6}};
  
  for(int i = 0; i < 2; i++)
     {
       for(int j = 0; j < 3; j++)
          {
            Print("ma[",i,"][",j,"] = ",ma[i][j]);
          }
     }
}

上記のスクリプトを実行すると、「ターミナルウィンドウ」の「エキスパート」タブに、以下のような表示がなされます。


ma[1][2] = 6
ma[1][1] = 5
ma[1][0] = 4
ma[0][2] = 3
ma[0][1] = 2
ma[0][0] = 1