반응형
Modern C++ 공부 Day 1입니다.
본격적으로 Modern C++에 대해 알아보기 전에 기본적인 개념을 먼저 복습하고자 합니다.
오늘 다룰 내용은 지역 변수 (Local variable)입니다.
지역 변수는 특정 scope (범위) 내에 존재하는 변수를 말합니다.
여기서 scope는 코드에서 아래와 같이 괄호 { }로 정의되는 영역을 의미합니다.
{ // scope 시작
int x; // 변수 x에 메모리 할당 및 초기화
} // scope 끝, 변수 x 소멸, 메모리 해제
구체적으로 이 간단한 코드의 뒤에서 일어나는 일에 대해서 알아봅시다.
- int x; 부분에서 변수 x를 위해 자동적으로 프로그램의 스택 (stack)에 메모리가 할당됩니다.
- 메모리 할당 후, 변수가 초기화 됩니다. 위의 코드와 같이 초기화할 값을 지정해주지 않은 경우에는 default 초기화가 진행됩니다. int와 같이 빌트인 타입은 default 초기화에 의해 아무 값으로 초기화합니다. 만약 int가 아닌 클래스의 객체로 변수를 초기화한다면, 클래스의 생성자를 이용해서 객체가 초기화됩니다.
- "}" 에 도달해서 scope가 끝나면, 변수 x도 같이 소멸됩니다. x가 사용하던 메모리가 해제되고 그 안의 데이터에 더이상 접근할 수 없게 됩니다.
이미 알고 있는 내용이라도 복습의 차원에서 설명했습니다.
다음 글에서는 함수 인자 (Function Argument)에 대해서 알아보겠습니다. Pass by value 에 대해 다룰 것입니다.
다음 글로 바로 가기!
2023.06.15 - [Programming/C++] - [Modern C++ 공부 - Day2] 값에 의한 전달 Pass by value
728x90
반응형
'Programming > C++' 카테고리의 다른 글
[Modern C++ 공부 - Day3] 주소에 의한 전달 Pass by Address (0) | 2023.06.15 |
---|---|
[Modern C++ 공부 - Day2] 값에 의한 전달 Pass by value (0) | 2023.06.15 |
[Modern C++ 공부 - Day0] C++11, 14, 17는 뭐가 다를까? (1) | 2023.06.15 |
C++ 언어 기초 (16) - 예외처리 exception (0) | 2020.09.07 |
C++ 언어 기초 (15) - STL, vector, 알고리즘, map (0) | 2020.09.07 |