[C++] 여러 가지 변수 초기화 방법 variable initialization


변수가 정의될 때, 해당 변수에 값을 지정할 수 있다. 이것을 변수 초기화, 혹은 초기화라고 한다.

C++는 변수를 초기화하는 세 가지 방법을 지원한다.

  1. 복사 초기화 : 대입 연산자 =를 사용
  2. 직접 초기화 : 괄호 ()를 사용
  3. C++ 11의 유니폼 초기화 : 중괄호 {}를 사용
int value = 5;
int value(5);

직접 초기화는 일부 데이터 타입에서 복사 초기화보다 성능이 뛰어날 수 있다. 초기화와 할당을 구분하는데 도움이 된다.

유니폼 초기화

복사, 직접 초기화는 일부 타입의 변수에 대해서만 작동한다. 모든 데이터 타입에서 작동하는 단일 초기화 매커니즘을 제공하기 위해 C++ 11은 유니폼 초기화라는 새로운 형태의 초기화 매커니즘을 추가했다.

int value{}; // default initialization to 0

또 유니폼 초기화는 형 변환을 허용하지 않기 때문에 컴파일러에서 경고/오류가 발생한다.

int value{4.5};