c언어 프로그래밍 지역 변수 Local Variable
c언어 프로그래밍 지역 변수 Local Variable
■ c언어에서 변수는 선언되는 위치에 따라서 전역변수와 지역변수로 나눌 수 있는데 쉽게 생각해서 함수 내부에 선언되면 지역변수이고 밖에 선언되면 전역변수라고 생각하면 됩니다. 이번 글에서는 Local Variable가 어디에 위치하며 메모리에 할당되는 시기와 소멸하는 시기, 그리고 이 녀석에게 접근할 수 있는 범위에 대해서도 알아보겠습니다.
먼저 지역변수가 선언되는 위치는 함수의 내부.. 즉 중괄호 {} 안쪽입니다.
int aaa(void){
int x=10; // 중괄호 {} 안에 있기 때문에 지역변수
}
이렇게 함수 내부에 선언되며.... 이 함수가 실행되면서 "{" 부분을 지나면서 변수를 만나게 될 때 메모리상에 x 변수가 할당됩니다. 그리고 "}"를 만나면서 함수를 종료하는 순간 x는 메모리에서 소멸합니다. 그리고 이 x는 aaa()라는 함수 내부에서만 접근할 수 있고 이 안에서만 유효하기 때문에 다른 곳에 같은 이름의 함수가 있어도 관계없습니다.
예제에서 확인해볼게요.
▲ aaa() 함수의 main() 함수를 정의하고 있는데요. 두 곳 모두 int x라는 같은 이름의 변수를 갖고 있는데 이게 가능한 이유는 각 변수는 그 함수 안에서만 유효하기 때문입니다. 이 프로그램을 실행하면 main() 함수가 실행되면서 int x=20;이라는 변수를 초기화 한 후 aaa() 함수를 호출해서 int x=10;으로 초기화한 x 값을 출력하고 있구요. 이 함수가 끝나는 지점에서 int x=10은 소멸하게 됩니다. 그리고 main() 안에 있는 x 값을 출력하면 20이 출력되는 것입니다.
프로그램을 실행해서 값이 제대로 출력되는지 확인해보고 마무리하겠습니다.
▲ aaa() 안에 있는 x와 main()에 있는 x의 값이 각각 출력되는 걸 확인할 수 있습니다.
이렇게 해서 c언어 변수 중에서 지역변수(Local Variable)의 기본 개념에 대해서 알아봤습니다. 수고하셨어요.