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 .