Programowanie w języku C/C++

Typy danych

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
bool 1 bit przyjmuje wartość true albo false
char 1 bajt -128
127
0
255
wchar_t 2 bajty 1 znak Unicode reprezentuje znak Unicode
int 2 lub 4 bajty zależnie od rozmiaru, taki jak: short lub long int rozmiar zależy od kompilatora
short int 2 bajty -32768
32767
0
65535
long int 4 bajty -2147483648
2147483647
0</b>
4294967295
long long int 8 bajtów -9223372036854775808
9223372036854775807
0
18446744073709551615
float 4 bajty 3.4e +/- 38 (7 znaków) typ zmiennoprzecinkowy
double 8 bajtów 1.7e +/- 308 (15 znaków) typ zmiennoprzecinkowy
long double 8, 10 lub 12 bajtów 1.7e +/- 308 (15 znaków) typ zmiennoprzecinkowy
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ż:

9 komentarzy

Brak avatara
Proprogramer 2014-01-03 12:59

@juhas bajt to 8 bitów

Juhas 2009-05-27 22:28

Manfredek, przeczytaj swoje pytanie jeszcze raz i się nad nim zastanów. Albo daj se spokój z programowaniem.

manfredek 2009-05-27 16:23

Od kiedy typy inne niż void i bool mają określone zakresy?

Juhas 2009-05-27 09:24

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?

piekielny 2009-01-05 12:21

Przykład, jak działa "bool" byłby mile widziany :P

oneat 2007-04-11 19:52

czemu tu nie tlumacza

SebaZ 2007-02-28 20:07

poprawione :P nie domkniety tag był :]

niech ktoś to przeniesie we właściwe miejsce

Marooned 2007-02-28 18:14

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

Coldpeer 2006-11-15 15:28

Mam nadzieję, że coś z tego powstanie sensowniejszego...