안선생의 개발 블로그
C++ 지역변수,전역변수 본문
지역변수(Local variable) : 지역변수는 함수 내부에서 선언되며 해당 함수가 호출되어 실행되면 생성되었다가 함수가 종료되면 사라지는 변수이다. 해당 범위 내에서만 사용 가능하며 다른 함수에서는 접근이 불가하다.
간단하게 예를 보자
여기서 지역변수는 함수 내부에 선언되있는 코드이다. 그렇다면 함수 a()를 만들어 i++을 해주고 메인 함수로 3번 시키면 3번증가해서 3이 출력될까? 결과는 아니다 지역변수는 스택형식으로 a()함수를 실행하고 1을 메인함수에 주고 소멸하기 때문에 다음 함수를 실행해도 이미 소멸했기 때문에 처음부터 다시 시작한다 그러므로 a();을 실행하면 전부 1이 나오게 된다.
전역 변수(Global variable) : 전역 변수는 함수 외부에서 선언되며 범위(스코프)에 구애받지 않고 프로그램 전체에서 접근할 수 있는 변수이다.
예를 보자
전역변수는 앞서 말한 지역번수랑 다르게 프로그램이 시작 될때 생성되어 데이터(Data)에 저장되며 프로그램 전체에서 사용 가능하며 프로그램이 종료되면 소멸한다. 그러므로 프로그램이 저장될 떄 까지 값이 계속 저장되어 마지막에는 3이 나오게 된다.
지역변수와 전역변수를 알아봤는데 지역변수는 함수가 실행되면 생성되었다가 종료되면 사라지는 반면 전역변수는 프로그램이 종료될떄까지 사라지지 않는다는 차이점이 있다. 둘의 기능에 따라 잘 사용하자!