스몰토크, 파이썬과 같은 일부 언어에서는 실행중에 타입을 검사하는데, 이와 대조적으로 C++는 정적타입 언어이므로 컴파일중에 타입을 검사한다. 그러므로 컴파일러에서는 프로그램에서 사용하는 모든 이름의 타입을 알아야 한다.

문자 타입은 대부분 국제화를 제원하기 위한 것.
wchar_t, char16_t, char32_t는 확장 문자 집합에 사용한다. wchar_t는 해당 시스템의 가장 큰 확장 문자 집합에 속한 문자를 담기에 충분할 정도로 크다는것을 보장한다.
char16_t와 char32_t는 유니코드문자 처리를 위한 표준 타입으로, UTF-16과 UTF-32인코딩을 지원한다. UTF-32는 모든 유니코드 문자를 하나의 코드 유닛으로 표현할 수 있어 처리가 간단하지만 메모리 사용량이 많고, UTF-16은 메모리 효율적이지만 서로 게이트 쌍 처리가 복잡하다.
(서로게이트 쌍 (Surrogate Pair) : UTF-16에서 기본 다국어 평면(BMP)를 벗어나는 유니코드 문자를 표현하기 위해 두개의 16비트 코드 유닛을 사용하는 방식)
컴퓨터는 데이터를 00010101010101010 처럼 0과 1의 비트열로 저장한다.
대부분의 컴퓨터는 메모리를 2의제곱 크기인 비트 덩어리(chunk)로 다룬다. 주소를 붙일 수 있는 메모리 중 가장 작은 덩어리를 바이트(byte)라고 한다. 기본 저장 단위는 word라고 하는데 일반적으로 적은 바이트 수를 사용한다.
(워드는 프로세서 아키텍쳐에 따라 달라진다. 32비트 시스템의 경우 32비트, 64비트 시스템의 경우 64비트.)
— 정수 값을 부동소수점 타입에 대입하면 소수부는 0이된다. 부동소수점 객체에서 처리할 수 있는 것보다 정수의 비트수가 더 많으면 정밀도 손실이 발생할 수 있다.
— 부호 없는 타입 객체에 범위를 벗어난 값을 대입했으르 떄 결과는 그 타입에서 담을 수 있는 값으로 나머지 연산을 적용한 값이다.8비트 unsigend char에 표현범위 이상을 넣으면 256으로 나머지 연산을 적용한 결과를 대입한다. 그러므로 8비트 unsigned char에 -1을 대입하면 그 객체 값은 255가 된다.
— 부호 있는 타입 객체에 범위를 벗어난 값을 대입하면 결과는 미정의다. (보장X) 프로그램이 동작하는 것처럼 보일수도 있고, 충돌하거나 쓰레기 값을 만들어 낼 수도 있다.
unsigned와 int값을 함께 사용하면 int값은 unsigned로 변환된다. 따라서, 부호있는 타입과 부호없는 타입을 섞어 쓰는것을 금지한다.