main 함수에서 다른 함수를 호출하면, 해당 함수 실행이 끝나고 다시 main 함수로 돌아온다.
return은 “나를 호출한 함수로 실행 흐름을 되돌린다”는 뜻이다.
각 함수는 독립적인 메모리 공간(스택 프레임)을 가지므로, 같은 이름의 지역 변수도 서로 영향을 주지 않는다.
”자기 자신을 호출하는 함수”
→ 절반은 맞고 절반은 오해의 소지가 있음.
실제로는 동일한 함수 코드를 여러 번 호출하는 것
함수 이름은 같지만, 호출될 때마다 독립된 함수처럼 작동하므로, 각 호출은 별개의 함수처럼 생각하는 것이 구조 이해에 도움이 된다.
즉, 코드는 재사용하지만 메모리는 각각 따로 존재하는 구조
💡 코드는 같지만, 호출될 때마다 새로운 스택 프레임(메모리 공간)이 생긴다.
즉, 같은 함수 이름이더라도 매번 다른 공간에 따로따로 쌓인다.