인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

TaeChoon Park님의 프로필 이미지
TaeChoon Park

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.7 배열을 함수에게 전달해주는 방법

질문있습니다.

작성

·

168

1

함수는 매개변수로서 배열은 받지못하고 포인터(주소)만을 받을 수 있다고 하셨는데 , 그럼 average 함수의 코드를 보면 

double average(double arr1[], int n)

{

printf("%zd" , sizeof(arr1)); //arr1이 배열이 아닌 주소이므로 주소의 크기 (x86 이므로 4바이트)출력 

double avg=0.0;

for(int i=0;i<n;i++)

{

avg+=arr1[i]; //??

}

return (avg/(double)n);

}

avg+=arr1[i]; 에서 궁금한게 arr1은 배열이 아닌 주소이므로 , arr1[]같은 표현은 못쓰는것 아닌가요? 오히려 역참조하여 

avg+=*(arr1)

arr1++;

이렇게 해야하는것 아닌가 싶습니다. 

감사합니다.

답변 1

2

홍정모님의 프로필 이미지
홍정모
지식공유자

질문 제목에는 질문의 내용이 들어있어야 합니다.

C언어는 배열과 포인터가 혼용되는 경향이 있습니다. 프로그래머의 취향에 더 가깝습니다.

TaeChoon Park님의 프로필 이미지
TaeChoon Park

작성한 질문수

질문하기