=01 wbudowane typy danych i deklarowanie zmiennych

Page 1

Wbudowane typy danych I deklarowanie zmiennych w C++

1


Deklaracje zmiennych  Każda nazwa w C++ zanim zostanie użyta, musi zostać zadeklarowana.  Deklaracja informuje kompilator, że dana nazwa reprezentuje obiekt określonego typu, ale nie rezerwuje dla niego miejsca w pamięci.  Definicja zaś - dodatkowo rezerwuje miejsce. Definicja jest miejscem, gdzie powołuje się obiekt do życia.  Oczywiście, definicja jest zawsze również deklaracją. Deklarować obiekt w programie można wielokrotnie, natomiast definiować można tylko raz.

2


Przykład: int licznik = 3;

//definicja + deklaracja

extern int licznik; // deklaracja ( tylko!)

3


Systematyka typów w C++ Typy języka C++ można podzielić dwojako: Pierwszy podział:  

typy fundamentalne; typy pochodne, które powstają na bazie typów fundamentalnych.

Drugi podział :  

typy wbudowane, czyli takie, w które język C++ jest wyposażony; typy zdefiniowane przez użytkownika. 4


Typy fundamentalne: Typy reprezentujące liczby całkowite:

short int int long int Typ reprezentujący obiekty zadeklarowane jako znaki alfanumeryczne:

char

5


Wymienione typy mogą być w dwóch wariantach - ze znakiem i bez znaku. Do wybrania wariantu posługujemy się odpowiednio modyfikatorami:

signed unsigned Przykłady: signed int x; unsigned int x;

Przez domniemanie przyjmuje się, że zapis int a; oznacza typ signed int a, czyli typ ze znakiem. 6


Typy reprezentujące liczby zmiennoprzecinkowe:

float double long double Typy te umożliwiają pracę na liczbach rzeczywistych z różną dokładnością.

7


Typy całkowite int 32 bitowe liczby całkowite w kodzie U2. Zakres: -231...231 - 1, -2147483648...2147483647. Każda zmienna int zajmuje w pamięci komputera 4 bajty.

unsigned int 32 bitowe liczby całkowite w naturalnym kodzie binarnym. Zakres: 0...232 - 1, 0...4294967295. Każda zmienna unsigned int zajmuje w pamięci komputera 4 bajty. 8


Typy całkowite short int 16 bitowe liczby całkowite w kodzie U2. Zakres: -215...215 - 1, -32768...32767. Każda zmienna short int zajmuje w pamięci komputera 2 bajty.

unsigned short int 16 bitowe liczby całkowite w naturalnym kodzie binarnym. Zakres: 0...216 - 1, 0...65535. Każda zmienna unsigned short int zajmuje w pamięci komputera 2 bajty. 9


Typy całkowite char 8 bitowe liczby całkowite w kodzie U2. Zakres: -27...27 - 1, -128...127. Każda zmienna char zajmuje w pamięci komputera 1 bajt. Typ ten jest interpretowany przez operacje wejścia wyjścia jako typ znakowy - jedna zmienna char może przechować jeden znak ASCII. Poza tym zmienne char możemy traktować jak zwykłe zmienne całkowite.

unsigned char 8 bitowe liczby całkowite w naturalnym kodzie binarnym. Zakres: 0 do 28 - 1, 0...255. Każda zmienna unsigned char zajmuje w pamięci komputera 1 bajt. Typ ten jest interpretowany przez operacje wejścia wyjścia jako typ znakowy. 10


Typy całkowite long long int 64 bitowe liczby całkowite w kodzie U2. Zakres: -263...263 - 1, -9223372036854775808...9223372036854775807. Każda zmienna long long int zajmuje w pamięci komputera 8 bajtów.

unsigned long long int 64 bitowe liczby całkowite w naturalnym kodzie binarnym. Zakres: 0...264 - 1, 0...18446744073709551615. Każda zmienna unsigned long long int zajmuje w pamięci komputera 8 bajtów. 11


Co siÄ™ stanie gdy przekroczymy zakres?

12


Typy zmiennoprzecinkowe

float 32 bitowe liczby zmiennoprzecinkowe o pojedynczej precyzji. Precyzja 7-8 cyfr. Każda zmienna float zajmuje w pamięci komputera 4 bajty.

13


Typy zmiennoprzecinkowe double 64 bitowe liczby zmiennoprzecinkowe o podwójnej precyzji. Precyzja 15 cyfr. Każda zmienna double zajmuje w pamięci komputera 8 bajtów.

14


Co się stanie gdy przekroczymy precyzję?

15


Do przemyślenia ;) #include <iostream> #include <conio> int main() 0.1 – long double (80 bitów) { x – float (32 bity) float x; Koprocesor wykonuje obliczenia na 80 bitach x = 0; x = x + 0.1; x = x + 0.1; x = x + 0.1; x = x - 0.1; x = x - 0.1; x = x - 0.1; cout << "x = " << x << endl; getch(); return 0; } 16


Typ logiczny bool 1 bitowa dana logiczna. Każda zmienna bool zajmuje w pamięci komputera 1 bajt. Wartość zmiennej jest przechowywana w najmłodszym bicie. Pozostałe 7 bitów jest niewykorzystywane.

Przy przypisywaniu wartości zmiennej kompilator C++ dokonuje niejawnej konwersji:

zmienna = wyrażenie; Wartość wyrażenia jest obliczana, a następnie dokonana zostaje konwersja tej wartości zgodnie z typem zmiennej. Dla zmiennych bool wartość wyrażenia różna od 0 oznacza prawdę - zostanie ustawiony ostatni bit zmiennej i w efekcie otrzymamy wartość 1

17


Sprawdzamy zajętość typu

18


Wynik na ekranie:

19


Definicja, deklaracja

20


Stała w C++

21


Jeszcze o zmiennej

22


Przykład z operatorem sizeof()

Wykorzystaliśmy go już wcześniej. 23


Manipulatory

24


koniec

podręcznik do programowania strukturalnego i obiektowego.

25


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.