해결된 질문
작성
·
167
0
항상 고생많으십니다. 공부하는 중에 햇갈리는 것이 있어서 질문 남깁니다.
11:00 ~ 12:00 에서 doSomething 안의 sizeof(student_scores) 와 main 안의 sizeof(student_scores)가 다르게 나오는데, 제가 이해하기로는 main함수 안의 student_scores 도 해당 배열의 첫번 째 주소이고, doSomething 함수의 매개변수로 넘어간 students_scores 도 마찬가지로 결국 student_scores 배열의 첫번 째 주솟값을 가지고 있는 것으로 알고 있습니다.
결론적으로 sizeof함수에 배열의 첫번째 주솟값을 하나는 main안에서 하나는 doSomething 함수안에서 넣어준 것인데 왜 여기서 main에 있는 것만 배열 전체 크기를 출력하고 doSomething 함수의 것은 포인터 변수의 크기만을 출력하는 지 궁금합니다. 그냥 단지 students_scores 배열이 main에서 정의 되었기 때문에 다른 의미를 갖는 건가요?
이건 제 추측인데, sizeof라는 함수가 매개변수의 주소를 접근해서 크기를 구하는데, main에서 정의된 배열은 그 주소들도 20개로 나열되있는 반면에, doSomething 안에 매개변수로 간 포인터는 students_scores 배열의 첫번째 주솟값을 저장하는 주소가 하나만 덩그라니 있어서 4byte만 출력되는 것인가요?