42seoul/circle-1

[ GNL ] 03. 선행지식_정적변수(Static)

saniii 2021. 11. 3. 04:13

# 정적변수 (static)

+ 변수 자료형 앞에 static을 붙여서 선언한다.

+ 중괄호 내부에서 읽힐때 메모리 생성되고 프로그램이 종료되면 메모리 소멸한다. 

+ 전역변수처럼 프로그램이 종료되기전까지 메모리가 소멸되지 않으며, 특별히 초기값을 지정하지 않아도 0으로 자동 초기화된다.

+ 상수로만 초기화할 수 있다. 

+ 함수가 끝나도 값을 유지할 수 있다. 

+ 하지만 다른 함수에서 해당 변수의 값에 접근할 수 없다. 

+ stack이 아닌 데이터 부분에 메모리가 할당된다. 

 

# 지역변수 

+ 중괄호 내부, 함수의 매개변수에서 사용되는 변수 

+ 중괄호 밖, 함수의 외부에서는 무효화된다. 

+ 변수의 이름이 같아도 다른 함수에 존재하고 있으면 다른 변수이다. 

+ 다른 함수의 지역 변수에 접근할 수 없다. 

+ 초가화하지 않으면 쓰레기 값이 저장된다. 

+ 스택 영역에 할당

 

# 전역변수 

+ 초기화하지 않아도 0으로 초기화된다.

+ 프로그램 시작시에 메모리가 생성되고 프로그램이 종료되면 메모리가 소멸한다.

+ 모든 함수에서 전역변수의 값에 접근할 수 있다. 

+ 데이터 영역에 할당