>> HIZLARIA 1: Dezagun idazteko programa bat da izenak eman erabiltzaileari eta galderak
hiru ikasle-etxeak.
Orain, izenak eta etxe horiek gordetzeko erabili izan dugu, zer, sei aldagai.
Izenak hiru kateak, eta beste bat etxeak egiteko hiru kate,
baina dagoeneko badakigu garbitu ahal izango dugu array erabiliz ordez kodea duten,
esate baterako tamaina 3 array bat egiteko hiru izen eta array beste
tamaina 3 etxeak egiteko.
Baina bihurtzen da hau garbitu ahal izango dugu gehiago oraindik, eta benetan mantendu dutenei
izenak eta etxe batera, horrela bat Ikaslearen izena eta bere etxea
nolabait kapsulatzen dira, beraz hitz egiten dute, aldagai bera sartu.
>> Horretarako, ordea, nahi aldarrikatu behar dugu Gure datu-mota egin, gure C mota egin,
duten C egileek ez dute zertan Duela urte pentsatzea.
Hori egiteko gako-erabili ahal izango dugu typedef, batera
beste keyword egiturari.
Ikus dezagun begirada bat.
Structs.h barruan, dagoeneko dut ahaztuak hasitako
CS50 liburutegia barne.
Hurrengo naiz typedef struct idazten joan, eta, ondoren, kizkur giltza bat.
Egitura, barruan, noa joan zehaztu ikasle bat jarriko dute bat
izena katea deitu, eta beste bat etxea izeneko kate.
Orduan itxi nire giltza kizkur noa, eta zehazten duten izena,
datu-mota berri honek ikasleari izango da.
Bestela esanda, sintaxi honen bidez daukat Datu nire mota berri bat izendatu
existitzen ez duela une bat, eta datu mota honen barruan bi datuak dira
eremuak edo datuak kideak, inork izena deitzen, etxea izeneko bat, biak ere
mota katea dira.
>> Dezagun mota hau erabili en orain benetako programa batean.
Structs0.c eta, era berean, ez dut ahaztuak Hasteko nire burua dagoeneko batzuk
boilerplate kodea, eta naiz orain Datu hori erabiltzeko joan
Ikasle idatzi, honela.
Naiz lehen bat aldarrikatu joan mota ikaslearen array, dut egingo
deituko array ikasleei -
plural -
eta zehaztu egingo dut, bere tamaina izango da hiru, hain zuzen, aldez aurretik abisatu, balioa da
konstante ikasle -
hiriburuetan guztietan -
ditudan deklaratu hemen, fitxategia lehenago.
Dezagun hiru horiek baino gehiago batetik bestera orain ikasleak, eta galdetuko erabiltzaileari
beren izenak eta etxeak.
>> int i get 0, txikiagoa da i konstante hori baino, i + +.
Eta, orain, honen gorputza barrutik begizta, naiz zerbait inprimatu noa
ikaslearen izena bezala.
Naiz gero benetan gertatzen ari dela ikaslearen izena zehaztuz
ikasleek parentesi i.
Beste era batera esanda, i-garren ikaslearen nahi dut ikasleen izeneko array, baina orain
Behar duten i-garren ikaslearen at lortu nahi dut izendatzeko, eta hori egin ahal izateko, erabili noa
dute. operadorea, ordena batean lortu eremua egitura, barruan espezifikoak.
Beraz zehaztu dut ikasle parentesi i. Izen bueltan GetString balioa lortzen ().
Bien bitartean, nik inprimatu noa antzeko zerbait, ikaslearen esanez
etxea, eta orain ez dut zehaztu joan duen i-garren ikasle etxe eremua
bueltan balioa lortu beharko dei bat GetString ().
>> Orain egin dezagun zerbait hiru hauekin utzi ikasleen izenak eta etxeak,
zerbait inprimatzeko bezalako sinple esaldi batean daudelarik bakoitzean.
int i get 0, berriro baino gutxiago da i ikasleak, i + +, printf "% s% s dago.
backslash n ", eta orain utzi plug in me bi eremu horiek balioetan,
ikasleek parentesi i. izena, koma, ikasleek parentesi i. etxea, itxi
paren, puntu eta koma.
>> Eta orain gauza bat gehiago egin behar dut.
Fitxategi honen behealdean, behar dut esleitu zen memoria libratzeko
GetSring (), egindako eszenak atzean eta horrek jakina malloc deiak, ordena
esleitu memoria kateak eman Erabiltzaile motak.
Baina hau erraza da.
int i get 0, baino txikiagoa da i ikasleak, i + +, eta gorputzaren barruan
hau loop, ez dut besterik gabe joan free ikasle parentesi i. izena ematen,
eta doako ikasle parentesi i. etxea.
>> Orain, nik argi eta garbi erabiltzen ditugun hiru loops programa honetan, benetan dut
dute bakar bat erabil liteke, baina hau da, besterik manifestazio mesedetan, beraz,
dugu hiru desberdin adierazi daiteke zer egiten ari garen urratsak.
Lehen izena eta etxe bat ari gara ikasle bakoitzari, eta gero gara
inprimatzeko izena eta etxea hiru ikasle bakoitzari, eta
orduan ari gara memoria libratzeko joan ikasle bakoitzak erabiltzen.
Baina ziur asko konbinatu honetan dudan genezake Bat loop handiagoak sartu.
>> Utzi gorde en orain, konpilatu, eta programa hau exekutatu.
egin structs 0. / structs 0, ikaslearen izendatzeko, dezagun ematen David, bizi egingo zuen
Mather House, ikaslearen izen-abizenak, dezagun esan Lauren, Leverett in dut bizitzeko
Etxea, ikaslearen izena, Rob, berak egingo Kirkland House bizi.
Eta, hain zuzen, David Mather da, Lauren Leverett dago,
eta Rob Kirkland dago.