>> [Daqq tal-mużika]
>> Doug LLOYD: OK.
Imxejna ħadem ma interi, konna ħadem ma 'karattri,
konna ħadmet sufruni, jirdoppja, kordi, u bools.
Imxejna eżawriti pretty ħafna kollha tat-tipi [inaudible] li
kienu disponibbli għalina lkoll flimkien.
Imma issa rridu nagħmlu xi ħaġa aktar.
Kif nistgħu nagħmlu dan?
Kif nistgħu joħolqu tipi differenti ta 'dejta?
Nistgħu nagħmlu dan billi jużaw strutturi.
Allura istrutturi inessu biex jiġu unifikati varjabbli ta 'tipi differenti
fi wieħed, tip ġdid varjabbli, li nistgħu tassenja l-isem tip tagħha stess.
Dan huwa verament b'saħħtu ħaġa li tkun tista 'tagħmel,
għaliex nistgħu issa grupp Elementi ta 'tipi differenti ta' dejta
flimkien li jkollhom rabta loġika.
Imxejna kienu kapaċi jagħmlu dan ma arrays tip ta ', id-dritt?
Aħna varjabbli Grupp jista ' tal-istess tip ta 'dejta
flimkien f'unità kbir tal-memorja, firxa.
>> Iżda aħna ma kinux kapaċi biex tħallat up tipi differenti ta 'dejta flimkien.
Ma nistgħux, jiġifieri, par integer, u karattru, u double kollha
fl-istess ħaġa u sejħa li unità waħda.
Iżda ma 'strutturi, jew spiss imsejħa structs,
aħna fil-fatt tista '.
Allura struttura huwa tip ta 'prodotti simili varjabbli super.
Huwa varjabbli li fih varjabbli oħrajn ġewwa ta 'dan.
Allura hawnhekk eżempju ta ' struttura sempliċi ħafna.
Dan huwa dak li l-sintassi look jixtiequ joħolqu struttura għal karozza.
Issa, ejja jgħaddu mill-sintassi hawn.
Struct, dak l- keyword li jindika
li jien ħolqien ta 'tip ta' data ġdida hawn.
B'mod partikolari, l-isem tat-tip tad-data hija se tkun karozza Struct, kif Ser naraw.
Iżda dan huwa t-tip ta 'ponta off għall-kompilatur li din
bħala grupp ta 'varjabbli li ser li jiġu kkunsidrati parti mill-istess tip
fil-minuta.
>> Karozzi, biss l-isem tal-istruttura.
Għal darb'oħra, it-tip tad-data hawn se li jkun karozza Struct, mhux biss karozzi.
Imma jekk għandek different-- jekk inti toħloq structs multipli
fl-istess programm, inti għandek bżonn biex jiddistingwu bejn Struct u Istituzzjonjijiet.
Karozzi sabiex Struct, I jista 'jkollhom ukoll student Struct, per eżempju,
fl-istess programm.
Ġewwa tal-braces kaboċċi huma kollha ta 'l-oqsma hekk imsejħa,
jew membri tal-istruttura.
Allura dak li huma wħud mill-affarijiet li huma inerenti fil-karozza?
Ukoll, normalment ikollu sena, ikun isem mudell, u pjanċa liċenzja,
odometer li normalment ikollu xi numru ta 'mili fuqha,
u forsi daqs tal-magna.
U kif tista 'tara, jien taħlit up interi u l-karattri u doubles.
Huma qed kollha ser ikunu parti ta 'dan it-tip ta' dejta ġdid.
>> Fl-aħħar nett, il-ħaġa finali I bżonn tagħmel, ma ninsewx dan virgola ftit
fl-aħħar.
Wara aħna finitura tiddefinixxi l-istruttura, għandna bżonn li jitqiegħed virgola fi tmiem.
Huwa sintattika komuni ħafna żball, għaliex b'funzjoni,
per eżempju, inti biss għandek Brace kaboċċi miftuħa, Brace kaboċċi qrib.
Inti ma jpoġġux virgola fil- tmiem ta 'definizzjoni funzjoni.
Dan qisu funzjoni definizzjoni, iżda mhux,
u għalhekk il-punt u virgola hemm huwa biss tfakkira li inti
bżonn li titqiegħed hemm, għaliex l kumpilatur se kieku ma
jafu x'għandhom jagħmlu magħha.
Huwa żball komuni ħafna li aċċidentalment tagħmel
meta int l-ewwel jiddefinixxi l-istrutturi.
>> KOLLOX SEW.
Allura aħna normalment jiddefinixxu strutturi tagħna fuq nett tal-programmi tagħna
għaliex qed probabbilment se li għandhom jintużaw mill-funzjonijiet multipli.
Aħna ma rridux li jiddefinixxu Struct ġewwa ta 'funzjoni,
għaliex allura nistgħu only-- l ambitu tal-istruttura verament
jeżisti biss ġewwa ta 'dik il-funzjoni.
Aħna'd probabilment jridu jiddefinixxu struttura hekk nistgħu nużaw fil-funzjonijiet multipli,
jew forsi multipli fajls li huma marbuta flimkien
biex joħolqu programm uniku tagħna.
Kultant ukoll flok tal tiddefinixxi l-istruttura
fuq nett fejn inti tpoġġi tiegħek lira jinkludi u lira tiegħek jiddefinixxi,
per eżempju, inti tista 'tpoġġihom fil files separati dot h, li inti mbagħad
lira jinkludu yourself.
>> Allura aħna għandhom strutturi, iżda issa għandna bżonn li tikseb ġewwa minnhom.
Kif nistgħu tikseb ġewwa ta struttura għall-aċċess
Dawk is-varjabbli, dawk il-varjabbli li jeżistu ġewwa l-istruttura?
Well, aħna għandna xi ħaġa imsejħa l-dot operatur, li jippermetti
aċċess għall-oqsma ta 'l-istruttura.
Hekk per eżempju, ejja ngħidu stajt iddikjarat data istruttura tiegħi tip x'imkien
fil-quċċata tal-programm tiegħi, jew forsi fajl dot h li stajt lira inklużi.
Jekk I imbagħad nixtiequ noħolqu ġdida varjabbli ta 'dak it-tip data, nista' ngħid,
karozza Struct, karozza tiegħi, u virgola.
Eżatt bħal nista 'ngħid int x, jew isem string virgola.
>> Dejta tat-tip hawnhekk hija karozza Struct, l-isem tal-varjabbli huwa karozza tiegħi,
u mbagħad I jistgħu jużaw il-dot operatur biex aċċess għall-oqsma differenti tal-karozza tiegħi.
So I tista 'tgħid karozza tiegħi dot sena ugwali 2011.
Li perfettament multa.
Sena, jekk inti recall, kienet definita bħala qasam sħiħ ġewwa ta din il-karozza Struct
tip ta 'data.
Allura kull varjabbli tad-data karozza Istituzzjonjijiet tip, bħal karozza tiegħi, nista 'ngħid karozza tiegħi
dot sena ugwali u mbagħad tassenja huwa xi valur sħiħ, 2011.
My karozza dot pjanċa ugwali CS50.
My karta dot odometer ugwali 50505 virgola.
Kollha ta 'dawn huma perfettament multa u li
kif aħna aċċess għall- oqsma ta 'l-istruttura.
Strutturi, għalkemm, m'għandhomx bżonn li jiġu maħluqa fuq il-munzell.
Eżatt bħal kull varjabbli ieħor, aħna tista dinamiku jallokahom.
Jekk għandna programm li jista jiġġeneraw ħafna strutturi,
ma nafux kemm aħna qed tmur għall-ħtieġa,
imbagħad għandna bżonn li dinamikament jalloka dawk l-istrutturi
kif programm tagħna qed taħdem.
U hekk jekk aħna qed tmur biex jaċċessaw il- oqsma ta 'struttura fil-kuntest,
irtirar li aħna l-ewwel jeħtieġ li dereference l pointer għall-istruttura,
u mbagħad darba aħna dereference l pointer, allura nistgħu aċċess l-oqsma.
Jekk aħna biss ikollhom pointer li l-istruttura,
ma nistgħux biss jgħidu pointer dot qasam isem u jiksbu dak li aħna qed tfittex.
Hemm il-grad iżjed ta 'dereferencing.
Mela ejja ngħidu li minflok il-previous--
bħall-eżempju preċedenti, minnflok ma tiddikjara dan
fuq il-munzell, karozza Struct, my karozza, punto virgola, I say karozzi Struct,
star, pointer għal karozza Struct imsejħa karozza tiegħi,
ugwali daqs malloc tal-karozzi Struct.
Daqs tal aħna ser insemmu kemm bytes tip tiegħek tad-data ġdida tibda.
Inti ma għandekx neċessarjament biss bżonn jużaw daqs tal-wisa ', int, jew char, jew kwalunkwe
mit-tipi ta 'data ingastat.
Il kompilatur huwa intelliġenti biżżejjed biex insemmu kif ħafna bytes
huma meħtieġa mill struttura ġdida tiegħek.
So I malloc myself unità ta 'memorja kbir biżżejjed biex iżomm karozza Struct,
u niġi lura pointer għal dak blokk ta 'memorja,
u li pointer huwa assenjat għal karozza tiegħi.
>> Issa, jekk irrid aċċess l-oqsma tal-karozza tiegħi,
I ewwel dereference karozza tiegħi jużaw l-operatur dereference, star
li aħna stajt tidher mill-pointers videos, u mbagħad wara I dereference,
imbagħad I jistgħu jużaw il-dot operatur biex aċċess għall-oqsma differenti tal-karozza tiegħi.
Star karozza tiegħi dot sena ugwali 2011.
Li jkollha l-effett irridu f'dan il-każ,
għaliex aħna ħadthom dinamiku allokati karozza tiegħi.
>> C'est tip ta annoying, għalkemm, id-dritt?
Hemm proċess 2 pass issa.
Issa rridu dereference-- għandna operatur stilla,
u għandna operatur dot.
U kif inti tista 'tistenna, minħabba Programmaturi Ċ imħabba modi iqsar
biex tagħmel affarijiet, hemm mod iqsar biex tagħmel dan.
Hemm operatur oħra msejħa vleġġa, li tagħmel dan il-proċess ħafna aktar faċli.
Il-mod vleġġa jaħdem huwa it ewwel dereferences
l-pointer fuq ix-xellug naħa tal-operatur,
u mbagħad, wara li dereferenced l-pointer fuq ix-xellug,
dan aċċessi-qasam fuq il-lemin.
U hekk qabel kellna dan it-tip ta STAR karozza tiegħi dot dan kollu Jittieħed,
bħal kien hemm ħafna għaddej hemmhekk.
Imma dak li aħna minflok tista 'tagħmel huwa this-- tiegħi sena vleġġa karozza ugwali 2011.
>> Għal darb'oħra, dak li qed jiġri hawn?
L-ewwel, jien dereferencing karozza tiegħi.
Li għal darb'oħra, huwa pointer hawn.
Imbagħad, wara li dereferenced karozza tiegħi, I
allura tista 'aċċess l-oqsma sena, pjanċa, u odometer
daqstant I tista qabel ma l-ewwel star użati biex dereference karozza tiegħi,
u dot biex jaċċessaw il-qasam.
Allura inti jista 'jkollhom strutturi, inti jista 'jkollhom pointers għal strutturi,
u inti għandek modi biex aċċess l-oqsma ta 'dawk l-istrutturi,
jekk għandek pointers għal minnhom jew il-varjabbli nfushom.
Dot jew vleġġa, jiddependi fuq kif il-varjabbli kien iddikjarat.
Jien Doug Lloyd, dan huwa CS50.