short int inaczej: short int long int inaczej: long
oraz tak zwany typ wyliczeniowy enum, o którym porozmawiamy niebawem.
Typ reprezentujący obiekty zadeklarowane jako znaki alfanumeryczne char
Wszystkie powyższe typy mogą być w dwóch wariantach - ze znakiem i bez znaku. Do wybrania wariantu posługujemy się modyfikatorem signed lub unsigned np.
signed int unsigned int
Wyposażenie typu w znak sprawia, że może on reprezentować liczbę ujemną i dodatnią. Typ bez znaku reprezentuje liczbę dodatnią.
Przez domniemanie przyjmuje się, że zapis
int a ;
oznacza, że chodzi nam o typ
signed int a ;
czyli typ ze znakiem.
Natomiast w wypadku typu char sprawa nie jest tak prosta. To, czy przez domniemanie będziemy mieli signed czy unsigned - zależy od typu kompilatora czy komputera. Mówimy krótko: zależy to od implementacji.
Typy reprezentujące liczby zmiennoprzecinkowe float double long double umożliwiają pracę na liczbach rzeczywistych z różną dokładnością.
Zastanawiasz się zapewne po co są aż trzy typy reprezentujące liczby całkowite oraz trzy typy reprezentujące liczby zmiennoprzecinkowe.
Chodzi o to, by można było lepiej wykorzystać możliwości danego typu komputera. Zależnie od tego, ile dany komputer przydziela komórek pamięci na zapis danej liczby - otrzymujemy mniejszą lub większą precyzję obliczeń.
Przyjrzyjmy się jak to załatwiane jest na różnych komputerach.
Typ Komputer
IB PC/AT VAX
short2 bajty2 bajty
int2 bajty4 bajty
long4 bajty4 bajty
float4 bajty4 bajty
double8 bajtów8 bajtów
long double10 bajtów8 bajtów
Za lepszą dokładność płaci się dłuższym czasem obliczeń, dlatego zapewnienie programiście aż 3 typów dla liczb całkowitych daje możliwość wyboru między dokładnością, a szybkością obliczeń.
Jak widać z zestawienia - sposób przechowywania liczby może zależeć od typu komputera.