Duomenų tipai C - paaiškinamas sveikasis skaičius, slankusis kablelis ir tuštumas

Duomenų tipai C

Yra keli skirtingi duomenų C kaupimo būdai, ir jie visi yra unikalūs. Duomenų tipai, kuriuos informacija gali būti saugoma, vadinami duomenų tipais. C yra daug mažiau atlaidus duomenų tipams nei kitos kalbos. Todėl svarbu įsitikinti, kad suprantate esamus duomenų tipus, jų galimybes ir apribojimus.

Vienas iš C duomenų tipų yra tas, kad jie visiškai priklauso nuo aparatinės įrangos, kurioje naudojate savo kodą. intĮ savo kompiuterį bus mažesnis nei intant superkompiuteris, todėl žinant aparatūros dirbate apribojimus yra svarbus. Štai kodėl duomenų tipai apibrėžiami kaip intmažiausi - vertė, kaip sužinosite, yra mažiausia nuo -32767 iki 32767: tam tikrose mašinose ji galės išsaugoti dar daugiau reikšmių.

Yra dvi kategorijos, į kurias galime tai suskirstyti: sveiki skaičiai ir slankiojo kablelio skaičiai. Sveikieji skaičiai yra sveiki skaičiai. Jie gali būti teigiami, neigiami arba nuliniai. Skaičiai, tokie kaip -321, 497, 19345 ir -976812, yra visiškai teisingi sveikieji skaičiai, tačiau 4,5 ne todėl, kad 4,5 nėra sveikasis skaičius.

Slankiųjų skaičių skaičiai yra skaičiai po kablelio. Kaip ir sveikieji skaičiai, taip pat galioja -321, 497, 19345 ir -976812, bet dabar galioja ir 4.5, 0.0004, -324.984 ir kiti ne sveiki skaičiai.

C leidžia mums pasirinkti keletą skirtingų variantų su mūsų duomenų tipais, nes jie visi skirtingai saugomi kompiuteryje. Todėl svarbu žinoti kiekvieno duomenų tipo galimybes ir apribojimus, norint pasirinkti tinkamiausią.

Sveikųjų duomenų tipai

Personažai: char

charturi simbolius - raides, skyrybos ženklus ir tarpus. Kompiuteryje simboliai saugomi kaip skaičiai, todėl charturi sveikas skaičius, žyminčius simbolius. Tikrąjį vertimą apibūdina ASCII standartas. Čia yra patogus stalas, kad galėtumėte to ieškoti.

Tikrasis dydis, kaip ir visi kiti duomenų tipai C, priklauso nuo jūsų naudojamos aparatūros. Mažiausiai tai yra mažiausiai 8 bitai, taigi turėsite mažiausiai nuo 0 iki 127. Arba galite naudoti signed charnorėdami gauti bent nuo -128 iki 127.

Standartiniai sveiki skaičiai: int

Vienintelio užimamos atminties kiekis intpriklauso nuo aparatūros. Tačiau galite tikėtis, intkad dydis bus bent 16 bitų. Tai reiškia, kad jis gali saugoti reikšmes nuo -32 768 iki 32 767 arba daugiau, atsižvelgiant į aparatinę įrangą.

Kaip ir visi šie kiti duomenų tipai, yra ir unsignedvariantas, kurį galima naudoti. Tai unsigned intgali būti teigiamas ir nulis, bet ne neigiamas, todėl gali išsaugoti reikšmes nuo 0 iki 65 535 arba daugiau, atsižvelgiant į aparatinę įrangą.

Trumpi sveiki skaičiai: short

Tai nėra įprasta dažnai, tačiau gera žinoti, kad ji egzistuoja. Kaip ir „int“, jis gali saugoti nuo -32768 iki 32767. Tačiau, skirtingai nei „int“, tai yra jo galimybių apimtis. Visur, kur galite naudoti short, galite naudoti int.

Ilgesni sveikieji skaičiai: long

Į longduomenų tipo parduotuvės sveikieji skaičiai patinka int, bet suteikia įvairesnių verte atsižvelgiant daugiau atminties savikaina. Ilgai saugoma mažiausiai 32 bitai, suteikiant jai diapazoną nuo 2 147 483 648 iki 2 147 483 647. Arba naudokite unsigned longdiapazoną nuo 0 iki 4 294 967 295.

