• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

배열을 함수 내부에서 선언된 경우, 초기화했을 때의 기본값

23.03.18 20:53 작성 조회수 432

1

배열을 함수 내부에서 선언된 경우, 초기화했을 때의 기본값을 출력할 때 그냥 출력하면 쓰레기값이 나오는데 for문을 이용해서 출력하면 다른 값으로 출력됩니다. 왜 차이가 발생하는 지 알 수 있을까요?


답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.03.19

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

우선, 말씀해주신 코드

int main()
{
  int students_scores[5];

  for (int i = 0; i < 5; i++)
  {
    cout << students_scores[i] << std::endl;
  }

  return 0;
}

에서 int students_scores[5] 변수는 초기화 된 것이 아닙니다.
변수의 선언, 대입 , 초기화 등에 대해서 혼동이 있으시다면, 강의 1.3 변수와의 첫 만남20:45 부분을 참고하시면 좋을 것 같습니다.

따라서, 변수가 초기화되지 않았기 때문에 '쓰레기 값'이 담기게 되는 것이며,
'쓰레기 값' 은 강의 1.3 변수와의 첫 만남22:16 이후 부분부터 교수님께서 설명해주시듯이, 운영체제, 환경, 컴파일러 설정 등 마다 다르게 값이 담기게 됩니다.

즉, for() 반복문의 사용 유무에 따라서 값이 달라지는 것이 아니라, 애초에 '변수를 초기화하지 않았기' 때문에 발생하는 문제라고 이해하시는 것이 적절할 것 같습니다.

또 궁금하신 점 있으시면, 편하게 질문 남겨주세요! 감사합니다. 화이팅! 👍