58. 지역변수

질문) 함수 내부에 선언한 변수는 다른 함수를 호출하면 메모리에서 사라지나요? 대답) 지역 변수는 선언한 블록 내부에서만 접근할 수 있어서 그런 생각하나 보네. 함수 내부의 성언한 지역 변수는 stack 메모리에 잡히잖아. 함수가 끝나기 전에는 메모리에서 해제하는 것은 아니야.

지역 변수는 특정 블록에 선언한 변수예요.
지역 변수는 특정 함수를 구현하는데 임시적으로 값을 기억할 필요가 있을 때 사용하죠.
그리고 지역 변수를 위한 메모리는 변수를 선언한 함수를 호출하면 할당하고 함수가 끝날 때 해제한답니다.

여러분이 주의할 점은 지역 변수는 선언한 블록에서만 보인다는 것이예요.

main 함수에 int 형식 변수 i를 선언하고 Foo 함수에서 변수 i를 사용하려고 하면 가시성이 없어서 컴파일 오류가 발생해요.

다른 함수에 선언한 지역 변수를 호출하는 코드는 컴파일 오류가 발생합니다.

그리고 전역에 선언한 변수 이름과 같은 이름의 지역 변수를 선언하여 사용하면 지역 변수를 사용한답니다.
그리고 함수 내에서도 { }으로 블록을 지정할 수 있는데 블록에 변수를 선언하면 블록 내부에서만 사용할 수 있어요.

◈ 같은 이름의 변수를 선언하였을 때

◈ 실행 결과

 

그리고 C언어에서 인자를 전달하여 구조적으로 프로그래밍 할 수 있어요.
◈ 지역 변수의 값을 전달하여 구조적으로 작성한 예

◈ 실행 결과


[C언어 무료 동영상 강의] 57.전역변수 58. 지역변수 59. 정적변수 60. 상수화변수