Vrste podataka u "C". Programiranje na jeziku C "

Tipovi podataka u C su klasa podataka čije vrijednosti imaju slične karakteristike. Tip određuje internu reprezentaciju podataka u memoriji. Osnovni tipovi podataka: logički, cijeli broj, plutajuća točka, niz, pokazivači.

Tipizacija

Kod dinamičkog tipkanja, varijabla je povezana s tipom u trenutku inicijalizacije. Ispada da varijabla u različitim dijelovima koda može imati različite vrste. Dinamičko tipkanje podržavaju Java Script, Python, Ruby, PHP. Statičko tipkanje je suprotno od dinamičkog. Kada je varijabla deklarirana, ona prima tip koji se ne mijenja u budućnosti. Jezici C i C ++ su upravo to. Ova metoda je najpogodnija za pisanje kompliciranog koda, au fazi kompilacije isključene su mnoge pogreške.


Jezici se neformalno dijele na strogo tipizirane i slabo tipirovane. Snažno tipkanje pretpostavlja da će prevodilac generirati pogrešku kada su očekivani i stvarni tipovi različiti. x = 1 + "2"; //error - možete dodati primjer primjer lošeg tipkanja znakova. x = 1 + "2"; //3 Sigurnosni sustav provodi provjere podudarnosti tipova. Došlo je do pogreške prilikom tipkanja, na primjer, kada pokušavate koristiti broj kao funkciju. Postoje netipirani jezici. Za razliku od tipiziranih, omogućuju vam izvođenje svih operacija na svakom objektu.

Klase memorije

