配列

12.配列


複数の変数を一度に扱いたいとき便利なのが配列です.
同じ型の変数を複数まとめることができます.
以下のような書式をとります.

宣言時
 配列の型名 配列名[要素の個数] = {要素0の値, 要素1の値, ...};

使用時
 配列名[要素の番号]


使用例を見てみましょう.
どちらも3つの変数の平均をとっているのですが,片方は変数を個別に用意しもう一方は配列を用意しています.

#include <stdio.h>

int main(void)
{
	double x0 = 3;
	double x1 = 4;
	double x2 = 5;
	double x_average;	

	x_average = (x0 + x1 + x2) / 3;

	printf("average of x is %f\n\r", x_average);

	return 0;
}

#include <stdio.h>

int main(void)
{
	double x[3] = {3, 4, 5};
	double x_average = 0;
	
	int i;

	for(i = 0; i < sizeof(x)/ sizeof(x[0]); i++)
	{
		x_average += x[i];
	}
	
	x_average /= sizeof(x)/sizeof(x[0]);
	
	printf("average of x is %f\n\r", x_average);

	return 0;
}

3つくらいであれば直接書いても大して差はないように思えますが,もし変数の個数が変わったとして前者は変更箇所が多く大変です.
しかし後者は配列の定義のみをいじれば後はもう大丈夫です.

配列の何番目にアクセスするかというところに変数を入れられるのが大きな利点ですね.
ただし,添え字の番号は0から始まります.配列x[]の先頭はx[0]です.
また,宣言時x[n]としたとき要素はx[0], x[1], ... x[n-1]のn個となり,x[n]という要素は存在しません.
配列の添え字を間違えて存在しない要素にアクセスすることは一目に分かりにくいうえ挙動もつかみにくく大変厄介なバクの一つです.
最終更新:2017年08月21日 12:48