강의

멘토링

커뮤니티

Inflearn Community Q&A

taechoon's profile image
taechoon

asked

Learn C Programming by Following Along with Hong Jeong-mo

10.7 How to pass an array to a function

질문있습니다.

Written on

·

181

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++;

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

감사합니다.

c

Answer 1

2

honglab님의 프로필 이미지
honglab
Instructor

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

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

taechoon's profile image
taechoon

asked

Ask a question