W języku C++ wykorzystuje się zbiór znaków ASCII, zdefiniowany normą ANSI3.4-1968. Jest to amerykański wariant międzynarodowego, 7-bitowegokodu ISO 646-1983. Elementami tego zbioru są: małe i duże litery alfabetu łacińskiego, cyfty od 0 do 9,
znaki przestankowe i inne symbole specjalne.
Każdy znak zbioru ASCII ma swój numer porządkowy (kod znaku); np. kodem znaku A'jest liczba 65 w dziesiętnym systemie liczenia, lub 101 w systemie oktalnym (ósemkowym). Znaki kodu ASCII zestawiono w Dodatku A.
Ponieważ C++ jest językiem o silnej typizacji, zatem każda nazwa (identyfikator) w programie musi mieć związany z nią typ, podawany w deklaracji identyfikatora. Typ określa zbiór wartości, jakie można przypisać danej nazwie oraz zbiór operacji, jakie można zastosować do takiej nazwy (tj. do reprezentowanej przez tę nazwę struktury danych), a także sposób interpretacji poszczególnych operacji.
1.1. Wbudowane typy danych
Każda implementacja języka C++ zawiera dwie kategorie typów danych typy wbudowane i typy definiowane przez użytkownika. Zarówno pierwsze, jak i drugie są abstrakcyjnymi reprezentacjami rzeczywistych struktur danych
Pośród typów wbudowanych wyróżnia się typy podstawowe: typ char, typ int, typ float, typ double, typ bool i typ enum. Nazwy typów podstawowych można poprzedzać tzw. specyfikatorami typu, tj. słowami kluczowymi short, long. signed i unsigned, które zmieniają wewnętrzną reprezentację danych tych typów.
Każdy typ wbudowany ma także szereg skojarzonych z nim typów pochodnych: wskaźniki, referencje i tablice.
Rysunek 1-1 ilustruje typy wbudowane.
Podstawowe typy danych Specyfikatory
unsigned int i; __
Deklaracja zmiennej i, która jest typu unsigned int
Rysunek 1-1 Podstawowe typy danych C++
Poniżej zestawiono sensowne (i najczęściej używane) kombinacje typów i specyfikatorów.
Dla wielkości (stałych i zmiennych) całkowitych: char, short int, int, long inL Norma ANSI/ISO stanowi, że zapisów "short int” oraz “long int” nie można w programach skracać do "short” i “long”. Dla wielkości (stałych i zmiennych) zmiennoprzecinkowych: float, double, long double.
Dla wielkości całkowitych bez znaku, wartości logicznych, tablic bitowych: unsigned char, unsigned short int unsigned int, unsigned long inL
Przy jawnym deklarowaniu wielkości ze znakiem: signed char, signed short int. signed int.