배열의 응용 문제 중 주사의 문제입니다.
두동
2023.04.01
질문 제목 : 배열의 응용 문제 중 주사의 문제입니다.int get_avg(int a[]); 에서 int a[]를 왜 써주는지 모르겠구여, 왜 a[]로 지정해주는 지도 모르겠어요.
가르쳐 주세요...질문 내용 :
#include stdio.h
#include stdlib.h
#include time.h
#defineface 6
int get_avg(int a[]);
int main()
{
int dice[face]={0};
int i;
srand(time(null));
for(i=0; i100000; i++)
dice[rand()%6]++;
for(i=0; iface; i++)
printf(%d%d\n, i, dice[i]);
printf(average = %d\n, get_avg(dice));
return 0;
}
int get_avg(int a[])
{
int i, sum=0;
for(i=0; iface; i++)
sum += a[i];
return sum/face;
}
-
핑크빛애교
함수의 인자로 배열을 넘겨줄 때, 배열을 통째로 넘겨줄 수가 없습니다. 나중에 포인터에 대해서 배우시겠지만, 포인터는 주소를 담을 수 있는 변수입니다. 배열을 통째로 넘길 수가 없기 때문에 배열의 시작주소를 넘겨주어서 연산을 하게 됩니다. 배열 이름은 배열의 시작주소를 나타냅니다. 위의 경우에서는 int *a로 써줍니다.
다만, 배열일 경우에는 int a[]도 허용됩니다.