配列
配列とは、1つの型の変数(又は文字)を複数個、集めて順番に並べ、1つのかたまりとして扱う変数のことです。 この配列を定義すると、同じの型の幅(大きさ)でメモリ上に連続して、値が並びます。配列変数とも言います。 配列変数で、最も使う頻度が高いのが、文字型の配列変数と思われます。
文字の場合の配列
値 | a | v | a | l | o | k | y |
---|---|---|---|---|---|---|---|
位置 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
数値の場合の配列
値 | 20 | 25 | 30 | 27 | 19 | 26 | 20 |
---|---|---|---|---|---|---|---|
位置 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
数値の場合に良く使う配列は、例えば、サンプリング(音声信号のデジタル記録)された値を、かたまりとして扱う場合に とても便利です。サンプリングとは、音声データをデジタル記録する場合です。FFTをする場合などには良く用いられます。 その他に、アミタの場合には、MIDIデータを配列に用いる場合にも利用しています。 参考ソフト:MIDIのフリーソフト
FFTとは、フーリエ変換を高速に行なうものを言います。フーリエ変換とは、時間軸上の音声デジタルデータ(離散値又は標本値) に対して、三角関数の補間(インターポーレーション)を行なうことにより、標本値間隔に相当する周波数単位の成分に変換すること、 をいいます。周波数軸上の離散データは逆変換により時間軸上のデータへの変換を行なうことが出来ます。
記述例・配列の定義
char a[5]; /* 文字型変数を5つ用意して、ひとかたまりとする */ int b[5]; /* 整数型変数を5つ用意して、ひとかたまりとする */
記述例・配列への代入
char a[5]; int b[5]; a[0] = 'l'; a[1] = 'o'; a[2] = 'v'; a[3] = 'e'; a[4] = '\0'; b[0] = 14; b[1] = 16; b[2] = 13; b[3] = 17; b[4] = 15; |
カッコ[]の中の数値は、「0」から始まり、定義した時の数値5-1=4までです。 この数値をインデックス又は、添え字といいます。配列の大きさを超えて値を代入した場合には、 プログラムが正常に動作しなくなる恐れがありますので注意が必要です。上記、記述で危険な代入例:a[6] = 'k';