#include <stdio.h>
void print_ary(int *pa); // 함수 선언
int main(void)
{
int ary[5] = { 10, 20, 30, 40, 50 };
print_ary(ary); // 배열명을 주고 함수 호출
return 0;
}
void print_ary(int *pa) // 매개변수로 포인터 선언
{
int i;
for (i = 0; i < 5; i++)
{
printf("%d", pa[i]); // pa로 배열 요소 표현식 사용
}
}
배열의 값을 출력하는 함수는 첫 번째 배열 요소의 주소만 알면 되므로 배열 요소의 개수가 달라도 함수의 구현 방법은 같다. 다만 배열 요소의 개수가 바뀌면 출력문의 반복 횟수가 달라지므로 함수의 수정은 불가피하다.
#include <stdio.h>
void print_ary(int *pa, int size); // 함수 선언, 매개변수 2개
int main(void)
{
int ary1[5] = {10, 20, 30, 40, 50}; // 배열 요소의 개수가 5개인 배열
int ary2[7] = {10, 20, 30, 40, 50, 60, 70}; // 요소의 개수가 7개인 배열
print_ary(ary1, 5); // ary1 배열 출력, 배열 요소의 개수 전달
printf("\n");
print_ary(ary2, 7); // ary2 배열 출력, 배열 요소의 개수 전달
return 0;
}
void print_ary(int *pa, int size) // 배열명과 배열 요소의 개수를 받는 매개변수 선언
{
int i;
for (i = 0; i < size; i++) // size값에 따라 반복 횟수 결정
{
printf("%d", pa[i]);
}
}
#include <stdio.h>
void input_ary(double *pa, int size);
double find_max(double *pa, int size);
int main(void)
{
double ary[5];
double max;
int size = sizeof(ary) / sizeof(ary[0]);
input_ary(ary, size);
max = find_max(ary, size);
printf("배열의 최댓값 : %.lf\n", max);
return 0;
}
void input_ary(double *pa, int size)
{
int i;
printf("%d개의 실수값 입력 : ", size);
for (i = 0; i < size; i++)
{
scanf("%lf", pa + i);
}
}
double find_max(double *pa, int size)
{
double max;
int i;
max = pa[0];
for (i = 1; i < size; i++)
{
if (pa[i] > max ) max = pa[i];
}
return max;
}
배열을 출력하는 함수에 필요한 것은 배열명이다.
배열에 입력하는 함수에 필요한 것도 배열명이다.
배열의 크기가 달라도 입출력이 가능하려면 배열 요소의 개수를 알아야 한다.