Przy zmiennych pamiętać należy o przysłanianiu nazw oraz zasięgu lokalnym i globalnym, jaki posiadają. Oprócz tego dochodzi jeszcze możliwość różnego umieszczania ich w pamięci. Uzyskujemy to przez poniższe modyfikatory: register - zmienna ma być trzymana w rejestrze procesora, a nie w pamięci, co znacznie przyspiesza działanie programu. Ma to sens, gdy zmienna jest za chwilę wielokrotnie wykorzystywana. register int i;
const - obiekt jest stały, zainicjalizowany i nie wolno później zmieniać jego wartości, const pi=3.1415;
volatile - zmienna jest ulotna i może niepostrzeżenie ulęgać zmianie jej wartość (np. odczytywana temperatura) wiec za każdym razem, gdy odwołuje sie do niej następuje ponowny fizyczny odczyt, volatile pomiar;
static - obiekt taki istnieje przez cały czas, niezależnie od zasięgu, który go używa. Przynależy tylko do danego pliku i poza nim nic nie może z niego korzystać,
extern oznacza, że następująca deklaracja nie jest fizyczną deklaracją, lecz zaimportowaniem z innego pliku.
liczby całkowite
nazwa typu
rezerwowana pamięci
zakres wartości
short int(16 bitów) int (32 bity) long
2 bajty 2 bajty 4 bajty 4 bajty
32 768 do 32 767 32 768 do 32 767 2 147 483 648 do 2 147 483 647 2 147 483 648 do 2 147 483 647
liczby rzeczywiste
nazwa typu
rezerwowana pamięci
zakres wartości
float double long double
4 bajty 8 bajtów 10 bajtów
1.2e-38 do 3.4e38 2.2e-308 do 1.8e308
Przykład: int x,wynik; float pi=3.141592;
Typy całkowite występują w dwóch odmianach: signed (ze znakiem) oraz unsigned (bez znaku). Czasem potrzebna jest liczba ujemna, a czasem dodatnia. Liczby całkowite bez słowa kluczowego unsigned są traktowane jako liczby ze znakiem. Liczby całkowite signed są albo dodatnie albo ujemne, zaś liczby całkowite unsigned są zawsze dodatnie.
unsigned short int zakres - od 0 do 65 535
unsigned long int zakres - od 0 do 4 294 967 295
unsigned int (16 bitów) zakres - od 0 do 65 535
unsigned int (32 bity) zakres - od 0 do 4 294 967 295
char pozwala na wczytanie dowolnego znaku Przykład:
.. char koniec; cout<<"KONIEC?\n\tT/N"; cin>>koniec; ..
string zapamietuje ciąg znaków Przykład: .. string imie; cout<<"podaj swoje imie\n"; cin>>imie; system ("cls"); //czyszczenie ekranu cout<<"czesc "<<imie;
..
typedef - pozwala nadać dodatkową nazwę już istniejącemu typowi. Przykład: typedef int cena; daje to możliwoś takiej deklaracji: cena a,b,c;// odpowiada to: int a,b,c;
enum - osobny typ stały wyliczeniowy dla liczb całkowitych przechowujący pewien rodzaj informacji. Przykład:
.. enum tydzien {PONIEDZIALEK, WTOREK, SRODA, CZWARTEK, PIATEK, SOBOTA, NIEDZIELA}; /*definiowana jest stała wyliczeniowa tydzien, posiadająca siedem,
odpowiadających dniom tygodnia, wartość całkowitą, numerowaną od 0 w górę.
Tak więc poniedziałek ma numer 0, wtorek 1 itd.
Można również przypisać określone wartości: enumtydzien {PONIEDZIALEK=100, WTOREK, SRODA=200, CZWARTEK, PIATEK=300,
SOBOTA, NIEDZIELA=400};
wtedy:
PONIEDZIALEK będzie mieć wartość 100,
WTOREK będzie mieć wartość 101,
SRODA będzie mieć wartość 200,
CZWARTEK będzie mieć wartość 201,
PIATEK będzie mieć wartość 300,
SOBOTA będzie mieć wartość 301,
NIEDZIELA będzie mieć wartość 400*/ tydzien dzis;
dzis = PONIEDZIALEK;
..
Ten sam program ze stałymi całkowitymi:
.. const int PONIEDZIALEK = 0; const int WTOREK = 1; const int SRODA = 2; const int CZWARTEK = 3; const int PIATEK = 4; const int SOBOTA = 5; const int NIEDZIELA = 6; int dzis; dzis = PONIEDZIALEK;
..