Kiekvienas C kintamasis turi susietą duomenų tipą. Jis nurodo duomenų, kuriuos kintamasis gali saugoti, tipą, pvz., sveikasis skaičius, simbolis, slankusis, dvigubas ir tt Kiekvienam duomenų tipui reikia skirtingo atminties kiekio ir turi tam tikrų specifinių operacijų, kurias galima atlikti. Duomenų tipas yra duomenų rinkinys su reikšmėmis, turinčiomis fiksuotas reikšmes, reikšmę ir charakteristikas.
C duomenų tipai gali būti klasifikuojami taip:
Tipai | apibūdinimas |
---|---|
Primityvūs duomenų tipai | Primityvūs duomenų tipai yra paprasčiausi duomenų tipai, naudojami paprastoms reikšmėms, tokioms kaip sveikieji skaičiai, slankioji stulpeliai, simboliai ir kt., pateikti. |
Vartotojo nustatyti duomenų tipai | Vartotojo apibrėžtus duomenų tipus nustato pats vartotojas. |
Išvestiniai tipai | Duomenų tipai, gauti iš primityvių arba įtaisytųjų duomenų tipų, vadinami išvestiniais duomenų tipais. |
Skirtingi duomenų tipai taip pat turi skirtingus diapazonus, iki kurių jie gali saugoti skaičius. Šie diapazonai gali skirtis priklausomai nuo kompiliatoriaus. Toliau pateikiamas diapazonų sąrašas kartu su atminties reikalavimais ir formato specifikacijomis 32 bitų GCC kompiliatorius .
Duomenų tipas | Dydis (baitai) | diapazonas | Formato specifikatorius |
---|---|---|---|
trumpas tarpt | 2 | -32 768–32 767 | %hd |
nepasirašytas trumpas tarpt | 2 | nuo 0 iki 65 535 | %hu |
nepasirašytas tarpt | 4 | nuo 0 iki 4 294 967 295 | %in |
tarpt | 4 | -2 147 483 648–2 147 483 647 | %d |
ilgas tarpt | 4 | -2 147 483 648–2 147 483 647 | %ld |
nepasirašytas ilgas tarpt | 4 | nuo 0 iki 4 294 967 295 | %lu |
ilgas ilgas tarpt | 8 | -(2^63) iki (2^63)-1 | %lld |
nepasirašytas ilgas ilgas tarpt | 8 | nuo 0 iki 18 446 744 073 709 551 615 | %llu |
pasirašytas char | 1 | -128-127 | %c |
nepasirašytas char | 1 | nuo 0 iki 255 | %c |
plūdė | 4 | 1.2E-38 iki 3.4E+38 | %f |
dvigubai | 8 | 1.7E-308 iki 1.7E+308 | %lf |
ilgas dvigubas | 16 | 3.4E-4932 yra 1.1E+4932 | %Lf |
Pastaba: l ong, trumpas, pasirašytas ir nepasirašytas yra duomenų tipo modifikatorius, kurį galima naudoti su kai kuriais primityviais duomenų tipais, norint pakeisti duomenų tipo dydį arba ilgį.
Toliau pateikiami keli pagrindiniai primityvūs duomenų tipai C:
Sveikasis duomenų tipas
Sveikojo skaičiaus duomenų tipas C yra naudojamas sveikiesiems skaičiams saugoti (bet koks skaičius, įskaitant teigiamą, neigiamą ir nulį be dešimtainės dalies). Aštuontainės reikšmės, šešioliktainės reikšmės ir dešimtainės reikšmės gali būti saugomos int duomenų tipe C.
- Diapazonas: -2 147 483 648–2 147 483 647
- Dydis: 4 baitai
- Formato specifikacija: %d
Sveikojo skaičiaus sintaksė
Mes naudojamevar_vardas;
Sveikojo skaičiaus duomenų tipas taip pat gali būti naudojamas kaip
kaip išsiveržti iš amžių ciklo java
- nepasirašytas int: Unsigned int duomenų tipas C naudojamas saugoti duomenų reikšmes nuo nulio iki teigiamų skaičių, tačiau jis negali saugoti neigiamų verčių, pvz., signed int.
- trumpas int: Jis yra 2 baitais mažesnis nei int, todėl gali saugoti tik reikšmes nuo -32 768 iki 32 767.
- long int: Didesnė int duomenų tipo versija, todėl galima saugoti didesnes nei int reikšmes.
- nepasirašytas trumpasis int: Panašus santykis su trumpuoju int kaip ir unsigned int su int.
Pastaba: Sveikojo skaičiaus duomenų tipo dydis priklauso nuo kompiliatoriaus. Galime naudoti operatoriaus dydis kad patikrintumėte tikrąjį bet kokio tipo duomenų dydį.
Pavyzdys tarpt
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;> }> |
>
>Išvestis
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>
Simbolių duomenų tipas
Simbolių duomenų tipas leidžia jo kintamajame išsaugoti tik vieną simbolį. Simbolio dydis yra 1 baitas. Tai pats paprasčiausias duomenų tipas C. Jis saugo vieną simbolį ir reikalauja vieno baito atminties beveik visuose kompiliatoriuose.
- Diapazonas: (nuo -128 iki 127) arba (nuo 0 iki 255)
- Dydis: 1 baitas
- Formato specifikacija: %c
char sintaksė
The char raktinis žodis naudojamas simbolio tipo kintamajam deklaruoti:
char var_name;>
Charo pavyzdys
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;> }> |
>
np.random.rand
>Išvestis
Value of a: a Value of a after increment is: b Value of c: c>
Float duomenų tipas
C programavimo srityje float duomenų tipas naudojamas slankiojo kablelio reikšmėms saugoti. Float in C naudojamas dešimtainėms ir eksponentinėms reikšmėms saugoti. Jis naudojamas dešimtainiams skaičiams (skaičiams su slankiojo kablelio reikšmėmis) saugoti vienu tikslumu.
- Diapazonas: 1.2E-38 iki 3.4E+38
- Dydis: 4 baitai
- Formato specifikacija: %f
Plūdės sintaksė
The float raktinis žodis naudojamas deklaruoti kintamąjį kaip slankųjį kablelį:
float var_name;>
Plūdės pavyzdys
C
java pasirinkimo rūšiavimas
// 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;> }> |
>
>Išvestis
9.000000 2.500000 0.000200>
Dvigubas duomenų tipas
A Dvigubas duomenų tipas C yra naudojamas dešimtainiams skaičiams (skaičiams su slankiojo kablelio reikšmėmis) saugoti dvigubu tikslumu. Jis naudojamas apibrėžti skaitines reikšmes, kuriose yra skaičiai su dešimtainėmis reikšmėmis C.
Dvigubas duomenų tipas iš esmės yra tikslus duomenų tipas, galintis laikyti 64 bitus po kablelio arba slankiojo kablelio. Kadangi dvigubas turi didesnį tikslumą, palyginti su tuo plūduriuojančiu elementu, daug akivaizdu, kad jis užima dvigubai daugiau atminties nei slankiojo kablelio tipas. Jis gali lengvai sutalpinti apie 16–17 skaitmenų po kablelio arba prieš jį.
- Diapazonas: 1.7E-308 iki 1.7E+308
- Dydis: 8 baitai
- Formato specifikacija: %lf
Dvigubo sintaksė
Kintamasis gali būti deklaruojamas kaip dvigubo tikslumo slankusis kablelis naudojant dvigubas raktinis žodis:
double var_name;>
Dvigubo pavyzdys
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;> }> |
>
>
metodo perkrovaIšvestis
123123123.000000 12.293123 2312312312.123123>
Tuščias duomenų tipas
Tuščiųjų duomenų tipas C naudojamas nurodyti, kad nėra jokios reikšmės. Jis nepateikia rezultato vertės savo skambintojui. Jis neturi vertybių ir jokių operacijų. Jis naudojamas nieko nevaizduoti. Void naudojamas įvairiais būdais kaip funkcijos grąžinimo tipas, funkcijos argumentai kaip void ir rodyklės į negaliojančią .
Sintaksė:
// 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);>
Tuštumos pavyzdys
C
// C program to demonstrate> // use of void pointers> #include> int> main()> {> > int> val = 30;> > void> * ptr = &val;> > printf> (> '%d'> , *(> int> *)ptr);> > return> 0;> }> |
>
>Išvestis
30>
Duomenų tipų dydis C
Duomenų tipų dydis C priklauso nuo architektūros dydžio, todėl negalime apibrėžti universalaus duomenų tipų dydžio. Tam C kalba pateikia operatorių sizeof(), kad būtų galima patikrinti duomenų tipų dydį.
Pavyzdys
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;> }> |
>
"kruskal algoritmas"
>Išvestis
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>
Norėdami patikrinti savo žinias apie duomenų tipus C, eikite į Viktorina apie duomenų tipus .