Vrste podataka u "C". C programiranje

7. 3. 2020.

Tipovi podataka u C, klasa podataka čije vrijednosti imaju slične karakteristike. Tip definira unutarnje prikazivanje podataka u memoriji. Najosnovniji tipovi podataka su boolean, cijeli broj, s pomičnim zarezom, nizom, pokazivačima.

kucanje

S dinamičkim tipkanjem, varijabla je povezana s tipom u vrijeme inicijalizacije. Ispada da varijabla u različitim dijelovima koda može imati različite tipove. Dinamička podrška za tipkanje Java skripta Python, Ruby, PHP.

Statičko tipkanje je suprotno od dinamičkog. Nakon deklaracije, varijabla prima tip koji se ne mijenja dalje. C i C ++ jezici su upravo takvi. Ova metoda je najprikladnija za pisanje složenog koda, a mnoge pogreške se eliminiraju u fazi kompilacije.

Tipovi podataka

Jezici se neformalno dijele na strogo tipizirane i slabo tipizirane. Snažno tipkanje podrazumijeva da će prevodilac generirati pogrešku ako se očekivani i stvarni tipovi ne podudaraju.

x = 1 + "2"; // error - ne možete dodati znak broju

Primjer slabog tipkanja.

x = 1 + "2"; // 3

Provjere homologacije tipa provodi sigurnosni sustav tipa. Pojavljuje se pogreška tipkanja, na primjer, kada pokušavate koristiti broj kao funkciju. Postoje netipirani jezici. Za razliku od tipiziranih, one omogućuju izvođenje svih operacija na svakom objektu.

Razredi memorije

Varijable, bez obzira na vrstu, imaju svoj opseg i vrijeme postojanja.

C kod

Razredi memorije:

  • auto;
  • statična;
  • vanjski;
  • registrirajte.

Sve varijable u C jeziku su lokalne prema zadanim postavkama. Mogu se koristiti samo unutar funkcije ili bloka. Nakon završetka funkcije, njihova vrijednost se uništava.

Statička varijabla je također lokalna, ali izvan njezina bloka ona može imati različitu vrijednost, a između poziva funkcija, vrijednost je sačuvana.

Vanjska je varijabla globalna. Dostupan je u bilo kojem dijelu koda, pa čak iu drugoj datoteci.

Varijabla registra preporučuje da kompilator pohrani vrijednost u RAM.

Specifikatori tipa podataka u C ne smiju biti naznačeni u takvim slučajevima:

  1. Sve varijable unutar bloka nisu varijable, odnosno, ako se pretpostavi korištenje ove određene klase memorije, auto specifikator nije specificiran.
  2. Sve funkcije koje su deklarirane izvan bloka ili funkcije su prema zadanim postavkama globalne, tako da je extern specifikator opcionalan.

Osnovni tipovi

Da biste odredili jednostavne tipove, navedite kvalifikatore int, char, float ili double. Varijable mogu biti zamjenski modifikatori nepotpisani (potpisani), potpisani (potpisani), kratki, dugi, dugački.

Osnovni tipovi

Po zadanom, svi brojevi su potpisani, odnosno mogu biti u rasponu samo pozitivnih brojeva. Za definiranje varijable tipa char kao potpisane, zapisuje se potpisani znak. Dugi, dugi i kratki označavaju koliko je memorijskog prostora dodijeljeno za pohranu. Najveći je dugačak, najmanji je kratak.

Char je najmanji tip podataka u C. Za spremanje vrijednosti dodijeljeno je samo 1 bajt memorije. Varijable tipa znakova obično se dodjeljuju znakovima, rjeđe - brojevima. Vrijednosti znakova su navedene.

char a = "a";

char b = 2;

Tip int sprema cijele brojeve, veličina nije definirana - zauzima do 4 bajta memorije, ovisno o arhitekturi računala.

int a = 12;

Izričita konverzija nepotpisane varijable daje se kao:

nepotpisan int a = 12;

Implicitno izgleda ovako:

int a = 12u;

Plutaju i dvostruko definiraju brojeve s točkom. Float brojevi su predstavljeni kao -2.3 ili 3.34. Dvostruka se koristi za veću točnost - nakon decimalnog separatora, označava se više znamenki. Ovaj tip zauzima više memorijskog prostora od float-a.

dvostruko = 12.4567;

Void je nula. On definira funkcije koje ne vraćaju ništa. S ovim kvalifikatorom u argumentima metoda se navodi prazna vrijednost. Pokazivači koji mogu uzeti bilo koji tip podataka također su definirani kao praznine.

Boolean Boolean tip

Koristi se u uvjetnim provjerama i ciklusima. Ima samo dva značenja:

  • istinu;
  • laž
Prava laž

Logičke vrijednosti mogu se pretvoriti u int vrijednost. Istina je jednaka jednoj, lažna na nulu. Konverzija tipa osigurava se samo između boola i int, inače će prevodilac generirati pogrešku.

int x = 123;

if (x) {// Pogreška: "Ne može se implicitno pretvoriti tip 'int' u 'bool'"

};

if (x! = 0) // C # način

{

}

Nizovi i nizovi

Nizovi su složeni tipovi navedeni u C. PL ne radi s nizovima na isti način kao i Javascript ili Ruby. U C, svi nizovi su nizovi elemenata znakovne vrijednosti. Nizovi završavaju nulom bajta “”.

