Każda zmienna w C ma powiązany typ danych. Określa typ danych, które zmienna może przechowywać, np. liczba całkowita, znakowa, zmiennoprzecinkowa, podwójna itp. Każdy typ danych wymaga innej ilości pamięci i można na nim wykonywać określone operacje. Typ danych to zbiór danych o wartościach mających stałe wartości, znaczenie i charakterystykę.
Typy danych w języku C można sklasyfikować w następujący sposób:
Typy | Opis |
---|---|
Pierwotne typy danych | Pierwotne typy danych to najbardziej podstawowe typy danych używane do reprezentowania prostych wartości, takich jak liczby całkowite, zmiennoprzecinkowe, znaki itp. |
Typy danych zdefiniowane przez użytkownika | Typy danych zdefiniowane przez użytkownika są definiowane przez samego użytkownika. |
Typy pochodne | Typy danych wywodzące się z pierwotnych lub wbudowanych typów danych nazywane są pochodnymi typami danych. |
Różne typy danych mają również różne zakresy, do których mogą przechowywać liczby. Zakresy te mogą się różnić w zależności od kompilatora. Poniżej znajduje się lista zakresów wraz z wymaganiami dotyczącymi pamięci i specyfikatorami formatu w pliku 32-bitowy kompilator GCC .
Typ danych | Rozmiar (w bajtach) | Zakres | Specyfikator formatu |
---|---|---|---|
krótki wew | 2 | -32 768 do 32 767 | %HD |
krótki int bez znaku | 2 | 0 do 65 535 | %hu |
bez znaku int | 4 | 0 do 4 294 967 295 | %W |
wew | 4 | -2 147 483 648 do 2 147 483 647 | %D |
długi wew | 4 | -2 147 483 648 do 2 147 483 647 | %ld |
długi int bez znaku | 4 | 0 do 4 294 967 295 | %lu |
długi długi wew | 8 | -(2^63) do (2^63)-1 | %lld |
bez znaku długi długi int | 8 | 0 do 18 446 744 073 709 551 615 | %llu |
podpisany znak | 1 | -128 do 127 | %C |
znak bez znaku | 1 | 0 do 255 | %C |
platforma | 4 | 1.2E-38 do 3.4E+38 | %F |
podwójnie | 8 | 1.7E-308 do 1.7E+308 | %lf |
długi podwójny | 16 | 3.4E-4932 to 1.1E+4932 | %Lf |
Notatka: l ong, krótki, podpisany i niepodpisany to modyfikatory typu danych, których można używać z niektórymi prymitywnymi typami danych w celu zmiany rozmiaru lub długości typu danych.
Poniżej przedstawiono kilka głównych prymitywnych typów danych w języku C:
Typ danych całkowitych
Typ danych integer w języku C służy do przechowywania liczb całkowitych (dowolnej liczby, w tym dodatniej, ujemnej i zera bez części dziesiętnej). Wartości ósemkowe, szesnastkowe i dziesiętne można przechowywać w typie danych int w języku C.
- Zakres: -2 147 483 648 do 2 147 483 647
- Rozmiar: 4 bajty
- Specyfikator formatu: %D
Składnia liczby całkowitej
Używamynazwa_zmiennej;
Typ danych całkowitych może być również używany jako
znak tostring Java
- bez znaku int: Typ danych Unsigned int w C służy do przechowywania wartości danych od zera do liczb dodatnich, ale nie może przechowywać wartości ujemnych, takich jak Sign int.
- krótki int: Ma mniejszy rozmiar niż int o 2 bajty, więc może przechowywać tylko wartości od -32 768 do 32 767.
- długi int: Większa wersja typu danych int, dzięki czemu można przechowywać wartości większe niż int.
- unsigned krótki int: Podobnie w relacji z krótkim int jak unsigned int z int.
Notatka: Rozmiar typu danych całkowitych zależy od kompilatora. Możemy użyć operator rozmiaru aby sprawdzić rzeczywisty rozmiar dowolnego typu danych.
Przykład 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;> }> |
>
parseint Java
>Wyjście
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 danych znakowych
Znakowy typ danych umożliwia zmiennej przechowywanie tylko jednego znaku. Rozmiar znaku wynosi 1 bajt. Jest to najbardziej podstawowy typ danych w C. Przechowuje pojedynczy znak i wymaga jednego bajtu pamięci w prawie wszystkich kompilatorach.
- Zakres: (-128 do 127) lub (0 do 255)
- Rozmiar: 1 bajt
- Specyfikator formatu: %C
Składnia char
The słowo kluczowe char służy do deklarowania zmiennej typu znakowego:
char var_name;>
Przykład char
C
// 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-->98 c-->99> > // here c will be printed> > c = 99;> > printf> (> 'Value of c: %c'> , c);> > return> 0;> }> |
>
>Wyjście
Value of a: a Value of a after increment is: b Value of c: c>
Typ danych pływających
W programowaniu C pływający typ danych służy do przechowywania wartości zmiennoprzecinkowych. Float w C służy do przechowywania wartości dziesiętnych i wykładniczych. Służy do przechowywania liczb dziesiętnych (liczb o wartościach zmiennoprzecinkowych) z pojedynczą precyzją.
- Zakres: 1.2E-38 do 3.4E+38
- Rozmiar: 4 bajty
- Specyfikator formatu: %F
Składnia float
The słowo kluczowe float służy do deklarowania zmiennej jako liczby zmiennoprzecinkowej:
float var_name;>
Przykład pływaka
C
połącz bazę danych Java
// 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;> }> |
>
>Wyjście
9.000000 2.500000 0.000200>
Podwójny typ danych
A Podwójny typ danych w C służy do przechowywania liczb dziesiętnych (liczb o wartościach zmiennoprzecinkowych) z podwójną precyzją. Służy do definiowania wartości numerycznych, które przechowują liczby z wartościami dziesiętnymi w języku C.
Podwójny typ danych to w zasadzie precyzyjny typ danych, który może pomieścić 64 bity liczb dziesiętnych lub zmiennoprzecinkowych. Ponieważ double ma większą precyzję w porównaniu z typem zmiennoprzecinkowym, znacznie bardziej oczywiste jest, że zajmuje dwukrotnie więcej pamięci niż typ zmiennoprzecinkowy. Może z łatwością pomieścić około 16 do 17 cyfr po lub przed przecinkiem dziesiętnym.
- Zakres: 1.7E-308 do 1.7E+308
- Rozmiar: 8 bajtów
- Specyfikator formatu: %lf
Składnia Double
Zmienną można zadeklarować jako zmiennoprzecinkową podwójnej precyzji przy użyciu metody podwójne słowo kluczowe:
double var_name;>
Przykład 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;> }> |
>
>Wyjście
123123123.000000 12.293123 2312312312.123123>
Unieważniony typ danych
Typ danych void w C służy do określenia, że nie ma żadnej wartości. Nie dostarcza wartości wyniku swojemu obiektowi wywołującemu. Nie ma żadnych wartości ani operacji. Służy do reprezentowania niczego. Void jest używany na wiele sposobów jako typ zwracany przez funkcję, argumenty funkcji jako void i wskaźniki do void .
liczba całkowita Java
Składnia:
// 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);>
Przykład Pustki
C
// C program to demonstrate> // use of void pointers> #include> int> main()> {> > int> val = 30;> > void> * ptr = &val;> > printf> (> '%d'> , *(> int> *)ptr);> > return> 0;> }> |
>
testy regresyjne w testowaniu oprogramowania
>Wyjście
30>
Rozmiar typów danych w C
Rozmiar typów danych w C zależy od rozmiaru architektury, dlatego nie możemy zdefiniować uniwersalnego rozmiaru typów danych. W tym celu język C udostępnia operator sizeof() służący do sprawdzania rozmiaru typów danych.
Przykład
C
// 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;> }> |
>
>Wyjście
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>
Aby sprawdzić swoją wiedzę na temat typów danych w C, przejdź przez Quiz na temat typów danych .