Varijable, bez obzira na vrstu, imaju svoj opseg i vrijeme postojanja.
Razredi pamćenja:
  • automobil;
  • statički;
  • vanjski;
  • registrirati.
  • Sve varijable u jeziku C zadefault su lokalni. 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 njenog bloka može imati različitu vrijednost, a između funkcija poziva vrijednost se zadržava. Vanjska varijabla je globalna. Dostupan je u bilo kojem dijelu koda, pa čak iu drugoj datoteci. Varijabla registra preporučuje da kompilator pohrani vrijednosti u RAM. Specifičnosti tipova podataka u C ne mogu se specificirati u sljedećim slučajevima:
  • Sve varijable unutar bloka nisu varijable, odnosno, ako je predviđena uporaba ove određene klase memorije, tada nije specificiran automatski specifikator.
  • Sve funkcije deklarirane izvan bloka ili funkcije su zadane globalne, tako da je vanjski specifikator opcionalan.
  • Osnovni tipovi

    Specificira int, char, float i double za specifikaciju jednostavnih tipova. Varijable mogu biti zamijenjene s nepotpisanim modifikatorom, potpisanim, znakom, kratkim, dugim, dugim.

    Po defaultu, svi brojevi su potpisani, odnosno mogu biti u rasponu samo pozitivnih brojeva. Za određivanje znakovne varijable char kao znaka upisuje se potpisani znak. Dugi, dugi i kratki označavaju koliko je memorijskog prostora pohranjeno za pohranu. Većina - duga, najmanje - kratka. Char je najmanji tip podataka na C jeziku. Za pohranjivanje vrijednosti dodijeljeno je samo 1 bajt memorije. Promjenjivi tipovi znakova obično se dodjeljuju simbolima, rijetko - brojevima. Simboličke vrijednosti su u navodnicima. char a = a "; char b = 2; Tip int sprema cijele brojeve, njegoveveličina nije definirana zauzima do 4 bajta memorije, ovisno o arhitekturi računala. int a = 12; Izričita konverzija nepotpisane varijable daje se na sljedeći način: unsigned int a = 12; Implicitno izgleda ovako: int a = 12u; Plutaju i dvostruko definiraju brojeve točkom. Brojevi s plovkom prikazani su kao -2.3 ili 334. Dvostruka se koristi za veću točnost - nakon graničnika cijelog i djelomičnog dijela, ima više znamenki. Ovaj tip zauzima više prostora za pohranu od plutajućeg.
    dvostruko a = 124567; Void ima praznu vrijednost. On definira funkcije koje ne vraćaju ništa. Ovaj specifikator specificira praznu vrijednost u argumentima metode. Indikatori koji mogu prihvatiti bilo koju vrstu podataka također su označeni kao nevažeći.

    Logički tip Bool

    Koristi se za provjeru uvjeta i ciklusa. Ima samo dva značenja:
  • istinu;
  • .
  • Logičke vrijednosti mogu se pretvoriti u int vrijednosti. Istina je jednaka jednom, lažna - nula. Konverzija tipova osigurana je samo između bool i int, inače će prevodilac generirati pogrešku. int x = 123; if (x) {//Pogreška: "Ne može implicitno pretvoriti tip 'int' u 'bool'"}; if (x! = 0) //C # način {}

    Linije i nizovi

    Nizovi pripadaju složenim tipovima podataka u C. MP ne radi s nizovima kao što Javascript ili Ruby radi. U C, svi redovi su nizovi simboličkih elemenata. Linije završavaju nulom bajta "".

    Objave za C linije: char b [] = {'s', t, r, i, n, g, i}; Linija je također objavljena u sažetom obliku. char a [] = "string"; a

    === b

    ; //'t' Cjeloviti nizovi ili nizovi znakova deklarirani su na isti način: typeime varijable podataka [veličina polja]. int a [100]; char b
    ; Slična sintaksa označava da veličina int vrijednosti ne može biti veća od 100 znakova. Prilikom stvaranja niza, određeni broj stanica pohranjuje se u memoriju za spremanje stavki. Stoga se memorija dinamički dodjeljuje za obradu nizova podataka nepoznate dimenzije ili za promjenu. Višedimenzionalni nizovi su deklarirani na sljedeći način: int a

    ; Prilikom kreiranja ovog niza, u ovom slučaju se dodjeljuje mjesto za spremanje dva ugnježđena polja koja se sastoje od tri elementa. Inicijalizacija višedimenzionalnog polja: int a

    = {123 456}; a

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

    Link pokazivači

    Pokazivači su glavna značajka jezika, oni nude velike mogućnosti za rad s memorijom. Oni prenose informacije o lokaciji druge varijable u memoriji. Prije uporabe, kao i druge varijable, deklarirani su kao tip * pokazivača. Tip - tip varijable, pointer - naziv pokazivača.
    Za određivanje pokazivača na vrijednost druge varijable, koriste se reference. Oni prenose adresu varijable i koriste se kao siguran indeks. int a = 2; int * pokazivač; pointer = & amp; a; Linkovi vam omogućuju da radite s pokazivačem, kao s objektom.
    U ovom slučaju, & amp; a će vratiti 0x7340cad2a25c, * pokazivač - 2, ali pokazivač bez "*" - 0x7340cad2a25c. Promjenom vrijednosti ne mijenjamo adresu, pa će se pokazivač također odnositi na 0x7340cad2a25c, ali će promijeniti njegovo značenje. Pokazivač na drugi pokazivač deklariran je u obliku int w = 100; int * x = & amp; w; int ** z = & x; Pokazivač na niz radi malo drugačije.int c
    = [1, 2, 3, 4, 5], * a; Deklarirali smo niz prirodnih brojeva i indeks int. U ovom slučaju pokazivač ne označava sam niz, već samo njegov prvi element. Dakle, a = c; i a = & c ; //1 su međusobno ekvivalentni. Sada se možete pozvati na treći element niza koristeći izraz * (a + 3) ili a
    ; U gornjem primjeru može se primijetiti da dodavanje pokazivača radi drugačije. Na njih se mogu primijeniti različite aritmetičke operacije. Pokazivač na polje označen je na sljedeći način: char (* pa) ; Ali niz pokazivača izgleda ovako: char * pc ;

    Strukture

    Struktura - Tip podataka u C jeziku koji olakšava pisanje i razumijevanje programa pomaže grupiranju podataka.
    Struktura uzorka niza predstavlja skup podataka, ali njegovi elementi mogu biti različitih tipova, a konverzija se izvodi po imenu, a ne po indeksu. {type1 varijabla name1; varijabla type1 ime1; //ostali članovi podataka; } Deklaracija strukturne varijable događa se nakon zatvaranja kovrčavih zagrada. struct knjiga {naslov naslova
    ; autor autor
    ; dvostruki odljev; } book1 book2 * ptr_bk; Poljima pristupa operator ".". Da biste uputili na varijablu naslova, napišite: book1.title; Dakle, inicijalizirajte varijablu book1.title = "String"; Operator "->" koristi se za upućivanje na pokazivač. ptr_bk- & gt; cast; ili "." operator. (* (ptr_bk)). Druga vrsta popisa s podacima je enum (enum). Sadrži cjelobrojne varijable. enum {crvena, plava, zelena}; U primjeru se navodi anonimni prijenos koji sadrži tri člana crvenom, plavom, zelenom. Prije pristupa elementima deklarirana je varijabla nabrajanja. enum name1 {crvena,plava, crvena} imenovat ćemo; U ovom slučaju ime1 je naziv prijenosa, a varname je ime varijable. U vrijeme stvaranja strukture možete navesti nekoliko varijabli. Prenose se zarezom. enum name1 {crvena, plava, crvena} varname1 varname2 varname3; Pristup članovima za prijenos daje se pomoću tipke "." varname.red = "crveno";

    Zaključak

    C jezik pruža veliki skup tipova. Formiraju se uz pomoć odgovarajućih specifikatora. Osnovni tipovi su podijeljeni u brojeve (double, float) i znakove (int, char). Modifikatori potpisani i nepotpisani ukazuju na prisutnost znaka prije simbola. Modifikatori su dugi i odgovorni su za veličinu stanica u memoriji za pohranu vrijednosti varijabli. Logički tip podataka ima dvije vrijednosti: true i false. Nizovi, strukture su složeni tipovi podataka. Pokazivač radi s adresom varijable na koju se odnosi.

    Povezane publikacije