static 변수 | 전역 변수 | |
메모리 생성 시점 | 프로그램 시작 | 프로그램 시작과 동시에 생성 및 초기화 |
메모리 소멸 시점 | 프로그램 종료 | 프로그램 종료 |
디폴트 초기값 | 0으로 자동 초기화 | 0으로 자동 초기화 |
접근 가능 범위 | - 정적 지역 변수 : 중괄호 내부에서만 접근 - 정적 전역 변수 : 선언된 소스 파일 내부에서만 접근 가능 |
프로그램 전체에서 접근 가능 |
메모리 할당 공간 | 초기값이 있을 경우 : Data 초기값이 없을 경우 : BSS |
초기값이 있을 경우 : Data 초기값이 없을 경우: BSS |
초기화 횟수 | 딱 한번만 초기화 | |
클래스 멤버의 경우 클래스 내부에서 초기화가 불가능해서 외부에서 해줘야 한다 Ex) ClassA::Statc_변수_이름 = 0; |
static 변수와 전역 변수의 초기화 시점에 관한 내용은 아래 Reference를 참고해보자
Reference
https://pabloariasal.github.io/2020/01/02/static-variable-initialization/
'공부 > C || C++' 카테고리의 다른 글
static 멤버 함수가 static이 아닌 멤버 참조가 안되는 이유, static 멤버 함수에서 this를 사용할 수 없는 이유 (1) | 2022.09.25 |
---|---|
C++ 클래스 상속, 다중 상속, 가상 함수 그리고 다형성(Inheritance & virtual function & polymorphism) (1) | 2022.09.25 |
C++17 string_view (2) | 2022.09.19 |
C++ vector::push_back vs vector::emplace_back (0) | 2022.09.18 |
STL Container (시퀀스 컨테이너, 연관 컨테이너, 컨테이너 어댑터) (0) | 2022.09.17 |