c에 변수에는 전역변수, 지역변수, static 변수, register 변수가 있다.
먼저 전역변수는
1. 프로그램의 시작과 동시에 메모리 공간(데이터 영역)에 할당되어 종료 시까지 존재한다.
2. 별도로 초기화 하지 않으면 0(NULL)로 초기화 된다.
3. 프로그램 전체 영역 어디에서든 접근이 가능하다.
지역변수
1. 중괄호 내에 선언 시 할당(스택 영역)되며 해당 중괄호를 벗어날 시 소멸된다.
2. 별도로 초기화 되지 않으니, 사용을 위해선 초기화를 해주어야 한다.
3. 해당 지역내에서는 전역변수를 가리게 된다.(전역변수와 이름이 같은 경우, 지역변수 쪽으로 접근이 이루어진다.)
static 변수
1. static 전역 변수
->1. 접근 범위가 해당 변수가 선언된 소스코드로 제한 된다.(다른 소스에서 extern 키워드로 선언해도 접근이 불가능)
2. static 지역 변수
->1. 선언된 함수(중괄호) 내에서만 접근이 가능하다.
->2. 최초 1회(프로그램 실행 시) 초기화되고 프로그램 종료 시 까지 메모리 공간(데이터 영역)에 존재한다.
register 변수
1. CPU 레지스터에 저장 할 것을 요청한다.(자주 사용하므로 레지스터에 두어 성능향상을 위함이며 최종 결정은 컴파일러가 하므로 항상 레지스터에 존재할 것을 예측할 수 없다.)
2. 전역변수에 대해 register 선언을 하여도 의미가 없다.
'C++' 카테고리의 다른 글
std::find() (0) | 2021.10.27 |
---|---|
Lvalue & Rvalue (0) | 2021.10.21 |
형변환 연산자 (0) | 2021.10.21 |
포인터 (0) | 2021.10.21 |
서식문자 정리 (0) | 2021.10.21 |