■2次元配列
2次元配列※1とは、表の様なデータを扱うときに便利な変数です。
2次元の配列名※2を宣言する事で、行と列を変数とした配列の要素※3に連続してアクセスし、データの読み書きが簡単に行えるようになります。
以下に記入例とそのパラメータ、また表との対応を示します。
○記入例
int a[2][2];
○パラメータ
Type Array[Index1][Index2]
Type :要素の型
Array :配列名
Index1:行数
Index2:列数
a[i][j] | j=0(列) | j=1(列) | j=2(列) |
i=0(行) | a[0][0] | a[0][1] | a[0][2] |
i=1(行) | a[1][0] | a[1][1] | a[1][2] |
i=2(行) | a[2][0] | a[2][1] | a[2][2] |
以下補足です
※1:配列(array)とは、同じ型のデータをメモリ上に連続して並べたかたまりです。
※2:配列名とは、その配列全体を指すための名前の事。
※3:配列の要素(element)とは、配列中に連続した一つ一つ※4のデータの事。
※4:i 番目の要素は 配列名[i] と書き、変数 iの事を配列の添字(index)と呼ぶ。
※ 注意点として、違う型のデータを混在して配列する事は出来ません。
■使用例
Arduino IDEで使用する2次元配列の使用例は図1の通りです。
試しにこのプログラムをArduino UNOで実行すると、最初に表2に示した行列のサンプルデータと同じものがb[3][4]に保存されます。
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
次にb[3][4]に保存したデータを全てa[3][4]にコピーします。
最後にa[3][4]に保存した3行×4列=12要素のデータをPCのシリアルモニター上に図2の通り表示します。
void setup() { Serial.begin(9600); } void loop() { int a[3][4]; int b[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { a[i][j] = b[i][j]; } } for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { Serial.print("a["); Serial.print(i); Serial.print("]["); Serial.print(j); Serial.print("]="); Serial.println(a[i][j]); delay(1000); } } }
図1:プログラム例
図2:プログラム実行結果
■多次元配列
「int a[i][j][k];」と3次元配列にする事も、「int a[i][j][k][l];」と4次元配列・・・とする事も可能です!便利!
励みになりますのでよければクリック下さい(^o^)/