Typy danych oraz modyfikatory
Nieodzownym składnikiem każdego programu są zmienne. Zmienna służy do tymczasowego przechowywania informacji, na których będą wykonywane operacje. W językach programowania, które mają typowanie statyczne (takim jest np. C++) nadajemy jawnie typ zmiennej, który będzie znany już w czasie kompilacji. Dzięki temu można wyłapać potencjalne błędy przed uruchomieniem programu. Kompilator zasygnalizuje błędy jak np. przypisanie łańcucha tekstowego do zmiennej typu zmiennoprzecinkowego.
Typy prymitywne
Typy prymitywne są to podstawowe typy danych, które można nadać zmiennym lub mogą posłużyć do stworzenia własnych złożonych typów. W zależności od rodzaju i ustawień kompilatora zakres danych (rozmiar) zmiennych prymitywnych może być różny. Tabela przedstawia listę typów podstawowych.
Nazwa | Opis |
---|---|
bool | Wartość logiczna – true lub false |
char | Typ znakowy (1 bajt) |
short int | Typ liczbowy (2 bajty) |
int | Typ liczbowy (4 bajty) |
long | Większy lub równy typowi int |
long long | Typ liczbowy (8 bajtów) |
float | Typ zmiennoprzecinkowy (4 bajty) |
double | Typ zmiennoprzecinkowy (8 bajtów) |
long double | Równoważny typowi double1 |
void | Brak typu |
enum | Typ wyliczeniowy. Możliwość zdefiniowania dopuszczalnych wartości. |
Modyfikatory
Właściwości zmiennej można zmienić za pomocą tzw. modyfikatorów.
Nazwa | Opis |
---|---|
signed | Zmienna ze znakiem (domyślnie ustawiana) |
unsigned | Zmienna bez znaku. Zwiększa zakres wartości dodatnich kosztem ujemnych. |
const | Inicjalizacja zmiennej wartością stałą, bez możliwości jej późniejszej modyfikacji2 |
volatile | Wartość zmiennej może być zmieniona poza kontrolą programu |
static | Zachowuje się jak zmienna globalna i nie jest usuwana po opuszczeniu funkcji |
Typy złożone
Typy złożone bazują na typach podstawowych. Mogą to być tablice, wskaźniki jak i kompozycje typów prostych (klasy i struktury).
Tablice
Tablica jest to ciąg elementów tego samego typu o określonej ilości. Rozmiar tablicy można zadeklarować statycznie podając jej rozmiar, który jest znany w momencie kompilacji lub dynamicznie w trakcie działania programu. Tablice są zawsze indeksowane od zera. Poniższy listing przedstawia sumę tablicy jednowymiarowej typu liczbowego o dwóch elementach.
int tab[2];
tab[0] = 10;
tab[1] = 20;
int suma = tab[0] + tab[1];
Tablice mogą być N-wymiarowe, w tym celu w kolejnych nawiasach kwadratowych podajemy rozmiar następnego wymiaru.
int tab2d[2][2];
tab2d[0][0] = 1;
tab2d[0][1] = 2;
tab2d[1][0] = 3;
tab2d[1][1] = 4;
Powyższe przykłady dotyczyły tablic o statycznym rozmiarze. W celu utworzenia tablicy o nieznanym rozmiarze w trakcie kompilacji, należy posłużyć się wskaźnikami.
Struktury
Struktura służy jako kontener czyli do przechowywania wielu (i różnych typów) zmiennych w jednej zmiennej. Jako przykład posłuży struktura typu Person. Człowieka można określić za pomocą wieku, imienia, miasta w którym mieszka itd.
struct Person
{
int age;
char name[100];
char city[50];
};
Wskaźniki
Wskaźnik jest typem, który wskazuje na określone miejsce w pamięci. Aby zadeklarować zmienną jako wskaźnik, należy poprzedzić nazwę zmiennej gwiazdką.
int a = 100;
int *b = &a;
// a == *b;
Zmienna a zostaÅ‚a zainicjalizowana wartoÅ›ciÄ… 100. Zmienna b wskazuje na adres pamiÄ™ci zmiennej a, wiÄ™c porównanie wartoÅ›ci obu zmiennych da wynik true. Operator & sÅ‚uży do wyÅ‚uskania adresu pamiÄ™ci danej zmiennej. Natomiast operator * wykorzystany w porównaniu oznacza de-referencjÄ™ – czyli pobraniu wartoÅ›ci z obszaru pamiÄ™ci na jakÄ… wskaźnik wskazuje.
Dokładniejszy opis i zastosowanie wskaźników znajdzie się w późniejszej części kursu.
Objaśnienia
- https://msdn.microsoft.com/en-us/library/s3f49ktz(v=vs.120).aspx
- Za pomocą rzutowania można usunąć modyfikator
Strona Internetowa
Potrzebujesz Å‚adnej strony internetowej? Zobacz demo na: tej stronie
Komentarze