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

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

sbd님의 프로필 이미지

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

함수와 재귀함수 (v2)

57분

해결된 질문

작성

·

93

·

수정됨

0

57분 필기하신거를 보면 {1, 5, 3, 9, 2} 배열을 int *arr 포인터 변수에 대입하시는데 왜 배열 첫번째 요소의 주소가 대입되는게 아니라 {1, 5, 3, 9, 2} 배열 전체가 대입이 되는건가요?

 

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

배열 첫번째 요소의 메모리 주소나, 배열 전체의 시작 메모리 주소나 같은 이야기입니다.

정확히 말하면 질문자님께서 이해하신 것이 맞습니다!

 

제가 쓴 건 제 습관 중 하나인데, 결국 그 메모리 주소 뒤로 요소들이 죽 연결된 것이긴 하니까요..ㅎ

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. sbd님.

C 언어에서 배열의 이름은 배열의 첫 번째 요소를 가리키는 포인터입니다. 질문하신 내용을 통해 포인터와 배열의 기본적인 행동을 이해하는 데 도움을 드리겠습니다.

  1. 배열과 포인터의 관계: 배열의 이름은 배열의 첫 번째 요소를 가리키는 포인터로 사용됩니다. 예를 들어, int *arr{1, 5, 3, 9, 2} 배열 전체를 대입한다고 할 때, 실질적으로는 arr 포인터가 배열의 첫 번째 요소의 주소를 가리키게 되는 것입니다. 포인터로 배열을 다룰 때, arr 는 이제 배열의 처음 주소를 가리키며 arr[0] 은 배열의 첫 번째 요소인 1 을 가리키게 됩니다.

  2. 전체 배열 사용의 이해: {1, 5, 3, 9, 2} 배열 전체가 대입되는 것으로 보일 수 있지만, 포인터가 첫 번째 요소를 가리킴으로써 배열 전체에 접근할 수 있습니다. C에서는 포인터 산술을 통해 배열의 나머지 요소에도 접근할 수 있으므로 마치 전체 배열을 대입한 것처럼 사용할 수 있습니다.

이러한 포인터와 배열에 대한 개념을 좀 더 깊이 이해하고자 하신다면, 관련 질문과 답변을 참고하세요. 특히, 다음의 링크를 통해 더욱 많은 정보를 얻으실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

sbd님의 프로필 이미지

작성한 질문수

질문하기