Typy údajov v "C". Programovanie v jazyku C "

Typy údajov v C sú triedy údajov, ktorých hodnoty majú podobné charakteristiky. Typ určuje interné zobrazenie údajov v pamäti. Základné typy údajov: logické, celé číslo, pohyblivé body, reťazec, ukazovatele.

Typizácia

Pri dynamickom písaní je premenná priradená k typu v momente inicializácie. Ukazuje sa, že premenná v rôznych častiach kódu môže mať rôzne typy. Dynamické písanie je podporované jazykmi Java Script, Python, Ruby, PHP. Statické písanie je opakom dynamiky. Keď sa premenná deklaruje, dostane typ, ktorý sa v budúcnosti nezmení. Jazyky C a C ++ sú presne také. Táto metóda je najvhodnejšia pre písanie zložitého kódu a vo fáze kompilácie sú vylúčené mnohé chyby.


Jazyky sú neformálne rozdelené na výrazne typizované a slabo typirovanné. Silné písanie predpokladá, že kompilátor vygeneruje chybu, keď sú očakávané a skutočné typy odlišné. x = 1 + "2"; //error - môžete pridať napríklad príklad nesprávneho zadávania znakov. x = 1 + "2"; //3 Kontroly zhody typu sa vykonávajú bezpečnostným systémom. Chyba pri písaní sa vyskytuje napríklad pri pokuse o používanie čísla ako funkcie. Existujú netypické jazyky. Na rozdiel od napísaného textu vám umožňujú vykonávať akékoľvek operácie na každom objekte.

Triedy pamäte

