Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
| spse:pm1:datove-typy [2021/01/11 22:19] – jenda | spse:pm1:datove-typy [2024/07/07 16:48] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| ~~NOCACHE~~ | ~~NOCACHE~~ | ||
| - | ~~REVEAL theme=dokuwiki& | + | ~~REVEAL theme=dokuwiki& |
| ====== Datové typy ====== | ====== Datové typy ====== | ||
| Řádek 26: | Řádek 26: | ||
| |long double|+-1.7 * 10< | |long double|+-1.7 * 10< | ||
| - | <WRAP center round important | + | <WRAP center round important |
| * Pozor, vzhledem k tomu, že desetinná čísla jsou v počítači uložena ve dvojkové soustavě, dochází k určité ztrátě přesnosti. Odchylka je sice téměř zanedbatelná, | * Pozor, vzhledem k tomu, že desetinná čísla jsou v počítači uložena ve dvojkové soustavě, dochází k určité ztrátě přesnosti. Odchylka je sice téměř zanedbatelná, | ||
| </ | </ | ||
| Řádek 32: | Řádek 32: | ||
| < | < | ||
| double d = 3.14; | double d = 3.14; | ||
| - | float f = 3.14f; | + | float f = 3.14; |
| </ | </ | ||
| </ | </ | ||
| Řádek 40: | Řádek 40: | ||
| |char|U+00 až U+ff (0 až 255 nebo -128 až 127)|8 bitů|znak| | |char|U+00 až U+ff (0 až 255 nebo -128 až 127)|8 bitů|znak| | ||
| - | |wchar_t|U+0000 až U+ffff (0 až 65 535)|16 bitů|" | ||
| |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota| | |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota| | ||
| Řádek 75: | Řádek 74: | ||
| ===== Výstupní konverze ===== | ===== Výstupní konverze ===== | ||
| - | + | ^typ^význam^ | |
| - | ^type^význam^ | + | |d, i|Celé číslo se znaménkem (Zde není mezi d a i rozdíl.| |
| - | |d, i|Celé číslo se znaménkem (Zde není mezi d a i rozdíl. Rozdíl viz scanf() níže).| | + | |
| |u|Celé číslo bez znaménka.| | |u|Celé číslo bez znaménka.| | ||
| |o|Číslo v osmičkové soustavě.| | |o|Číslo v osmičkové soustavě.| | ||
| - | |x, X|Číslo v šestnáctkové soustavě. Písmena ABCDEF se budou tisknout jako malá při použití malého x, nebo velká při použití velkého X.| | + | |x, X|Číslo v šestnáctkové soustavě. Písmena ABCDEF se budou malá při použití malého x, nebo velká při použití velkého X.| |
| - | |p|Ukazatel (pointer)| | + | |
| |f|Racionální číslo (float, double) bez exponentu.| | |f|Racionální číslo (float, double) bez exponentu.| | ||
| - | |e, E|Racionální číslo s exponentem, implicitně | + | |e, E|Racionální číslo s exponentem, implicitně |
| - | |g, G|Racionální číslo s exponentem nebo bez něj (podle absolutní hodnoty čísla). Neobsahuje | + | |g, G|Racionální číslo s exponentem nebo bez něj (podle absolutní hodnoty čísla). Neobsahuje |
| |c|Jeden znak.| | |c|Jeden znak.| | ||
| - | |s|Řetězec. | + | |s|Řetězec.| |
| + | ((https:// | ||
| + | ----> | ||
| + | <WRAP center round tip 100%> | ||
| + | Co se děje v následující ukázce? | ||
| + | </ | ||
| < | < | ||
| Řádek 104: | Řádek 106: | ||
| return 0; | return 0; | ||
| } | } | ||
| + | /* Výstup: | ||
| + | -5 4294967291 310 c8 C8 10.000000 1.000000e+01 10 | ||
| + | (C) 2003 | ||
| + | */ | ||
| + | |||
| </ | </ | ||
| </ | </ | ||
| + | <---- | ||
| + | |||
| + | ====== Shrnutí ====== | ||
| + | ----> | ||
| + | <code c> | ||
| + | /* Zakladni pouziti - cteni ze vstupu | ||
| + | | ||
| + | printf ( "Cele cislo: | ||
| + | scanf ( " | ||
| + | printf ( "a = %d\n", a ); | ||
| + | | ||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "b = %f\n", b ); /* zde %f, ne lf */ | ||
| + | |||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "c = %f\n", c ); /* zde %f */ | ||
| + | |||
| + | printf ( "Znak (char), ne whitespace: | ||
| + | scanf ( " | ||
| + | printf ( "d = %c\n", d ); | ||
| + | /* Proc nelze znak zadat? | ||
| + | */ | ||
| + | |||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "str = %s\n", str ); | ||
| + | |||
| + | </ | ||
| + | <---- | ||
| + | ----> | ||
| + | <code c> | ||
| + | /* Dalsi formaty | ||
| + | */ | ||
| + | |||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "u = %d\n", u ); | ||
| + | |||
| + | printf ( "Short int: | ||
| + | scanf ( " | ||
| + | printf ( "s = %d\n", s ); /* zde %d */ | ||
| + | |||
| + | printf ( "Hex: \n" ); | ||
| + | scanf ( " | ||
| + | printf ( "u = %u\n", u ); /* zobrazime jako dec, %u = unsigned int */ | ||
| + | | ||
| + | printf ( "Oct: \n" ); | ||
| + | scanf ( " | ||
| + | printf ( "u = %u\n", u ); /* zobrazime jako dec */ | ||
| + | </ | ||
| + | <---- | ||