프로그래밍 언어

지역변수 전역변수 정적변수

벌게진눈 2013. 9. 10. 10:01
반응형

지역변수 함수가 호출될 때 메모리상에 올라갔다가 함수가 종료되면 메모리상에서 사라진다

함수 또는 어떤 블록 안에 정의된 함수

함수가 호출되면 생성되었다가 리턴하면 소멸된다.

초기화 - 함수가 호출될때마다 초기화되고 리턴될 때 메모리를 반납

초기값을 가지지 않는 지역 변수는 임의의 값을 가짐


전역변수 전역변수와 정적변수의 사용은 최대한 피한다

함수 외부에 선언

프로그램 시작시 생성되고 종료될때까지 할당된 메모리 유지

초기값을 지정하지 않는 경우 0으로 초기화


정적변수 (static variable)

프로그램이 끝나기 전까지는 메모리에 계속적으로 존재

지역 변수의 값을 유지하기 위해 사용

함수 리턴 후에도 그 값이 소멸되지 않고 보관되며 다시 호출될때에는 그 직전의 값을 참조

함수 내부에서 선언되면 해당 함수안에서 지역변수 역할

정적 변수의 초기화

프로그램 시작시 초기화되어 종료 시까지 유지

초기값을 지정하지 않는 경우 dafault값으로 초기화



어느 함수가 호출되면 거기의 지역 변수는 stack 영역에 공간이 할당되고 함수가 끝나면 

stack영역에서 공간을 반납한다. 그래서 하나의 함수를 계속 쓸때에도 그 자리의 위치는 

계속계속 바뀔수 있으며 어느 하나의 변수를 계속계속 사용하고 싶을때 static변수를 

사용한다.  지역변수의 값은 stack에 저장된다. stack은 넣고 빼고가 계속 이루어져서

동적이고 일시적인 공간이며 static과 전역변수는 프로그램이 실행될때 section영역에서 

data영역으로 저장된다.  



창의성의 경험에서 나오는것

반응형