C언어 - 두 개의 포인터로 배열을 함수에게 전달해주는 방법

2020. 11. 12. 10:46카테고리 없음

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


double average(double*, double*);


int main() {

	double arr1[5] = { 10,13,12,7,8 };
	printf("Avg = %f\n", average(arr1, arr1 + 5); 
    //arr1+5는 정수에 5를 더하는게 아니라 포인터에 5를 더하는것
	return 0;
}

double average(double* start, double* end)
{
	int count = end-start;
	double avg = 0.0;
	while (start < end) { // 끝에 도달하게 되면 작업중단
		avg += *start++; 
        // start를 dereferencing, 스타트가 가르키는 원소가 ++되면 다음 원소를 가르키고 반복
		//count++;
	}
	avg /= (double)count;

	return avg;
}

 

 

출처 : 홍정모의 따라배우는 C언어