링커, 로더, 실행 파일
C 언어에서 초깃값을 쓰지 않은 지역 변수와 전역 변수의, 사용을 시작했을 때의 값에 대한 설명으로 올바른 것은?
- A둘 다 반드시 0에서 시작한다
- B지역 변수는 0에서 시작하지만, 전역 변수의 값은 정해져 있지 않다
- C전역 변수는 0에서 시작하지만, 지역 변수의 값은 정해져 있지 않다(불정)
정답과 해설 보기
정답: C. 전역 변수는 0에서 시작하지만, 지역 변수의 값은 정해져 있지 않다(불정)
전역 변수나 정적 변수는 .bss에 놓이고 프로그램 시작 시 0으로 채워지므로 0에서 시작합니다. 지역 변수는 함수가 호출될 때마다 스택 위에 만들어지며, 매번 0으로 채우면 시간이 걸리기 때문에 이전에 그 장소를 사용했던 데이터가 남아 있을 수 있습니다. 초기화하지 않은 지역 변수를 읽으면 결과가 실행마다 달라질 수 있으므로 반드시 초기화해서 사용합니다.
- A. 지역 변수는 0으로 만드는 수고를 들이지 않으므로 불정입니다.
- B. 반대입니다.
- C. 올바릅니다. 놓이는 장소의 차이에 따른 것입니다.