Každá proměnná v C má přidružený datový typ. Určuje typ dat, která může proměnná ukládat, jako je celé číslo, znak, plovoucí, dvojitá atd. Každý datový typ vyžaduje různé množství paměti a má některé specifické operace, které nad ním lze provádět. Datový typ je soubor dat s hodnotami, které mají pevné hodnoty, význam i jejich charakteristiky.
Datové typy v C lze klasifikovat následovně:
| Typy | Popis |
|---|---|
| Primitivní datové typy | Primitivní datové typy jsou nejzákladnější datové typy, které se používají k reprezentaci jednoduchých hodnot, jako jsou celá čísla, float, znaky atd. |
| Uživatelsky definované datové typy | Uživatelsky definované datové typy definuje uživatel sám. |
| Odvozené typy | Datové typy, které jsou odvozeny z primitivních nebo vestavěných datových typů, se označují jako odvozené datové typy. |

Různé datové typy mají také různé rozsahy, do kterých mohou ukládat čísla. Tyto rozsahy se mohou lišit kompilátor od kompilátoru. Níže je uveden seznam rozsahů spolu s požadavky na paměť a specifikátory formátu na 32bitový kompilátor GCC .
| Datový typ | Velikost (bajty) | Rozsah | Specifikátor formátu |
|---|---|---|---|
| krátký int | 2 | -32 768 až 32 767 | %hd |
| unsigned short int | 2 | 0 až 65 535 | %hu |
| nepodepsaný int | 4 | 0 až 4,294,967,295 | %v |
| int | 4 | -2 147 483 648 až 2 147 483 647 | %d |
| dlouhá int | 4 | -2 147 483 648 až 2 147 483 647 | %ld |
| unsigned long int | 4 | 0 až 4,294,967,295 | %lu |
| dlouhý dlouhý int | 8 | -(2^63) až (2^63)-1 | %lld |
| unsigned long long int | 8 | 0 až 18 446 744 073 709 551 615 | %llu |
| podepsaný char | 1 | -128 až 127 | %C |
| nepodepsaný char | 1 | 0 až 255 | %C |
| plovák | 4 | 1,2E-38 až 3,4E+38 | %F |
| dvojnásobek | 8 | 1,7E-308 až 1,7E+308 | %lf |
| dlouhý dvojitý | 16 | 3.4E-4932 to 1.1E+4932 | %Lf |
Poznámka: l ong, krátké, podepsané a nepodepsané jsou modifikátory datového typu, které lze použít s některými primitivními datovými typy ke změně velikosti nebo délky datového typu.
Níže jsou uvedeny některé hlavní primitivní datové typy v C:
Celočíselný datový typ
Datový typ celé číslo v C se používá k uložení celých čísel (jakékoli číslo včetně kladného, záporného a nula bez desetinné části). Osmičkové hodnoty, hexadecimální hodnoty a desítkové hodnoty mohou být uloženy v datovém typu int v C.
- Rozsah: -2 147 483 648 až 2 147 483 647
- Velikost: 4 byty
- Specifikátor formátu: %d
Syntaxe celého čísla
Používámevar_name;
Datový typ integer lze také použít jako
výběr z více tabulek v sql
- unsigned int: Datový typ Unsigned int v C se používá k ukládání datových hodnot od nuly do kladných čísel, ale nemůže ukládat záporné hodnoty, jako je například podepsaný int.
- krátký int: Je o 2 bajty menší než int, takže může ukládat pouze hodnoty od -32 768 do 32 767.
- dlouhý int: Větší verze datového typu int, takže může ukládat hodnoty větší než int.
- unsigned short int: Podobné ve vztahu s short int jako unsigned int s int.
Poznámka: Velikost datového typu typu integer je závislá na kompilátoru. Můžeme použít velikost operátora zkontrolovat skutečnou velikost libovolného datového typu.
Příklad int
C
// C program to print Integer data types.> #include> int> main()> {> >// Integer value with positive data.> >int> a = 9;> >// integer value with negative data.> >int> b = -9;> >// U or u is Used for Unsigned int in C.> >int> c = 89U;> >// L or l is used for long int in C.> >long> int> d = 99998L;> >printf>(>'Integer value with positive data: %d
'>, a);> >printf>(>'Integer value with negative data: %d
'>, b);> >printf>(>'Integer value with an unsigned int data: %u
'>,> >c);> >printf>(>'Integer value with an long int data: %ld'>, d);> >return> 0;> }> |
>
>Výstup
Integer value with positive data: 9 Integer value with negative data: -9 Integer value with an unsigned int data: 89 Integer value with an long int data: 99998>
Typ dat znaků
Znakový datový typ umožňuje své proměnné uložit pouze jeden znak. Velikost znaku je 1 bajt. Je to nejzákladnější datový typ v C. Ukládá jeden znak a téměř ve všech kompilátorech vyžaduje jeden bajt paměti.
- Rozsah: (-128 až 127) nebo (0 až 255)
- Velikost: 1 bajt
- Specifikátor formátu: %C
Syntaxe char
The klíčové slovo char se používá k deklaraci proměnné typu znaku:
char var_name;>
Příklad char
C
long to int java
// C program to print Integer data types.> #include> int> main()> {> >char> a =>'a'>;> >char> c;> >printf>(>'Value of a: %c
'>, a);> >a++;> >printf>(>'Value of a after increment is: %c
'>, a);> >// c is assigned ASCII values> >// which corresponds to the> >// character 'c'> >// a-->97 b-->98c-->99> >// here c will be printed> >c = 99;> >printf>(>'Value of c: %c'>, c);> >return> 0;> }> |
>
>Výstup
Value of a: a Value of a after increment is: b Value of c: c>
Plovoucí datový typ
V programování C datový typ float se používá k ukládání hodnot s plovoucí desetinnou čárkou. Float v C se používá k ukládání desetinných a exponenciálních hodnot. Používá se k ukládání desetinných čísel (čísla s plovoucí desetinnou čárkou) s jednoduchou přesností.
- Rozsah: 1,2E-38 až 3,4E+38
- Velikost: 4 byty
- Specifikátor formátu: %F
Syntaxe float
The klíčové slovo float se používá k deklaraci proměnné jako s plovoucí desetinnou čárkou:
float var_name;>
Příklad plováku
C
binární typy stromů
// C Program to demonstrate use> // of Floating types> #include> int> main()> {> >float> a = 9.0f;> >float> b = 2.5f;> >// 2x10^-4> >float> c = 2E-4f;> >printf>(>'%f
'>, a);> >printf>(>'%f
'>, b);> >printf>(>'%f'>, c);> >return> 0;> }> |
>
>Výstup
9.000000 2.500000 0.000200>
Dvojitý datový typ
A Dvojitý datový typ v C se používá k ukládání desetinných čísel (čísla s plovoucí desetinnou čárkou) s dvojnásobnou přesností. Používá se k definování číselných hodnot, které obsahují čísla s desetinnými hodnotami v C.
Datový typ double je v podstatě přesný druh datového typu, který je schopen pojmout 64 bitů desetinných čísel nebo plovoucí desetinné čárky. Protože double má větší přesnost ve srovnání s plovoucí desetinnou čárkou, je mnohem zjevnější, že zabírá dvojnásobek paměti obsazené typem s plovoucí desetinnou čárkou. Může snadno pojmout asi 16 až 17 číslic za nebo před desetinnou čárkou.
- Rozsah: 1,7E-308 až 1,7E+308
- Velikost: 8 bajtů
- Specifikátor formátu: %lf
Syntaxe Double
Proměnnou lze deklarovat jako s plovoucí desetinnou čárkou s dvojitou přesností pomocí dvojité klíčové slovo:
double var_name;>
Příklad Double
C
// C Program to demonstrate> // use of double data type> #include> int> main()> {> >double> a = 123123123.00;> >double> b = 12.293123;> >double> c = 2312312312.123123;> >printf>(>'%lf
'>, a);> >printf>(>'%lf
'>, b);> >printf>(>'%lf'>, c);> >return> 0;> }> |
>
>Výstup
123123123.000000 12.293123 2312312312.123123>
Neplatný datový typ
Datový typ void v C se používá k určení, že není přítomna žádná hodnota. Neposkytuje svému volajícímu výslednou hodnotu. Nemá žádné hodnoty a žádné operace. Používá se k reprezentaci ničeho. Void se používá mnoha způsoby jako návratový typ funkce, argumenty funkce jako void a ukazatele na neplatnost .
Syntax:
// function return type void void exit(int check); // Function without any parameter can accept void. int print( void ); // memory allocation function which // returns a pointer to void. void *malloc (size_t size);>
Příklad Void
C
tiskové pole v Javě
// C program to demonstrate> // use of void pointers> #include> int> main()> {> >int> val = 30;> >void>* ptr = &val;> >printf>(>'%d'>, *(>int>*)ptr);> >return> 0;> }> |
>
>Výstup
30>
Velikost datových typů v C
Velikost datových typů v C je závislá na velikosti architektury, nemůžeme tedy definovat univerzální velikost datových typů. Jazyk C proto poskytuje operátor sizeof() pro kontrolu velikosti datových typů.
Příklad
C
java bubble sort
// C Program to print size of> // different data type in C> #include> int> main()> {> >int> size_of_int =>sizeof>(>int>);> >int> size_of_char =>sizeof>(>char>);> >int> size_of_float =>sizeof>(>float>);> >int> size_of_double =>sizeof>(>double>);> >printf>(>'The size of int data type : %d
'>, size_of_int);> >printf>(>'The size of char data type : %d
'>,> >size_of_char);> >printf>(>'The size of float data type : %d
'>,> >size_of_float);> >printf>(>'The size of double data type : %d'>,> >size_of_double);> >return> 0;> }> |
>
>Výstup
The size of int data type : 4 The size of char data type : 1 The size of float data type : 4 The size of double data type : 8>
Chcete-li si ověřit své znalosti datových typů v C, projděte si Kvíz o typech dat .