Page 19 -
P. 19
i4의 타입은 i3 + 7의 타입인 int와 같다. 비록 타입이 자동으로 정해지지만, 동일하게 유지하며
무엇이든 int로 변환되고 난 이후에 i4에 할당한다. 나중에 고급 프로그래밍에서 auto가 얼마나
유용한지 살펴볼 것이다. 이 절에서와 같이 간단한 변수 선언에 대해서는 타입을 명시적으로 선언
하는 것이 좋다. auto는 3.4절에서 자세히 설명한다.
1.2.1 상수
C++에서 상수는 문법적으로 불변이라는 추가 속성을 갖는 특별한 변수다.
const int ci1 = 2;
const int ci3; // 오류: 값을 할당하지 않음
const float pi = 3.14159;
const char cc = 'a';
const bool cmp = ci1 < pi;
상수는 변경할 수 없기 때문에 선언과 동시에 값을 반드시 설정해야 한다. 두 번째 상수 선언은 이
규칙을 위반하므로 컴파일러는 이러한 잘못된 행동을 용납하지 않을 것이다.
상수는 변수를 사용할 수 있는 곳에서 사용할 수 있다. 물론 값을 수정하지 않아야 한다. 한편, 설
명했듯이 상수들은 컴파일하는 동안 이미 그 값을 알고 있다. 이를 통해 다양한 최적화를 할 수 있
으며, 타입의 인수로 사용하기도 한다(이에 대해서는 나중에 5.1.4절에서 다시 설명한다).
1.2.2 리터럴
2나 3.14 같은 리터럴도 입력할 수 있다. 간단히 말하자면 정수는 자릿수에 따라 int, long,
12
unsigned long 타입으로 취급한다. 소수나 지수(즉, 3e12≡3∙10 )는 double 타입으로 취급한다.
다른 리터럴 타입은 다음 표에 있는 접미사를 추가하면 된다.
리터럴 타입
2 int
2u unsigned
2l long
2ul unsigned long
030
모던c++_09.indd 30 2017-12-11 오전 11:02:54