본문 바로가기
42seoul/circle-1

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

by saniii 2021. 11. 3.

# 정적변수 (static)

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

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

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

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

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

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

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

 

# 지역변수 

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

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

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

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

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

+ 스택 영역에 할당

 

# 전역변수 

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

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

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

+ 데이터 영역에 할당 

 

'42seoul > circle-1' 카테고리의 다른 글

[ ft_printf ] 1. printf  (0) 2021.12.29
[ printf ] 0. 문제 이해하기  (0) 2021.12.23
[ GNL ] 04. 선행지식_read() 함수  (0) 2021.11.03
[ GNL ] 02. 선행지식_파일 디스크립터  (0) 2021.10.31
[ GNL ] 01. 과제 이해하기  (0) 2021.10.31

댓글