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

양주원님의 프로필 이미지
양주원

작성한 질문수

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

6.16 배열과 런타임 에러

[]

작성

·

139

·

수정됨

1

daily_temperatures 뒤에 붙어있는 []가 정확히 무슨 뜻인지 모르겠습니다.

어쩔 땐 int[] 이런 형식도 본 것 같은데 그것도 무슨 뜻인지 잘 모르겠습니다.

int 사이즈 메모리 몇 개가 무슨 뜻인거죠? 4바이트짜리 메모리를 뒤에 써있는 수만큼 받는다는 건가요?

그리고 마지막에 stock_prices_history[0]이라고 되어 있는데 항상 0이 첫 번째 주소인가요?

답변 1

1

안녕하세요, 질문&답변 도우미 Soobak 입니다.


C언어에서 대괄호 [] 는 배열을 나타내는데 사용됩니다.

예를 들어, int daily_temperature[365]; 의 경우는 int 타입의 값 365 개를 저장할 수 있는 배열을 선언하는 문법입니다.

이렇게 선언하면, int 크기의 메모리 365 개가 연속적으로 할당되며, 말씀하신 것처럼, 일반적인 환경에서 4 바이트 * 365 의 메모리 공간이 필요하게 됩니다.

(이 부분에 대해서는 강의 2.4 자료형이 필요한 이유 의 중,후반부분을 참고해보시면 이해에 도움이 되실 것 같습니다.)

이 때, 이 배열에는 daily_temperatrue[0] 부터 dayily_temperatrue[364] 까지 총 365 개의 정수 값을 저장할 수 있게 됩니다.

배열에서 0 은 첫 번째 요소의 인덱스를 나타내며, 배열의 인덱스는 항상 0 부터 시작합니다.

따라서, stock_prices_history[0]stock_prices_history 배열의 첫 번째 요소에 접근합니다.

(배열의 두 번째 요소(= 첫 번쨰 요소 다음)를 가리키려면, stock_prices_history[1] 과 같이 사용합니다.)

int[] 의 형식은 이후 '포인터' 와 관련된 내용을 학습하시면서 자세하게 학습하시게 됩니다.

지금 단계에서는 배열의 선언과 배열의 원소에 접근하는 문법에 초점을 맞추어서 차근 차근 공부해 나아가시는 것을 추천 드립니다.

양주원님의 프로필 이미지
양주원

작성한 질문수

질문하기