Što su nizovi

Deklaracija niza u C: char b [] = {'s', 't', 'r', 'i', 'n', 'g', ''};

Niz se također navodi u obliku sažetka.

char a [] = "string";

a [1] === b [1]; // 't'

Cjeloviti nizovi ili nizovi znakova deklarirani su na isti način: ime varijable tipa podataka [veličina polja].

int a [100];

char b [5];

Slična sintaksa označava da veličina int vrijednosti ne može biti veća od 100 znakova. Prilikom stvaranja niza, u memoriji je rezervirano više stanica za pohranjivanje elemenata. Stoga, za obradu nizova podataka s nepoznatom dimenzijom ili onom koja će se promijeniti, memorija se dinamički dodjeljuje.

Višedimenzionalni nizovi prijavljuju se ovako:

int a [2] [3];

Prilikom kreiranja ovog polja, dodijeljen je prostor, u ovom slučaju, za spremanje dva ugniježđena niza, koji se sastoje od tri elementa.

Pokretanje višedimenzionalnog niza:

int a [2] [3] = {1, 2, 3, 4, 5, 6};

a [1]; // [1, 2, 3]

a [2]; // [4, 5, 6]

Linkovi i pokazivači

Pokazivači - glavna značajka jezika, otvaraju mogućnosti za rad s memorijom. Oni prenose informacije o lokaciji druge varijable u memoriji. Prije uporabe, kao i druge varijable, one se deklariraju u obliku tip-pokazivača. Tip je vrsta varijable, pokazivač je ime pokazivača.

Vrste pokazivača

Da biste postavili pokazivač na vrijednost druge varijable, koriste se veze. Oni prosljeđuju adresu varijable i koriste se kao siguran pokazivač.

int a = 2;

int * pokazivač;

pointer = & a;

Linkovi vam omogućuju da radite s pokazivačem kao s objektom.

Veze na C

U ovom slučaju, & a će vratiti 0x7340cad2a25c, * pokazivač - 2, ali će pokazivač bez "*" vratiti 0x7340cad2a25c.

Promjenom vrijednosti ne mijenjamo njezinu adresu, tako da se pokazivač također odnosi na 0x7340cad2a25c, ali će promijeniti njegovu vrijednost.

Pokazivač na drugi pokazivač deklariran je u obliku:

int w = 100;

int * x = & w;

int ** z = & x;

Pokazivač na niz radi na nešto drugačiji način.

int c [5] = [1, 2, 3, 4, 5], * a;

Proglasili smo niz integer i pointer int a.

U ovom slučaju, pokazivač ne pokazuje na sam niz, već samo na njegov prvi element. Dakle,

a = c;

i

a = & c [0]; // 1

ekvivalentne jedna drugoj.

Sada se možete pozvati na treći element polja pomoću izraza

* (a + 3)

ili

a [3];

U gornjem primjeru možete vidjeti da dodavanje pokazivača radi na drugačiji način. Na njih se mogu primijeniti različite aritmetičke operacije.

Pokazivač na niz se navodi na sljedeći način:

char (* pa) [10];

Ali niz pokazivača izgleda ovako:

char * pc [10];

struktura

Struktura je vrsta podataka u C koja olakšava pisanje i razumijevanje programa, pomaže grupiranju podataka.

Strukture u C

Struktura poput niza predstavlja skup podataka, ali njegovi elementi mogu biti različitog tipa, a referenca je napravljena po imenu, a ne po indeksu.

{

type1 varijabla_ime1;

type1 varijabla_ime1;

// ostali članovi podataka;

}

Strukturna varijabla se objavljuje nakon zatvaranja kovrčavih zagrada.

struktura knjige

{

char title [20];

autor autorica [30];

dvostruki odljev;

} book1, book2, * ptr_bk;

Pristup poljima pruža operator “.”. Za pristup naslovu varijable pišemo:

book1.title;

Dakle, inicijaliziramo varijablu

book1.title = "String";

Za upućivanje na pokazivače koristite operatora "->".

ptr_bk-> cast;

ili operator ".".

(* (ptr_bk)).

Druga vrsta popisa s ovom je popis (enumeration). Sadrži cjelobrojne varijable.

enum {crvena, plava, zelena};

Primjer navodi anonimno nabrajanje koje sadrži tri člana: crveno, plavo, zeleno. Prije pristupa elementima, navodi se popisana varijabla.

enum name1 {crvena, plava, crvena} varname;

U ovom slučaju, ime1 je naziv enumeracije, a varname je ime varijable. U trenutku stvaranja strukture možete postaviti nekoliko varijabli. Oni su odvojeni zarezima.

enum name1 {crvena, plava, crvena} varname1, varname2, varname3;

Pristup članovima popisivanja određen je pomoću "."

varname.red = "crveno";

zaključak

C jezik pruža veliki skup tipova. Formiraju se pomoću odgovarajućih kvalifikatora.

Osnovni tipovi su podijeljeni na numeričke (double, float) i potpisane (int, char). Potpisani i nepotpisani modifikatori ukazuju na prisutnost znaka ispred simbola. Kratki i dugi modifikatori odgovorni su za veličinu stanica u memoriji za pohranu vrijednosti varijabli. Logički tip podataka ima dvije vrijednosti: true i false. Nizovi, strukture odnose se na složene tipove podataka. Pokazivač radi s adresom varijable na koju pokazuje.