Premenné, bez ohľadu na ich typ, majú svoj rozsah a čas existencie.
Triedy pamäti:
  • auto;
  • statické;
  • externe;
  • registrácia.
  • Všetky premenné v jazyku C prepredvolené nastavenia sú miestne. Môžu byť použité iba v rámci funkcie alebo bloku. Po ukončení funkcie sa ich hodnota zničí. Statická premenná je tiež lokálna, ale mimo jej blok môže mať inú hodnotu a medzi voľbami funkcií sa zachová hodnota. Externá premenná je globálna. Je k dispozícii v ľubovoľnej časti kódu a dokonca aj v inom súbore. Variabilita databázy Registry odporúča, aby kompilátor uchovával hodnoty v pamäti RAM. Špecifiká typov dát v C nemusia byť špecifikované v nasledujúcich prípadoch:
  • Ak sa predpokladá použitie tejto konkrétnej triedy pamäte, všetky premenné vnútri bloku nie sú premenné, potom nie je zadaný automatický špecifikátor.
  • Všetky funkcie deklarované mimo blok alebo funkciu sú štandardne globálne, takže externý špecifikátor je voliteľný.
  • Základné typy

    Určuje int, char, float a double pre špecifikáciu jednoduchých typov. Premenné môžu byť nahradené nepodpísaným modifikátorom, podpísané, znamenie, krátke, dlhé, dlhé.

    Štandardne sú všetky čísla podpísané, resp. Môžu byť v rozmedzí len pozitívnych čísel. Ak chcete zadať znakovú premennú char ako znamienko, zapíše sa podpísaný znak. Dlhé, dlhé a krátke údaje udávajú, koľko pamäte je uložené na uloženie. Najdlhšia - dlhá, najmenej - krátka. Char je najmenší typ údajov v jazyku C. Ak chcete uložiť hodnoty, prideľuje sa iba 1 bajt pamäte. Typy premenných znakov sú zvyčajne priradené symboly, zriedka - čísla. Symbolické hodnoty sú v úvodzovkách. char a = a "; char b = 2;nedefinovaný veľkosť zaberá 4 bajty pamäte, v závislosti na architektúre počítača. int = 12; Explicitné prevod bez znamienka premenná je daná ako: unsigned int a = 12; Implicitné vyzerá ako toto: int a = 12u; Float a double určuje počet bodkou. Desatinné čísla reprezentovaný ako -2,3 alebo 334. Dvojité použitý pre väčšiu presnosť - po separátora celku a frakčnou časť ukazuje viac číslic. Tento typ zaberá viac miesta v pamäti ako hotovosť.
    Double A = 124567; Void má prázdnu hodnotu. Identifikuje funkcie, ktoré nevracia. To znamená, Špecifikátor prázdnu hodnotu v metódach argumenty. Ukazovatele, ktoré môžu prijímať akýkoľvek typ dát, tiež definovaná ako neplatné.

    logického typu BOOL

    sa používa pre overenie, podmienky a cykly. To má len dva významy:
  • platí;
  • leží.
  • Logické hodnoty môžu byť prevedené na hodnoty typu int. Praví rovnocenné jednotky, falošné - nula. typov konverzií poskytované iba medzi bool a int, inak prekladač zlyhá. int x = 123; if (x) {//Chyba: "Nemožno implicitne konvertovať typ 'int' na 'bool'"}; if (x! = 0) //C #, ako {}

    Reťazce a pole

    Pole sú komplikované dátové typy v C. MP nepracuje s reťazcami, rovnako ako to robí Dzhavaskrypt alebo Ruby. Vo všetkých reťazcov C sú polia prvkov symbolickú hodnotu. Linky končiaci nulový bajt. "

    Ad línie C: char b [] = { 's', 't', 'r', 'i', 'n', 'g', ''}; Linka tiež oznámil v komprimovanej podobe. char si [] = "reťazec"; a

    === b

    ; //, t 'celé číslo alebo znak polia sú deklarované rovnakým spôsobom: Typnázov premennej údajov [veľkosť poľa]. int a [100]; char b
    ; Podobná syntax znamená, že veľkosť int hodnoty nemôže byť väčšia ako 100 znakov. Pri vytváraní poľa je v pamäti uložený určitý počet buniek na uloženie položiek. Preto je pamäť dynamicky priradená do dátových polí procesov neznámej dimenzie alebo má byť zmenená. Multidimenzionálne sústavy sú deklarované nasledovne: int a

    ; Pri vytváraní tohto poľa je miesto pridelené v tomto prípade na uloženie dvoch vnorených polí, ktoré pozostávajú z troch prvkov. Inicializácia multidimenzionálneho poľa: int a

    = {123 456}; a

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

    Odkazové ukazovatele

    Ukazovatele sú hlavnou črtou jazyka, ponúkajú veľké možnosti pre prácu s pamäťou. Posielajú informácie o umiestnení inej premennej v pamäti. Pred použitím sú ako iné premenné deklarované ako ukazovateľ typu *. Typ - typ premennej, ukazovateľ - názov ukazovateľa.
    Na zadanie ukazovateľa na hodnotu inej premennej sa používajú odkazy. Posielajú adresu premennej a používajú sa ako bezpečný index. int a = 2; int * ukazovateľ; pointer = & a; Odkazy umožňujú pracovať s ukazovateľom ako s objektom.
    V takom prípade & & a vráti 0x7340cad2a25c, * ukazovateľ - 2, ale ukazovateľ bez "*" - 0x7340cad2a25c. Zmenou hodnoty nemeníme jej adresu, takže ukazovateľ sa bude vzťahovať aj na 0x7340cad2a25c, ale zmení sa jej význam. Ukazovateľ na iný ukazovateľ sa deklaruje vo forme int w = 100; int * x = & w; int ** z = & amp; x; Ukazovateľ do poľa funguje trochu inak.int c
    = [1, 2, 3, 4, 5], * a; Vyhlásili sme množinu celých čísel a index int a. V tomto prípade ukazovateľ nenaznačuje samotné pole, ale iba prvý prvok. Takže a = c; a a = & c ; //1 sú navzájom ekvivalentné. Teraz sa môžete odvolávať na tretí prvok poľa pomocou výrazu * (a + 3) alebo
    ; V príklade vyššie je možné poznamenať, že pridanie ukazovateľov funguje inak. Na ne môžu byť použité rôzne aritmetické operácie. Ukazovateľ na pole je označený nasledovne: char (* pa) ; Ale pole ukazovateľov vyzerá takto: char * pc ;

    Štruktúry

    Štruktúra - Typ dát v jazyku C, ktorý uľahčuje písanie a pochopenie programov pomáha zoskupovať dáta.
    Štruktúra vzorky poľa predstavuje súbor údajov, ale jeho prvky môžu mať rôzne typy a konverzia sa vykonáva podľa názvu, nie podľa indexu. {type1 variable name1; názov premennej typu1; //iní členovia údajov; } Deklarácia štrukturálnej premennej nastane po zatvorení kužeľových zátvoriek. štrukt kniha {char title
    ; char autor
    ; dvojitý cast; } kniha1 kniha2 * ptr_bk; Do poľa pristupuje operátor. Ak chcete odkázať na premennú názvu, napíšte: book1.title; Preto inicializujte premennú book1.title = "String"; Operátor "->" sa používa na označenie ukazovateľa. ptr_bk- & cast; alebo ".". (* (ptr_bk)). Druhý druh zoznamov s údajmi je enum (enum). Obsahuje celé premenné. enum {červená, modrá, zelená}; V príklade je deklarovaný anonymný prenos obsahujúci tri členy červená, modrá, zelená. Pred prístupom k elementom je deklarovaná premenná deklarovaná. enum name1 {červená,modrá, červená} budeme meno; V tomto prípade je názov name1 prenos a Várnai - názov premennej. V čase vytvárania štruktúry môžete určiť niekoľko premenných. Prenesú sa čiarou. enum meno1 {červená, modrá, červená} varname1 varname2 varname3; Prístup k prevodom členov je daný pomocou "Opether. varname.red = "červená";

    Záver

    Jazyk C poskytuje veľký súbor typov. Tvoria sa pomocou vhodných špecifikátorov. Základné typy sú rozdelené do numerického (double, float) a známky (int, char). Modifikátory podpísané a nepodpísané naznačovať prítomnosť značky pred charakteru. Modifikátory dlhé krátke a sú zodpovedné za veľkostí pamäťových buniek pre ukladanie premenných. Logický typ údajov má dve hodnoty: true a false. Pole, štruktúry sú zložité dátové typy. Ukazovateľ pracuje s adresou premennej, na ktorú odkazuje.

    Súvisiace publikácie