더북(TheBook)

icon_wait


코드를 읽는 데 필요한 C++ 문법 요약

#include나 using 부분은 신경 쓰지 않아도 됩니다. 주목해야 할 곳은 #1의 함수 정의 부분입니다. 파이썬은 변수를 선언할 때 자료형을 명시하지 않지만, C++에서는 컴파일러에 알려 줘야 하므로 반드시 명시해야 합니다. 같은 이유로 함수에서도 함수 정의 맨 앞에 반환형을 명시해야 합니다. 파이썬에서는 구현부를 보지 않으면 반환형을 알 수 없는 것과 대비됩니다.

인자 전달 부분은 자료형이 명시되어 있는 것만 빼면 파이썬과 유사합니다. 함수 정의에서 등장하는 { } 기호는 스코프라고 하며 영역을 의미합니다. 우리는 전역 변수와 지역 변수를 공부했기 때문에 영역의 의미를 알고 있습니다. 파이썬은 명시적인 { } 기호가 없는 대신에 들여쓰기(indentation)로 영역을 나타냅니다. 몇 가지 차이점만 빼면 파이썬과 C++의 문법은 비슷합니다.


코드 5-6에서 change_value() 함수는 인자 xvalue를 받아 xvalue를 대입합니다. main() 함수에서 지역 변수 x10을 대입한 다음 change_value() 함수를 호출하면서 value 인자로 20을 전달했으므로 지역 변수 x 값은 20으로 바뀔 듯 합니다. 하지만 실행 결과를 보면 예상과 다른 값이 출력됩니다.

함수 안에서는 값이 변경되었지만 함수를 호출한 쪽에서는 값이 변경되지 않았습니다. 대체 어떻게 된 일일까요? 지역 변수 x가 변경되지 않은 이유는 함수에 x가 전달될 때 값에 의한 전달 방식으로 전달되었기 때문입니다. 이 문장이 어떤 의미인지 자세히 알아봅시다.

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