Vrste podatkov v "C". C programiranje

7. 3. 2020

Tipi podatkov v C, razred podatkov, katerih vrednosti imajo podobne značilnosti. Tip določa notranjo predstavitev podatkov v pomnilniku. Najbolj osnovni podatkovni tipi so boolean, celo število, plavajoča točka, niz, kazalci.

Tipkanje

Z dinamičnim tipkanjem je spremenljivka povezana s tipom v času inicializacije. Izkazalo se je, da ima lahko spremenljivka v različnih delih kode različne vrste. Podpora za dinamično tipkanje Java skript Python, Ruby, PHP.

Statična tipizacija je nasprotna dinamiki. Po deklaraciji spremenljivka prejme tip, ki se ne spremeni naprej. C in C ++ jeziki so popolnoma taki. Ta metoda je najprimernejša za pisanje kompleksne kode in veliko napak se odpravi v fazi zbiranja.

Tipi podatkov

Jeziki so neformalno razdeljeni na močno tipizirane in šibko tipizirane. Močno tipkanje pomeni, da bo prevajalnik ustvaril napako, če se pričakovane in dejanske vrste ne ujemajo.

x = 1 + "2"; // napaka - številki ne morete dodati znaka

Primer šibkega tipkanja.

x = 1 + "2"; 3

Homologacijske preglede opravi varnostni sistem tipa. Do tipkarske napake pride npr. Pri poskusu uporabe številke kot funkcije. Obstajajo netipirani jeziki. V nasprotju s tipiziranimi omogočajo izvajanje vseh operacij na vsakem predmetu.

Pomnilniški razredi

Spremenljivke, ne glede na njihovo vrsto, imajo svoj obseg in čas obstoja.

Koda C

Razredi pomnilnika:

  • avto;
  • statična;
  • zunanji;
  • register.

Vse spremenljivke v jeziku C so privzeto lokalne. Uporabljajo se lahko samo znotraj funkcije ali bloka. Po zaključku funkcije se njihova vrednost uniči.

Statična spremenljivka je tudi lokalna, vendar ima lahko zunaj njenega bloka drugačno vrednost, med funkcijskimi klici pa se vrednost ohrani.

Zunanja spremenljivka je globalna. Na voljo je v katerem koli delu kode in celo v drugi datoteki.

Register spremenljivka priporoča, da prevajalnik shrani vrednost v RAM.

Specifikacije podatkovnih tipov v C v takih primerih ni mogoče navesti:

  1. Vse spremenljivke znotraj bloka niso spremenljivke oziroma, če se predpostavlja uporaba tega posebnega razreda pomnilnika, ni določen samodejni specifikator.
  2. Vse funkcije, razglašene izven bloka ali funkcije, so privzeto globalne, zato je zunanji specifikator neobvezen.

Osnovne vrste

Če želite določiti preproste vrste, podajte kvalifikatorje int, char, float ali double. Spremenljivke so lahko nadomestni modifikatorji nepodpisani (podpisani), podpisani (podpisani), kratki, dolgi, dolgi.

Osnovne vrste

Privzeto so vse številke podpisane, lahko so v območju samo pozitivnih števil. Če želite določiti spremenljivko tipa char kot podpisano, je napisana podpisana oznaka. Dolga, dolga in kratka oznaka, koliko pomnilnika je prostora za shranjevanje. Največji je dolg, najmanjši pa je kratek.

Char je najmanjši tip podatkov v C. Za shranjevanje vrednosti je dodeljen samo 1 bajt pomnilnika. Spremenljivke znakovnega tipa so običajno dodeljene znaki, manj pogosto - številke. Vrednosti znakov so navedene.

char a = “a”;

char b = 2;

Tip int shranjuje cela števila, njegova velikost ni definirana - potrebuje do 4 bajte pomnilnika, odvisno od arhitekture računalnika.

int a = 12;

Izrecna pretvorba nepodpisane spremenljivke je podana kot:

nepodpisan int = 12;

Implicitno izgleda takole:

int a = 12u;

Float in dvojno določanje številk s piko. Float številke so predstavljene kot -2.3 ali 3.34. Dvojno se uporablja za večjo natančnost - po decimalnem ločilu je prikazanih več številk. Ta vrsta zavzema več pomnilnika kot float.

dvojno = 12.4567;

Void je nič. Opredeljuje funkcije, ki ne vrnejo ničesar. S tem kvalifikatorjem je v argumentih metod podana prazna vrednost. Kazalci, ki lahko sprejmejo kakršnekoli podatke, so prav tako opredeljeni kot praznine.

Boolean Boolean Type

Uporablja se pri pogojnih pregledih in ciklih. Ima samo dva pomena:

  • resnico;
  • laž
Resnična laž

Logične vrednosti lahko pretvorimo v vrednost int. Resnica je enaka eni, napačna na nič. Pretvorba tipa je zagotovljena samo med bool in int, sicer bo prevajalnik ustvaril napako.

int x = 123;

if (x) {// Napaka: "Ne morem implicitno pretvoriti tipa 'int' v 'bool'"

};

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

{

}

Nizi in nizi

Nizi so kompleksne vrste, podane v C. PL ne deluje z nizi na enak način kot Javascript ali Ruby. V C so vsi nizi nizi elementov znakovne vrednosti. Nizi se končajo z ničelnim bajtom »«.

