1. C++ 자료형
※ 기존 C 언어 자료형 그대로 차용
ㅇ 산술형 타입
- 부호 있는 정수형
. char (1 바이트), short (2 바이트), int (2 또는 4 바이트), long (4 바이트)
long long (8 바이트)
- 부호 없는 정수형
. unsigned char (1 바이트), unsigned short (2 바이트), unsigned int (4 바이트),
unsigned long long (8 바이트)
- 실수(부동소수점)형
. float (4 바이트), double (8 바이트)
ㅇ bool형 타입
- C 언어와 달리, bool 타입(1 바이트)이 별도 존재
. 그러나, 하위 호환성을 위해, int 타입과 직접 비교,대입도 가능
. 즉, true 대신에 1, false 대신에 0을 써도 됨
ㅇ 문자형
- char (문자, 1 바이트)
- wchar_t (확장 문자, 2 바이트)
- char16_1 (유니코드 문자, 2 바이트)
- char32_1 (유니코드 문자, 4 바이트)
ㅇ 기타
- auto (컴파일러가 알아서 지정)
2. 자료형 변수 선언 및 형변환
ㅇ 태그를 하나의 자료형으로 간주
- 태그명을 앞에 써넣으면, 자료형 변수 선언이 가능
ㅇ 명시적 형변환
- C 언어 형식 : (타입) 변수 => 例) (float)a
- C++ 언어 형식 : 타입 (변수) => 例) float(a)
- (위 2가지 형식 모두 가능)
3. 자료형 별칭 및 참조
ㅇ 자료형 별칭
- 기본 자료형에 의미 있는 별명(alias) 부여 가능
- [문법] using [별칭] = [기존 자료형]
. 例) using salary = double;
ㅇ 참조, 참조자 (레퍼런스,reference)
- 기존 대상 원본(변수 등)의 별명(alias)으로 이름을 하나 더 만듬
. [문법] 타입 &변수 = 원본;
- C 포인터와 구조적으로 비슷
. 다만, 포인터 문제를 최소화하기 위해, 추가적인 제약사항,차이 등이 있음
.. C : 널 포인터 허용, C++ : 널 참조 허용 안함
.. C : 참조 대상을 & 포인터주소연산자에 의해 그 주소값을 포인터에 할당
.. C++ : 참조 대상을 레퍼런스에 그대로 할당
.. C : 포인터 연산자(*, -> 등)에 의해 접근 가능, C++ : 일반 변수 처럼 접근 가능