Typy danych
MKF
Typy podstawowe
W C++ możemy tworzyć własne typy danych lub korzystać z podstawowych. Tabelka przedstawia listę typów podstawowych:Typ | Rozmiar | Zakres | Uwagi | |
---|---|---|---|---|
signed | unsigned | |||
[[C/bool]] | 1 bit | przyjmuje wartość [[C/True|true]] albo [[C/False|false]] | ||
[[C/char]] | 1 bajt | -128 127 |
0 255 |
|
[[C/wchar_t]] | 2 bajty | 1 znak Unicode | reprezentuje znak Unicode | |
[[C/int]] | 2 lub 4 bajty | zależnie od rozmiaru, taki jak: short lub long int | rozmiar zależy od kompilatora | |
[[C/short]] [[C/int]] | 2 bajty | -32768 32767 |
0 65535 |
|
[[C/long]] [[C/int]] | 4 bajty | -2147483648 2147483647 |
0</b> 4294967295 |
|
[[C/long]] [[C/long]] [[C/int]] | 8 bajtów | -9223372036854775808 9223372036854775807 |
0 18446744073709551615 |
|
[[C/float]] | 4 bajty | 3.4e +/- 38 (7 znaków) | typ zmiennoprzecinkowy | |
[[C/double]] | 8 bajtów | 1.7e +/- 308 (15 znaków) | typ zmiennoprzecinkowy | |
[[C/long]] [[C/double]] | 8, 10 lub 12 bajtów | 1.7e +/- 308 (15 znaków) | typ zmiennoprzecinkowy | |
[[C/void]] | reprezentuje brak typu |
Deklarowanie zmiennej danego typu wygląda tak:
[modyfikator] nazwa_typu nazwa_zmiennej;
Przykład:
int liczba;
unsigned char bajt;
const float PI = 3.141;
Typy pochodne
Typy pochodne to typy o dodatkowych właściwościach, zazwyczaj bazujące na typach podstawowych.Typ wyliczeniowy
Określa wartości jakie zmienne tego typu mogą przyjąć:enum nazwa_typu {wartosc_pierwsza, wartosc_druga};
Więcej typów pochodnych: Tablice, Wskaźniki, Struktury, Unie, Pola bitowe
Modyfikatory
Zmienne typów podstawowych mogą posiadać tzw. modyfikator, czyli instrukcję która dokładniej opisuje kompilatorowi właściwości zmiennej.signed i unsigned
Są to modyfikatory określające czy dana zmienna będzie mogła przechowywać liczby ujemne czy nie. Zazwyczaj kompilator domyślnie przypisuje modyfikator signed do nowo zadeklarowanej zmiennej.unsigned int a = -123; // BŁĄD, użyto modyfikatora unsigned więc zmienna nie obsługuje liczb ujemnych
signed long b = -321; // prawidłowy zapis
Więcej modyfikatorów: Const, Register, Static, Volatile, Auto
Zobacz też:
Manfredek, przeczytaj swoje pytanie jeszcze raz i się nad nim zastanów. Albo daj se spokój z programowaniem.
Od kiedy typy inne niż void i bool mają określone zakresy?
Nie to, żebym się czepiał, ale podejrzewam tu kilka błędów.
Po 1. BOOL nie zajmie w praktyce nigdy jednego bita, gdyż najmniejszą jednostką alokacji pamięci jest jeden BAJT. Poprawcie mnie, jeśli się mylę.
Po 2. Znak w UTF może mieć nawet 4B. Więc co dokładnie przechowuje wchar?
Przykład, jak działa "bool" byłby mile widziany :P
czemu tu nie tlumacza
poprawione :P nie domkniety tag był :]
niech ktoś to przeniesie we właściwe miejsce
hmm.. gdzie Szczawik i jego parser nowy? jak to tak, że zły kod w arcie wpływa na resztę strony - nawet stopka jest podkreślona :D
Mam nadzieję, że coś z tego powstanie sensowniejszego...