V tomto tutoriálu se pomocí příkladů dozvíme o modifikátorech typů a jejich použití v programování v C ++.
V programování v C ++ se modifikátory typů používají ke změně významu základních datových typů.
V C ++ existují čtyři modifikátory typů.
shortlongsignedunsigned
Zde je krátké shrnutí:
| Datový typ | Velikost (v bajtech) | Význam |
|---|---|---|
signed int | 4 | použito pro celá čísla (ekvivalentní int) |
unsigned int | 4 | lze uložit pouze nezáporná celá čísla |
short | 2 | používá se pro malá celá čísla (rozsah -32768 až 32767 ) |
long | alespoň 4 | používá se pro velká celá čísla (ekvivalentní long int) |
unsigned long | 4 | používá se pro velká kladná celá čísla nebo 0 (ekvivalent unsigned long int) |
long long | 8 | používá se pro velmi velká celá čísla (ekvivalentní long long int). |
unsigned long long | 8 | používá se pro velmi velká kladná celá čísla nebo 0 (ekvivalent unsigned long long int) |
long double | 8 | používá se pro velká čísla s plovoucí desetinnou čárkou |
signed char | 1 | používá se pro znaky (garantovaný rozsah -127 až 127 ) |
unsigned char | 1 | používá se pro znaky (rozsah 0 až 255 ) |
modifikátor krátkého typu
Můžeme použít shortpro malá celá čísla (v rozsahu −32,767do +32,767).
Například,
// small integer short a = 12345;
Zde je a shortceločíselná proměnná.
Poznámka: short je ekvivalentní s short int.
dlouhý modifikátor typu
Pokud potřebujeme uložit velké celé číslo (v rozsahu -2147483647 až 2147483647), můžeme použít specifikátor typu long. Například,
// large integer long b = 123456;
Poznámka: long je ekvivalentní s long int.
Modifikátor dlouhého typu lze také použít s doubleproměnnými.
// large floating-point number long double c = 0.333333333333333333L;
Poznámka: K označení long doublepoužíváme Lpříponu. Pokud příponu nepoužíváme L, je to doublehodnota převedená na long double(což může mít za následek ztrátu dat).
dlouho dlouho
longlze opakovat dvakrát a vytvořit long longtyp. Tento typ se používá pro ještě větší čísla než long. long longmodifikátor typu lze použít pouze s int.
Například,
// long long int long long num = 12345678;
podepsané a nepodepsané modifikátory
Podepsané proměnné mohou obsahovat jak kladná, tak záporná celá čísla včetně nuly . Například,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Tady,
- x obsahuje celé číslo s kladnou hodnotou
- y obsahuje celé číslo se zápornou hodnotou
- z drží celé číslo s nulovou hodnotou
Poznámka:
- Ve výchozím nastavení jsou celá čísla
signed. Proto místo tohosignedintmůžeme přímo použítint. signeda unsigned lze použít pouze u typů int a char.
Tyto nepodepsané proměnné může mít pouze nezáporné celočíselné hodnoty. Například,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Tady,
- x obsahuje celé číslo s kladnou hodnotou
- y drží nulu
Obecně platí, že intproměnná může ukládat rozsah hodnot od -2 147 483 648 do 2 147 483 647 . Zatímco unsigned inproměnná t může ukládat rozsah hodnot od 0 do 4 294 967 295 .
podepsaný, nepodepsaný a prostý znak
C ++ má 3 různé druhy Znak: char, signed chara unsigned char. V praxi existují v zásadě pouze 2 typy: signed chara unsigned char.
To proto, že i když charnení stejný jako signed charnebo unsigned charve standardním C ++, různé překladače zacházet charjako jeden signed charnebo unsigned charpodle vlastní volby.
Poznámka: Když používáme pouze charmísto signed charnebo unsigned char, je tento typ známý jako prostý znak .
Jak jste možná uhodli, signed charmůže ukládat kladná i záporná celá čísla, zatímco unsigned charmůže ukládat pouze kladná celá čísla (včetně 0 ).
Zaručena rozsah integer hodnoty signed charlze uložit, je -127 až 127 , zatímco rozsah unsigned charje 0 až 255 .
// plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
Tady,
- plain_1 obsahuje kladné celé číslo
- plain_2 obsahuje celé číslo s nulovou hodnotou
- sin_1 obsahuje kladné celé číslo
- sin_2 obsahuje celé číslo s nulovou hodnotou
- sin_3 obsahuje celé číslo se zápornou hodnotou
- unsin_1 obsahuje celé číslo se zápornou hodnotou
- unsin_2 obsahuje celé číslo s nulovou hodnotou
Poznámka: Je lepší nepoužívat prostý znak k provádění numerických manipulací; Místo toho by měl být použit podepsaný znak nebo nepodepsaný znak. Prostý znak by měl být použit pouze k ukládání hodnot znaků.








