c++ 완전초보 switch 문 질문좀 여쭙겠습니다.

조회수 2438회

스위치문을 사용하려하는데 op, y 가 컴파일 해보면 초기화 되지않은 변수라고 하는데 뭐가 문제일까요?

![![이미지][1]][1]

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 사실 학습을 위한 제일 좋은 방법은 어셈블리를 익히는 겁니다.

    실행파일을 디버깅을 해보면서 함수를 call할때 스택이 쓰이는 과정을 학습하면 문제를 이해하기 좋습니다.

    함수를 호출하게 되면 함수의 파라미터를 push 하고 call opcode를 호출하여 call opcode 다음 주소(리턴 주소)를 스택에 push 합니다. 다음으로 지역변수들이 스택에 push 됩니다.

    스택이란 공간은 함수 호출 및 실행시 필요한 공간인데 기본적으로 쓰레기값들이 있는 메모리 공간입니다.

    초기화를 하지 않으면 무슨 값이 있을지 예상 할 수 없습니다. 그런 이유로 초기화 하지 않은 지역변수는 컴파일러가 오류로 판단합니다.

    char op = '';
    int y = 0;
    

    와 같이 초기화해주세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)