Kaj so nizi

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

Niz je tudi deklariran v obliki povzetka.

char a [] = "niz";

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

Celotne ali znakovne matrike so deklarirane na enak način: ime spremenljivke podatkovnega tipa [velikost polja].

int a [100];

char b [5];

Podobna skladnja kaže, da velikost vrednosti int ne sme biti večja od 100 znakov. Pri ustvarjanju matrike so v pomnilniku rezervirane številne celice za shranjevanje elementov. Zato je za obdelavo podatkovnih nizov z neznano dimenzionalnostjo ali tisto, ki se bo spremenila, pomnilnik dinamično dodeljen.

Večdimenzionalni nizi so razglašeni tako:

int a [2] [3];

Pri ustvarjanju tega polja je v tem primeru dodeljen prostor za shranjevanje dveh ugnezdenih nizov, ki so sestavljeni iz treh elementov.

Inicializacija večdimenzionalnega polja:

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

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

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

Povezave in kazalci

Kazalci - glavna značilnost jezika, ki odpirajo priložnosti za delo s spominom. Prenesejo informacije o lokaciji druge spremenljivke v spominu. Pred uporabo so, tako kot druge spremenljivke, deklarirane v obliki tipskega kazalca. Tip je vrsta spremenljivke, kazalec je ime kazalca.

Vrste kazalcev

Za nastavitev kazalca na vrednost druge spremenljivke se uporabljajo povezave. Prenašajo naslov spremenljivke in se uporabljajo kot varen kazalec.

int a = 2;

int * kazalec;

kazalec = & a;

Povezave vam omogočajo, da delate s kazalcem kot z objektom.

Povezave v C

V tem primeru & a bo vrnil 0x7340cad2a25c, * kazalec - 2, vendar bo kazalec brez »*« vrnil 0x7340cad2a25c.

S spreminjanjem vrednosti ne spreminjamo njegovega naslova, zato se bo kazalec nanašal tudi na 0x7340cad2a25c, vendar bo spremenil njegovo vrednost.

Kazalec na drug kazalec je deklariran v obliki:

int w = 100;

int * x = & w;

int ** z = & x;

Kazalec na polje deluje na nekoliko drugačen način.

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

Izjavili smo niz celih števil in kazalec int a.

V tem primeru kazalec ne kaže na matriko, ampak samo na njen prvi element. Tako

a = c;

in

a = & c [0]; 1

enakovredni.

Zdaj se lahko z izrazom sklicujete na tretji element matrike

* (a + 3)

ali

a [3];

V zgornjem primeru lahko vidite, da dodatek kazalca deluje na drugačen način. Na njih se lahko uporabijo različne aritmetične operacije.

Kazalec na matriko je podan na naslednji način:

char (* pa) [10];

Toda niz kazalcev izgleda takole:

char * pc [10];

Strukture

Struktura je vrsta podatkov v C, ki olajša pisanje in razumevanje programov, pomaga pri združevanju podatkov.

Strukture v C

Struktura, kot je matrika, predstavlja zbirko podatkov, vendar so lahko njeni elementi drugačne vrste, sklic pa je narejen po imenu, ne po indeksu.

{

type1 spremenljivo_ime1;

type1 spremenljivo_ime1;

// drugi člani podatkov;

}

Strukturna spremenljivka je deklarirana po zaprtju zavitih oklepajev.

book book

{

char naslov [20];

avtor avtorja [30];

dvojno ulivanje;

} book1, book2, * ptr_bk;

Dostop do polj je zagotovljen z operaterjem “.”. Za dostop do naslova spremenljivke pišemo:

book1.title;

Zato spremenljivko inicializiramo

book1.title = “String”;

Za sklicevanje na kazalce uporabite operator "->".

ptr_bk-> cast;

ali operator ".".

(* (ptr_bk)).

Druga vrsta seznamov s tem je seznam (enumeracija). Vsebuje celo število spremenljivk.

enum {rdeča, modra, zelena};

Primer navaja anonimno štetje, ki vsebuje tri člane rdeče, modre, zelene. Pred dostopom do elementov se navede enumerirana spremenljivka.

enum name1 (rdeča, modra, rdeča);

V tem primeru je ime1 ime oštevilčenja, in ime je spremenljivka. V trenutku ustvarjanja strukture lahko nastavite več spremenljivk. So ločeni z vejicami.

enum name1 {rdeča, modra, rdeča} varname1, varname2, varname3;

Dostop do članov oštevilčenja je podan z operaterjem ".".

varname.red = "rdeča";

Zaključek

C jezik zagotavlja velik nabor tipov. Oblikujejo se z ustreznimi kvalifikatorji.

Osnovni tipi so razdeljeni na številske (dvojne, float) in podpisane (int, char). Podpisani in nepodpisani modifikatorji označujejo prisotnost znaka pred simbolom. Kratki in dolgi modifikatorji so odgovorni za velikost celic v pomnilniku za shranjevanje vrednosti spremenljivk. Tip logičnih podatkov ima dve vrednosti: true in false. Nizi, strukture se nanašajo na kompleksne podatkovne tipe. Kazalec deluje z naslovom spremenljivke, na katero kaže.