더북(TheBook)

이 코드를 수행하면 어떤 결과가 나올까요? 차근차근 생각해 보세요.

에서 정수형 변수 a를 함수 밖에서 선언하였으므로 전역 변수 a를 선언한 것입니다. main() 함수에서 정수형 변수 b를 지역 변수로 선언하고 에서 변수 a의 값을 출력하고자 합니다. main() 함수에서는 변수 a가 선언되어 있지 않았으나 함수 밖에 전역 변수 a가 선언되어 있으므로 main() 함수에서는 전역 변수 a를 참조하여 출력할 수 있습니다. 물론 b의 값은 main() 함수에서 선언하고 지역 변수 b의 초깃값 2가 출력될 것입니다.

그리고 에서는 func1() 함수를 호출하여 수행합니다. 에서 a의 값을 출력합니다. 역시 func1에서도 변수 a가 선언되어 있지 않지만, 전역 변수 a를 참조하여 출력할 수 있습니다. 그러나 bfunc1() 함수 안(지역)에서도 함수 밖(전역)에서도 선언되어 있지 않습니다. main() 함수 안에 선언된 변수 bmain() 함수 안에서만 사용 가능한 지역 변수므로 접근이 불가능합니다. 결국 이 코드는 마지막 줄인 때문에 컴파일 에러가 발생합니다.

그림 3-24 | 실행 결과 컴파일 에러 발생

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.