ポインタと配列

ポインタと配列は、相性がいいので、この組み合わせは、よく使われます。

配列をあらかじめ定義、初期化して、値を設定しておきます。 この配列の中の値を探したり、合計を出したり、平均値を出したり、 いろいろな使い方が出来ます。 配列のところでも、やりましたが、10日間の平均気温を出すプログラムを作ってみました。

#include <stdio.h>

float mean_tmp(int*, int);		/* 関数の引数ポインタ・プロトタイプ宣言 */

int main( void)
{
	/* 配列変数の初期化 */
	int temp[10] = {30, 28, 25, 27, 32, 30, 28, 33, 26, 25};
	int day;

	day = sizeof(temp)/sizeof(int);		/* 合計の日 */

	float meantmp;				/* 平均気温の変数 */

	meantmp = mean_tmp(temp, day);		/* 平均気温の計算 */

	printf("平均気温=%0.2f", meantmp);		/* 結果を画面出力 */

	return 0;
}

/* 引数ポインタの関数定義・平均気温の計算 */
float mean_tmp(int *temp, int day)
{
	int sum = 0;		/* 10日間の合計気温変数 */
	int i;			/* ポインタを進めるためのインデックス */
	float mean;		/* 平均気温 */

	for(i=0; i<day; i++) 
	{
		sum = sum + *(temp + i);	/* 10日間の合計気温を出す */
	}

	mean = (float)sum/day;			/* 平均気温を計算 */

	return mean;
}

平均気温を出す関数は、引数にポインタを指定して、ポインタを移動しながら、 値を拾っていきます。
「*(temp + i)」の意味は、ポインタ(整数型配列のアドレス)を 1つづつ進めて、その位置の値を拾ってゆきます。このような使い方は、配列では、 よく使われます。同様のことは、配列でも行えます

サンプルソース(avaloky5a.cpp)

サイト紹介
サイトマップ
C言語入門
Web制作入門
Web素材集
フリーソフト紹介
リンク集
関連書籍の紹介
連絡フォーム

C言語入門
28←[28a]→28b



.