Dar ilgesni sveiki skaičiai: long long

long longDuomenų tipas yra žiauru tik apie kiekvieną prašymą, tačiau, C leis jums naudoti jį vistiek. Jis gali saugoti mažiausiai −9 223 372 036 854 775 807 iki 9 223 372 036 854 775 807. Arba gaukite dar daugiau unsigned long longpralenkimo, o tai suteiks jums bent 0–18 446 744 073 709 551 615.

Kintamojo skaičiaus duomenų tipai

Pagrindiniai slankiojo kablelio skaičiai: float

float saugoti reikia mažiausiai 32 bitų, bet suteikiame 6 dešimtųjų tikslumu nuo 1,2E-38 iki 3,4E + 38.

Dviviečiai: double

doubleužima dvigubą plūdės atmintį (taigi mažiausiai 64 bitai). Mainais už dvigubą gali būti 15 skaitmenų po kablelio nuo 2,3E-308 iki 1,7E + 308.

Gauti daugiau dvigubų asortimentų: long double

long doubleužima mažiausiai 80 bitų. Dėl to galime gauti 19 dešimtųjų tikslumu nuo 3.4E-4932 iki 1.1E + 4932.

Tinkamo tipo duomenų pasirinkimas

C leidžia pasirinkti duomenų tipą ir leidžia mums būti labai konkretiems ir sąmoningiems, kaip tai darome. Tai suteikia daug galios kodui valdyti, tačiau svarbu pasirinkti tinkamą.

Apskritai turėtumėte pasirinkti minimalų savo užduotį. Jei žinote, kad skaičiuosite nuo sveikojo skaičiaus nuo 1 iki 10, jums nereikia ilgo ir nereikia dvigubo. Jei žinote, kad niekada neturėsite neigiamų reikšmių, pasidomėkite unsignedduomenų tipų variantais. Teikdamas šią funkciją, o ne atlikdamas ją automatiškai, C sugeba sukurti labai lengvą ir efektyvų kodą. Tačiau jūs, kaip programuotojas, turite suprasti sugebėjimus ir apribojimus ir atitinkamai pasirinkti.

Norėdami patikrinti kintamojo dydį, galime naudoti operatorių sizeof (). Žr. Šią C programą, kaip naudoti įvairius duomenų tipus:

#include  int main() { int a = 1; char b ='G'; double c = 3.14; printf("Hello World!\n"); //printing the variables defined above along with their sizes printf("Hello! I am a character. My value is %c and " "my size is %lu byte.\n", b,sizeof(char)); //can use sizeof(b) above as well printf("Hello! I am an integer. My value is %d and " "my size is %lu bytes.\n", a,sizeof(int)); //can use sizeof(a) above as well printf("Hello! I am a double floating point variable." " My value is %lf and my size is %lu bytes.\n",c,sizeof(double)); //can use sizeof(c) above as well printf("Bye! See you soon. :)\n"); return 0; }

Išvestis:

Hello World!Hello! I am a character. My value is G and my size is 1 byte. Hello! I am an integer. My value is 1 and my size is 4 bytes. Hello! I am a double floating point variable. My value is 3.140000 and my size is 8 bytes. Bye! See you soon. :)

„Void“ tipas

Tušties tipas nurodo, kad nėra jokios vertės. Jis naudojamas trijų rūšių situacijose:

1. Funkcija grąžinama kaip niekinė

C yra įvairių funkcijų, kurios negrąžina jokios vertės arba galite sakyti, kad jos grįžta negaliojančios. Funkcijos be grąžinimo vertės grąžinimo tipas yra negaliojantis. Pavyzdžiui,void exit (int status);

2. Funkcijos argumentai kaip niekiniai

C yra įvairių funkcijų, kurios nepriima jokių parametrų. Funkcija be parametro gali priimti tuštumą. Pavyzdžiui,int rand(void);

3. Nurodymai anuliuoti

„Void“ tipo žymeklis rodo objekto adresą, bet ne jo tipą. Pvz., Atminties paskirstymo funkcija void *malloc( size_t size);grąžina žymeklį negaliojančiu, kurį galima perduoti bet kokiam duomenų tipui.