>> [Musika jotzen]
>> DOUG LLOYD: OK.
Osoko zenbaki lan egin dugu, Pertsonaien lan egin dugu,
Nik egin dugu lan karroza, bikoitzak, kateak, eta bools.
Nahiko agortu ditugu askoz guztiak [INAUDIBLE] mota duten
izan dira gu guztion eskura batera.
Baina orain zerbait gehiago egin nahi dugu.
Nola egiten dugu?
Zelan datu-mota ezberdinak sortzen dugu?
Horrela egin ahal izango ditugu, egiturak erabiliz.
Beraz egiturak behar bateratzeko gurekin baimendu Mota desberdinetako aldagaiak
motako aldagai bakar batean, zein bere motaren izen propioa ezarri ahal izango dugu.
Hau da, benetan sendoa gauza egin ahal izateko,
orain ezin dugu talde delako Datu mota desberdinetako elementu
elkarrekin duen konexio logikoa dute.
Hau egin ahal izan dugu arrayak Sort batera, ezta?
Ahal dugun aldagai-taldea datu-mota bereko
elkarrekin unitate handi batean memoria, array baten.
>> Baina ez dugu nahastu ahal izan Datu mota desberdinak elkarrekin.
Ezin, esan dugu, parekatu zenbaki oso bat, eta pertsonaia bat, eta bikoitza guztiak
Gauza bera, eta, deitu dute batasun bat dela.
Baina egitura, edo Maiz structs gisa aipatzen,
Benetan ahal izango dugu.
Beraz, egitura bat da, ordenatu super aldagai bat bezala.
Egin dituen aldagai bat Beste aldagai horren barruan.
Hortaz, hona hemen adibide bat egitura oso erraza da.
Hau da, sintaxia zer bilatzen ari antzeko egitura bat sortzeko auto bat da.
Orain, goazen sintaxia barrena.
Egiturari, hori da Hori dela adierazten keyword
datu-mota berri bat sortzen ari naiz hemen.
Hain zuzen ere, datu-mota baten izena da Eta egitura autoa izango da, ikusiko dugun bezala.
Baina honek punta sailkatu da konpilatzailea off hori
aldagai-multzo bat bezala hori joan Mota bereko parte hartu behar dira kontuan
Minutu batean.
>> Autoak, besterik egitura baten izena.
Berriz ere, datu-mota hemen va Eta egitura autoa, ez bakarrik autoa izateko.
Baina desberdina izan beharko duzu Anitz structs sortzen baduzu
programa berean, behar duzun Eta egitura eta egiturari artean bereiztea.
Beraz, eta egitura autoa, agian dut, gainera, egitura ikaslea, adibidez,
programa berean.
Kizkur giltza Inside dira deiturikoak eremu guztiak,
edo egiturako kide.
Beraz, zer dira gauza batzuk direla auto batek berezko?
Beno, normalean urte bat du, ha eredu baten izena, eta matrikula bat,
distantzia bat izan ohi ditu mila gainean kopuru batzuk,
eta, agian, motorraren tamaina bat.
Eta ikusiko duzunez, nahasten ari naiz Osoko zenbaki eta pertsonaiak eta bikoitzak.
Ari dira guztiak ere izango da joan datu-mota berri honen zati.
>> Azkenik, final gauza egin behar dut, ez ahaztu semicolon txiki honetan
amaieran.
Egitura definitzeko bukatu ondoren, puntu eta koma bat jarri amaieran behar dugu.
Sintaktikoak oso ohikoa da Akats, funtzio bat delako,
adibidez, besterik ez litzateke izango duzu kizkur irekia, itxi kizkur.
Zuk ez duzu jarri puntu eta koma at funtzioaren definizio baten amaieran.
Hau funtzio baten itxura definition, baina ez da,
eta, beraz, puntu eta koma ez oroigarri bat besterik ez da egin behar duzu
han jarri behar, zeren konpilatzailea izango Besterik ez
dakit zer egin.
Error oso ohikoa da ustekabean egin
aurreneko egiturak definitzeko zaren.
>> ONDO DA.
Beraz, gure egiturak definitu dugu gure programak hasieran zenbait
seguruenik ari dira joan delako funtzio askotara erabiltzeko.
Ez dugu bat zehaztu nahi funtzio baten barruan, eta egitura,
orduan sor baitezakete daitekeelako dugu egitura esparrua benetan
bakarrik funtzio horren barruan lehendik.
Seguruenik litzaidake egitura bat definitu nahi dugu beraz, erabili ahal izango dugu, funtzio bat baino gehiago ere,
edo agian bat baino gehiago elkarrekin lotuta daude fitxategiak
Gure programa bakar bat sortzeko.
Batzuetan, gainera, ordez egitura definitzeko
Oso goian non jarri duzu zure etxean libra sartutakoak zure kiloko definitzen,
adibidez, jartzea baliteke ere Aparteko dot h fitxategiak, eta gero
libra artean, zeure burua.
>> Beraz, egiturak izan dugu, baina, gaur egun, horietako barruan lortu behar dugu.
Zelan barruan lortu dugun sarbide egitura
horiek azpi-aldagai, aldagai horiek egituraren barruan existitzen dela?
Beno, izeneko zerbait egin behar dugu dot operadorea, eta horrek aukera ematen digu
egitura arloetan sartzeko.
Beraz, adibidez, demagun deklaratu dut Nire egitura datuak idatzi nonbait
Nire programa goialdean, edo, agian, sartzen dot h fitxategi hori dizkiat kiloko.
Orduz berri bat sortu nahi dut Datu mota horretako aldagai, esan dezaket,
Eta egitura autoa, nire autoa, koma.
Just like int esan izan dut x, edo kate izena koma.
>> Datu-mota hemen struct autoa da, aldagaiaren izena, nire autoa da,
eta ondoren dot operadorea erabili ahal izango dut Nire autoa hainbat arlotan sartzeko.
Beraz, nire auto esan dezaket dot urteko berdinen 2011.
Hori da, guztiz fina.
Urtea, gogoratzen baduzue, zen bezala definitu Eta egitura auto honen barruan zenbaki oso eremu
datu-mota.
Beraz, eta egitura auto datuen aldakorra duen mota, hala nola, nire autoa bezala, nire auto esan dezaket
dot urteko berdinen eta ondoren esleitu zenbaki oso balio batzuk, 2011.
Nire autoa dot plaka berdinen CS50.
Nire txartela dot distantzia 50505 semicolon berdin.
Horiek guztiak ez dira guztiz fina eta hori da
nola sartzeko dugu egitura arloetan.
Egiturak, ordea, ez da beharrezkoa pilan sortuko.
Bezalakoa, aldakorra, dugu dinamikoki esleitu ahal izango die.
Programa bat izaten badugu agian den egitura asko sortuz,
ez dakigu zenbat behar dugu,
Orduz dinamikoki behar dugu egitura horiek esleitu
Gure programa bezala exekutatzen da.
Eta hala bada gabiltza sartzeko joan Testuinguru horretan egitura baten eremuak,
gogoratzen dugun lehen erreferentzia kenduta behar egitura erakuslea,
eta gero guk dereference behin erakuslea, gero eremu horretan sartzeko aukera izango dugu.
Izanez a dugu egitura erakuslea,
Ezin dugu besterik gabe, esan erakuslea dot eremu izendatzeko eta zer bilatzen ari gara.
Ez dago aparteko dereferencing urratsa da.
Beraz, demagun ordez previous-- du
besterik gabe, aurreko adibide bezala, ordez geratuko
pila, egiturari autoa, nire autoa, puntu eta koma, eta egitura auto esan dut,
izarra, erakuslea Eta egitura auto nire autoa deitzen,
Eta egitura auto tamaina malloc berdin.
Dugu neurria irudikatu zenbat byte zure datu-mota berri hartzen.
Ez duzu zertan bakarrik erabili behar ren, zabalera, int edo char, edo edozein tamaina
eraiki-datu motak.
Konpilatzailea smart nahikoa da Irudikatu nahi byte zenbat
Zure egitura berriak eskatzen dituzte.
Beraz, neure burua malloc I memoria unitate bat big nahikoa struct auto bat eduki,
eta erakuslea lortu dut atzera oroimenaren bloke hori,
eta erakuslea da nire autoa esleitzen.
>> Orain, bada sarbidea nahi dut Nire autoa arloetan,
Lehenengo nire autoa dereference erabiliz I dereference operadorea, izarraren
Nik dugun erakusle ikusita bideoak, eta orduan ez dereference ondoren,
Orduz dot operadorea erabili ahal izango dut Nire autoa hainbat arlotan sartzeko.
Star Nire autoa dot urteko berdinen 2011.
Eragina izango luke Kasu honetan, nahi dugu,
dinamikoki dut dugulako Nire autoa esleitu.
>> Hori da mota gogaikarriak, ordea, ezta?
Badira 2-prozesuan urrats bat da gaur egun.
Orain dereference-- daukagu izar operadorea bat dugu,
eta puntu operadorea bat behar dugu.
Eta espero dezakezun bezala, zeren C programatzaileak maite modutan laburragoa
gauzak egin ahal izateko, ez da bat bide laburragoa hori egin ahal izateko.
Ez dago gezi izeneko beste operadore da, Horri esker, prozesu honetan asko errazagoa.
Modu gezi lan egiten da Lehenengo Dereferences da
ezkerreko erakuslea operadoreak alde,
eta, ondoren, dereferenced ondoren ezkerreko erakuslea,
eskuin hegaletik eremu sartzen da.
Eta, beraz, aldez aurretik moduko hau izan genuen izar nire autoa guzti hau dot,
atsegin han asko han izan zen.
Baina zer dugun ordez egin ahal izango da hau Nire autoa gezi urteko berdinen 2011.
>> Berriz ere, zer gertatzen da hemen?
Lehenik eta behin, nire autoa dereferencing naiz.
Zein berriz, erakusle bat da hemen.
Gero, ondoren Nire autoa dereferenced, I
ondoren, eremu horretan sartzeko dezake Urte, plaka, eta distantzia
nuen bezala, aurreneko aurretik Nire autoa dereference izarra,
eta sakabanatutako eremuan sartzeko.
Beraz, egiturak izan dezakezu, zuk erakusle izan daiteke egituretan,
eta sarbide moduak duzu egitura horiek arloetan,
erakusleak egin behar duzun ala ez Horietako edo aldagai beraiek.
Dot edo gezi, arabera aldakorreko nola izendatu zuten.
Naiz Doug Lloyd, hau CS50 da.