>> [Tónlist spila]
>> DAVIN: Allt í lagi, krakkar.
Þannig að þetta er umfjöllun fyrir fyrsta prófið.
Eru allir tilbúnir til prófið á miðvikudag?
ALLISON: Woo!
Nemandi: Woo!
DAVIN: Já.
ALLISON: Já!
DAVIN: Þessi strákur er tilbúin.
Þessi strákur, tvær hendur, gott.
Svo quiz endurskoðun í dag, það er að fara að vera um klukkutíma og hálfan.
Við erum að fara að fara yfir alla helstu hugtök sem þú ættir að vita um próf.
Við erum að fara að fara yfir nokkur erfðaskrá með hönd dæmi, sem eru á hverju prófi.
Og ef þú hefur einhverjar spurningar, ekki hika við að hækka hönd þína og allt
eins og þessi.
Jæja, flutningum um prófið eru á netinu.
Þannig að við erum að fara að skipta fólki upp í mismunandi herbergjum.
Það er byggt á nafn þeirra.
Svo ef þú hefur einhverjar spurningar um hvar að fara eða um hvaða efni er, eins og,
opinber orð um hvað er að gerast að vera á próf, athuga á netinu.
Og það er allt upp til dagsetning.
Þannig að ef það eru engar spurningar til byrja með, við erum að fara að byrja.
Og hér er Allison.
>> [Claps]
>> ALLISON: OK, takk, Rob.
Þakka það.
Davin hefði snúið að þessu.
Þetta er ekki tæmandi listi yfir efni, eins og alltaf, eins Davin bara sagt.
Samráð skjöl netinu um spurningakeppni núll.
En þetta er nokkuð much-- það er á kennsluáætlun
er allt sem við höfum farið yfir hingað til.
Allt hér er sanngjarn leikur, auk allt annað
sem kunna að hafa verið nefndar í fyrirlestri.
>> Kafla minn, hér er bara fullt af endurskoðun.
There ert a par æfingar að þið gæti virkað á.
En að mestu leyti, við virkilega langar að fá að Davin með þeim kóða
af hendi æfingar.
>> Svo ég er að fara að fljúga í gegnum þetta.
Ef þú hefur einhverjar spurningar, stoppa mig.
Hækka hönd þína.
Ég lofa að ég mun sennilega sjá þig.
Ef ekki, bara veifa því í kring.
Ég ætla að vera að tala hratt.
Ég vona að allir er í lagi með það.
>> OK, sérstök orð, Davin augljóslega gleymdi að fletta í gegnum þessar skyggnur.
[Hlær] Þú ert í vandræðum, maður.
Svo ábendingar fyrir spurningakeppni núll, æfa kóðun á pappír.
Þú krakkar eru að fara að fá smá æfa með að nú með Davin,
svo þú verður ekki alveg sjálfur.
Ég held að við erum í raun að fara gegnum þessar tvær aðgerðir.
Svo þú munt vera vel undirbúin þar.
>> Þekki vandamál setur þinn.
Það hafa verið spurningar á fyrri Skyndipróf
sem mun spyrja þig, til dæmis, að kóða upp eitthvað mjög svipað Mario.
Svo að vera mjög kunnugur vandamálið setur, sem og
sem þeim spurningum sem við biðjum þig í upphafi á forminu
sem þú fyllir út, mun þjóna þér mjög vel.
>> Gera fyrri quiz undir tíminn þvingun.
Þessar Skyndipróf eru langir.
Tíminn fer mjög hratt.
Og oft, þú veist ekki hvernig hratt það fer þar til þú raunverulega
setja þig undir þeim þvingun.
Svo ef þú getur bara móta út, þú veist, 75 mínútur, annað hvort í kvöld eða á morgun
að taka einn af þessum Skyndipróf undir að þú verður að vera í miklu betra form.
>> Og einnig, búa tilvísun lak.
Mundu, þú færð einn síðu framan og aftan
sem viðmiðun fyrir prófið á miðvikudag.
Búa sem er frábær leið til að læra.
Nokkuð sem þú ert í vandræðum með þú vilt hafa á það.
Nokkuð sem TFS þínar hafa verið, eins og þetta er mjög mikilvægt.
Þú ættir að vita þetta, er Kannski það sem þú ert með á þarna
ef þú ert ekki þá utanbókar.
Jafnvel ef þú veist þá raunverulega Jæja, stundum hafa það á það
er bara svona þægindi fyrir þig, sem ég veit Skyndipróf eru streituvaldandi.
Svo allir þægindi færðu getur hjálpað.
Allt í lagi, einnig að fá svefn og borða og eins venjulegum hlutum
að við segja þér fyrir Skyndipróf.
>> Svo byrja burt auðvelt, gögn gerðir og stærðir.
Eins og ég sagði, þetta er bara að fara að mér að henda mikið af efni
upp hér að þú ættir að vita.
Þannig að við höfum Sérstafir okkar sem eru ein bæti, ints
sem eru fjórir bytes, langur langur, sem eru átta bæti.
Í grundvallaratriðum, það er bara þú vilja til að halda stærri heiltölur.
Fljóta, sem eru fjögur, tveggja manna, sem eru átta.
Aftur, bara gefur þér meira pláss fyrir flotum þínum.
Og þá tegund stjörnu, svo allir bendilinn 32-bita vél,
sem er allt sem þú krakkar þurfa að vita, er fjórar bæti.
>> Þannig að allir hlutir sem þú ættir vita, kannski hluti
þú vilt hafa á Tilvísun blaðsins.
OK, tvöfaldur viðskipti til tvöfaldur, ummyndun
til sextánskur, fram og til baka, Allir hlutir sem þú ættir að vita.
Svo frá tvöfaldur í fjölda.
Þú krakkar vilja til að taka fljótur mínútu og reyna að reikna út hver af þessum
og þá segja mér hvað þeir eru?
>> Ég hef líka nammi í töskuna mína, svo einhver sem svarar fær nammi, við the vegur.
Og ég hef fullt af henni.
Leyfðu mér grípa þetta.
Ég ætla að gefa þetta til Gabe.
Svo er hægt að skila út sælgæti að hver er ágætur og samstarfsverkefni.
>> OK, sá ég hönd fyrir aftan.
>> Nemandi: Já, sá fyrsti er 42.
>> ALLISON: Já, fyrst maður er 42, rétt.
Nemandi: [inaudible].
[Hlátur]
ALLISON: Second einn, það aftur í gulum?
Nemandi: 110.010.
ALLISON: Rétt, og þetta síðasta, hér niðri á botn?
Einnig, já, þú veist vilja?
Bara henda út nammi.
Hvernig um nammi fyrir alla?
>> Nemandi: [inaudible] þegar við erum búin.
>> ALLISON: SHH.
Og svo það síðasta.
Hver vill svara?
Rétt þar.
>> Nemandi: 11100.
>> ALLISON: 11100, líta á það.
Til hamingju, frábært starf, allir.
OK, allir konar skilja Ferlið til að gera þetta?
Þú hefur, að fara frá tvöfaldur í fjölda hvernig ég tilhneigingu til að gera það, er að skrifa út
völd 2.
Svo ég segi, OK, 0 sinnum 2 0, svo það er 0, 1 sinnum 2 fyrstu,
er 2 fara áfram þannig.
Er einhver að vilja mig til að skýrt fara í gegnum dæmi um tvöfaldur?
OK, flott.
>> Decimal til keyrsluskránni er mjög svipuð.
ÉG hafa tilhneigingu til að skrifa út völd 2.
Byrja með einn sem er mestur, en ekki fara framhjá aukastaf
að þú ert að leita að.
Og svo konar vinna þig afturábak bæta upp hlutina eins og þörf krefur.
>> Og þá með að auki er það bara eins og venjulega viðbót.
Ef þú hefur einhvern tíma að ræða þar sem þú ert bæta við tveimur 1s, það verður augljóslega 2.
2 í tvöfaldur er nú 1 0 þannig að þú þarft að bera 1 inn á næsta dálki.
Cool.
>> Sextánskur, þetta gæti verið eitthvað sem er örlítið minna þekki.
Svo eins Rob var bara að segja mér fyrirfram, bragð hans fyrir þetta
er bara að kljúfa það upp í fjögur bæti klumpur, OK?
Bits, því miður.
Sjá?
Takk Rob.
Þetta er ástæða þess að þú ert hér. [Hávaða] OK, svo við brjóta bara það upp
í fjórum bitum klumpur.
Svo með tvöfaldur til sextánskur, við líta á fyrstu 4,
sem er ef við höfum fjóra 1s í a róður, hvaða tala er það tákn?
>> STUDENT: F.
>> ALLISON: Svo í þessu tilfelli, hvað er 11111111 or-- já?
Nemandi: FF.
ALLISON: Perfect, FF.
Svo mikill, nammi fyrir þig.
Nú, því hvernig sextánskur að tvöfaldur, við hugsa bara um það svona með öfugum formerkjum.
Fyrir hvert númer eða bréfi að við höfum í sextánskur okkar,
bara breyta það til fjögurra hluti þess [Hlær] til fjögurra bita umreikning.
Svo 5, í þessu tilfelli, hvað er 5 ef við erum fulltrúar það með fjórum bitum?
>> Nemandi: 010?
Mm-HM.
Og þá A, sem er raun 10, væri?
1010.
Þannig að við höfum það, hér.
Svo breyta milli sextánskur og tvöfaldur í raun er ekki svo slæmt.
Ef þú horfir á það í fjórum bita klumpur, fara að vera gullna.
Everyone-- já?
>> Rob: Þetta er kjánalegt, en ég man alltaf
A, þar A er að vera 10.
Og tvöfaldur er bara 10 10, so--
>> ALLISON: Ah, þar sem við förum.
>> Ræna: Hey.
>> ALLISON: Hey, nammi fyrir Rob.
Það er ekki súkkulaði efni þar.
Svo er hægt að hafa nokkrar.
Svo ASCII stærðfræði.
Hegða sér.
Svo ASCII Stærðfræði, eins og þú krakkar líklega vel muna
p sett 2 með Visioneer og Caesar, þú gerðir mikið af þessu.
Mundu, persónurnar eru grundvallaratriðum bara númer.
Þannig að við getum gert stærðfræði með þeim, bara eins og við gerum stærðfræði með ints.
>> Þannig að við höfum bara smá einfaldur hlutur hér.
Við höfum sumir í A sem er frumstilla í 65.
Og B jafn ASCII verðmæti plús 1, CH C jafnt og D mínus 1,
og bleikju D jafn 68.
Svo þá erum við að fara að prenta öllum þeim, sem við sjáum hér.
Og getur einhver sagt mér Hvað þetta mun prenta út?
Nemandi: [inaudible].
ALLISON: Einmitt, svo eitt að taka eftir er
að við erum að prenta út stafir í hvert sinn, hér.
Við erum tilnefningu þótt A og B eru ints þegar við lýst þeim yfir.
Við erum prentun þá sem stafi af Hundraðshluti C og printf yfirlýsingu okkar,
svo þeir munu allir prenta sem stafi.
Og auðvitað, ASCII gildi 65 vilji prenta sem A. ASCII gildi plús 1
væri 66, sem myndi stolt af því að B. Svo í raun, við
fá A B C D. Allir góður þar?
Einhverjar spurningar?
Ógnvekjandi.
>> OK, gildissvið.
Svo umfang er augljóslega mjög mikilvægt að skilja, hér.
A einhver fjöldi af þú, ef þú hafa saman villur,
og það segir að þú ert ekki aðgang að einhverju breytu,
það er líklega vegna þess að þú skilgreint það innan lykkju
og þá reynt að opna það út af því, eða vegabréfsáritun öfugt.
>> Svo umfang á kjarna þess, það ákvarðar bara þar
við segjum breytu til, þar sem við getur breytt því, þar sem við getum nálgast það.
Það er bara svona að segja þetta eru einu staðir þar sem þú hefur aðgang
við þessa breytu.
>> Þannig að tvær mælar sem við tölum um á bekknum eru alþjóðlegt og staðbundið.
Svo Alþjóðlegar breytur Við tölum um þegar þú ert að skilgreina þær fyrir ofan helstu.
Það þýðir að öllu þínu program hefur aðgang að henni,
og það er til staðar eins lengi sem forritið keyrir, OK?
Local þýðir að það er meira bundin við svæði.
Svo þegar þú hefur sérstakar aðgerðir eins skipti, við tölum alltaf um.
Við tölum alltaf um skipti með A og B. A og B eru innan þess virka.
Þeir eru ekki til staðar.
>> Eins vel, þegar þú hafa ef yfirlýsingar eða fyrir lykkjur.
Í hvert skipti sem við höfum, til dæmis, í a for lykkju við höfum int i er 0.
Við höfum sumir ástand og við uppfæra hana.
I er aðeins innan axlabönd um það fyrir lykkju.
Ef þú reynir að opna hana annars staðar, þýðanda þinn myndi æpa á þig.
Það væri eins og, hvað ertu að reyna að gera?
Þetta er ekki til.
Svo er tvær sem mismunandi gerðir af umfangi.
Er að gera skilningarvit til alla?
>> Svo til dæmis hér, þetta er bara einföld forrit.
Hvað gera þú krakkar hugsa er fara að gerast á hverjum tímapunkti
að við reynum að prenta?
Svo þetta hér, hvað er að fara að gerast?
Nemandi: Það mun prenta þrjú.
ALLISON: Hægri.
Það mun prenta þrjú.
Hvað um hér?
Nemandi: Það mun ekki vinna.
ALLISON: Það mun ekki vinna.
Þú ert út af umfangi, ekki satt?
Local breytu er ekki til utan þessara axlabönd, allt í lagi?
Og hvað þá um hér?
>> Nemandi: [inaudible].
>> ALLISON: Hvað?
Rob, fara.
>> Rob: Ég sagði bara.
Global breytur ættu að vera Global undirstrik breytu.
>> ALLISON: Ah, já, því miður.
Takk, Rob.
Rob er eins þýðanda okkar búsettur.
Hann mun bara æpa á okkur þegar við þurfa það. [Hlær] Já, það
ætti að vera alþjóðlegt undirstrik breytu.
Svo miðað við að það var alþjóðlegt undirstrik
breytu, hvað er að fara að gerast hér?
Nemandi: Það mun vinna.
ALLISON: Það munum vinna.
Svo það verður að prenta út, svo bara mjög einfalt dæmi.
OK, frumútgáfur.
Svo augljóslega, við virkilega áherslu fyrir ykkur
til að gera virka ef það skynsamleg í áætlunum þínum.
En auðvitað, þegar þú gera eigin aðgerðir þínar,
Venjulega þú munt skilgreina þá eftir helstu.
Og þú munt reyna að hringja í þá í helstu.
Og ef þú notar ekki frumgerð, þýðanda mun æpa á þig.
>> Frumgerð er í grundvallaratriðum bara að segja þýðanda þinn
að ég hef þessa aðgerð undir helstu.
Ég ætla að kalla það áður en ég skilgreina það.
Bara halda áfram.
Ég lofa að það er skilgreint, og þú vilja hafa allt sem þú þarft.
>> Svo hvernig við gerum það er bara aftur þinn gerð, virka nafn þitt, þú skrifar
lista.
Það er í grundvallaratriðum fyrsta línan af virka yfirlýsingar þínum.
Það er í raun allt það er.
En þetta er bara almennt konar sniði.
>> Svo í dæmi okkar hér, sem þú krakkar ættu
hafa séð í kafla á einhverjum tímapunkti, við höfum
sumir INT teningur sem tekur nokkrar Int inntaki.
Og við höfum Helstu okkar virka, sem kallar teningur.
Og teningur er skilgreind eftir því.
>> Þannig að ef við vildum ekki hafa INT teningur inntak efst, þegar við heitir teningur
innan helstu, þýðanda okkar vildi fá vitlaus á okkur.
Það væri eins og, hvað ertu að tala um?
Cube er ekki til.
Ég veit ekki hvað þú ert að biðja um.
Og ég ætla bara að fara stöðva.
>> En vegna þess að við gerðum frumgerð okkar efst, við höfum sagt,
þú veist, þegar þú sérð teningur, ekki hafa áhyggjur óður í það.
Ég lofa að það er skilgreint síðar.
Og það mun láta þig gera það sem þú vilt.
Svo ef þú hefur einhvern tíma aðgerð sem er skilgreind eftir að þú kalla það
í fyrsta skipti, þú þarft að hafa það prototyped efst.
>> Já?
>> Rob: Það er veldi, ekki cubing.
>> ALLISON: Ó Guð minn.
Ég vissi ekki have-- Gabe, hugsaði ég þú varst proofreader okkar.
OK krakkar, bera með mér, hér.
Ég vona að allir er að fá hugmynd.
OK, þannig að þetta ætti að hafa verið veldi, ekki cubed.
En hugmyndin er sú sama.
Hvaða aðgerð sem við köllum eftir sú staðreynd ætti að hafa frumgerð.
Allir góður við það?
Allar aðrar innsláttarvillur?
OK.
Allar innsláttarvillur hér áður en við byrjum, Rob?
[Hlær] OK, svo structs.
Grundvallaratriðum, leyfa structs þér að búa til eigin gögn tegund.
Svo mikið eins int eða bleikju eða Flotholt, það er bara önnur tegund.
Mér finnst gott að hugsa um það eins og, eins og, búa til eigin gögn tegund.
Svo það er hægt að gera það.
Og það hefur mismunandi tegundir af gögnum.
>> Svo ef þú manst, í fylki, við getur aðeins halda það af svipaðri tegund.
Structs leyfa okkur að eiga marga hlutir af ýmsum gerðum.
Þannig að í þessu tilfelli hér, við hafa strúktúr heitir Student,
nefndi hér neðst.
Og við höfum einhverja int id og einhver strengur nafn.
Svo er þetta bara annar gögn tegund.
Við höfum nú gögn tegund sem heitir Student.
>> Svo vegna þess að við getum hugsað það sem bara annars gögn tegund,
getum lýsa breytur eins og við hverja aðra.
Svo í stað þess bara að hafa, eins og, sem INT nemandi, höfum við bara nemandi,
nemandi 1.
Oh, líta.
Það er Rob.
Svo hér erum við að lýsa yfir a struct, eða breytilegt
kallað nemandi 1 af gerð nemanda.
Svo það er að fara að hafa persónuskilríki og nafn í tengslum við það.
>> Og hvernig við aðgang að þessum þættir innan strúktúrinn okkar
er með punktur rekstraraðila, hér.
Þannig að í þessu tilfelli, við lýst sumir nemandi 1.
Við úthlutað auðkennið að vera 1.
Og við úthlutað nafn til að vera Rob.
OK, allir góður með það?
Nota það like-- bara já?
>> Nemandi: Já, typedef-- þegar þurfum við að nota typedef?
>> ALLISON: Svo typedef bara segir that-- Rob, þú
getur rétt mér á þetta ef ég er wrong-- en typedef er bara í raun að lýsa yfir
það sem tegund sem þú getur notað, ekki satt?
>> Rob: Já, það er í rauninni, svo það er bara að búa
samnefni eða gælunafn fyrir gerð.
Svo þú getur slegið það [inaudible].
Svo [inaudible] til, og nú höfum við bara
[Inaudible] þýðir nákvæmlega það sama.
Og svo hér erum við slegið, ég held, sumir struct tegund 2 [inaudible].
Svo það er bara gælunafn fyrir ákveðna tegund.
>> Nemandi: String [inaudible] bókasafn var slegið upp eins bleikju stjarna.
>> ALLISON: varðar okkar hérna, Ef þú ert að lýsa á strúktúr,
bara gera typedef strúktúr.
OK, svo fyrirfram, þetta er bara eðlilegt breytu hér.
Við aðgang að honum með punkti.
ef við höfum bendi á a strúktúr, getum við í raun
nota ör, sem er laglegur kaldur.
>> Svo í þessu tilfelli, höfum við bendi á nemandi 1 sem er af taginu nemanda.
Mundu, við þinn bendill byggingu,
þú vilt hvað tegund músina þína bendir til að vera í upphafi.
Þannig að við höfum sumir nemandi 1, hér.
Og þar sem þetta nemanda 1 er nú bent,
getum raunverulega fara nemandi 1 arrow nafn í stað þess að punktur, vegna þess að það er a músina,
og framselja Rob.
Og nú ef við viljum breyta Rob til Davin,
þetta er bara að sýna þér annan hátt til að gera það.
>> Þannig að í stað þess að nota örina, þú get also-- Ég mun klára þetta og þá
taka að question-- þú gætir einnig gera tilvísun nemanda 1.
Það er að segja eins og fara til hvað er í nemanda 1, sem
væri struct lesandi.
Aðgang að honum með punkti og frumefni sem þú vilt, og þá breyta henni.
Það var spurning.
Nemandi: Já, svo hvernig kemur þú ert að nota [inaudible] þegar þú ert
gera nemandi stjörnu án [Inaudible] nemandi?
ALLISON: Vegna þess að þetta er að búa til músina.
Rob: Við erum að fara að tala um það.
ALLISON: Við erum að fara að tala um það síðar í endurskoðun.
Svo bara halda á þessa hugsun.
Ef það þreytandi samt þig í enda koma tala við einn af okkur.
>> Svo þetta gera nákvæmlega það sama.
Við erum bara að sýna þér tvo mismunandi leiðir til að gera það.
Nemandi 1 er nú bendi, svo þú getur fengið aðgang á Name frumefni
innan strúktúrinn með ör.
Eða þú getur dereference músina þína, og þá aðgang að honum eins og þú myndir venjulega.
Er að vit að hver og einn?
Ef allur Pointer hlutirnir eru svolítið truflandi, Gabe mun tala um það,
og þá kannski þetta mun gera meira vit.
Já?
>> Nemandi: Já, svo er hvernig þetta frábrugðið?
ALLISON: Fyrri einn?
Svo nemandi 1 í þessari málið er ekki músina.
Það er bara raunverulegur strúktúr þinn.
>> Nemandi: OK.
>> ALLISON: Þessi eina er bendillinn að strúktúrinn.
>> Nemandi: OK, en gerir það eins konar endanum vinna sama [inaudible].
>> ALLISON: Það virkar í raun það sama.
Setningafræði er bara öðruvísi.
Nemandi: OK.
>> ALLISON: Já, þeir eru á áhrifaríkan hátt það sama.
Það er bara eftir samhengi, þú vilt kannski einn yfir öðrum.
Já?
>> Nemandi: Þegar þú gerir vísun til 1--
ALLISON: Mm-HM?
Nemandi: Af hverju ertu hafa sviga?
ALLISON: Þar nemandi 1 er músina.
Svo þú þarft að ganga úr skugga um að þú sért bara dereferencing bendilinn.
>> Nemandi: OK.
>> ALLISON: Þannig að í þessu tilfelli hér, svigans kring
þýðir að þú ert að dereferencing nemandi 1.
Svo þú ert að fara að þar nemandi 1 stig, sem er strúktúr þinn.
Svo nú er hægt að hugsa um það sem þetta strúktúrinn,
svo við getum notað venjulegan punktur starfsemi okkar.
Allar aðrar spurningar?
Cool, ógnvekjandi.
>> Svo síðasta sem, held ég er síðasta renna minn, Woo!
OK, svo fleytitölu imprecision.
Við ræddum stuttlega um þetta á fyrirlestri.
Grundvallaratriðum, höfum við óendanlega margir rauntölur.
Og ef einhver af ykkur elska stærðfræði, það er
alls konar flott efni með okkur.
>> En það eru óendanlega margir rauntölur.
En þeir eru aðeins tímabundið margir bitar sem við höfum.
Svo þú ert alltaf að fara að hafa imprecision, er allur.
Og það er það er bara svona eins og eitthvað sem þú ættir að vita.
Að eins að við gætum beðið þig af hverju virkar fleytitölu imprecision til?
Svo bara eitthvað sem þú ættir að vita.
Og með það, ég er að snúa það yfir til punkta.
>> BINKY: Halló, krakkar.
Binky Ég heiti.
Ég ætla að tala um ábendingum.
Já, svo ábendingum er í raun Uppáhalds hluti minn í þessu námskeiði.
Svo bara að gera ljóst hvað Allison var að tala um hér, þannig að ástæða
why-- eini munurinn hér, Stóri munurinn var leið
Við lýsum hlutina.
Svo nemandi stjörnu þýðir er bendillinn á nemanda.
En renna undan, nemandi er raunverulegt strúktúr, eins og raun nemandi,
inniheldur eitthvað af þessum hlutum.
>> Og ástæða þess að við vilja to-- já, Davin?
>> DAVIN: Hvað þýðir örin meina?
>> BINKY: Örin þýðir nákvæmlega það sama og þetta.
Svo þú í raun ekki þörf á örina.
Eins, ef þú ert bara program í C, þú getur bara notað þetta.
Sorry, ég er ekki það sem það er.
Þú getur bara notað þetta setningafræði.
>> En sumir, þegar þeir voru að hanna C,
þeir mynstrağur að fólk notuðu það setningafræði svo mikið,
að þeir vilja eins bara koma upp með setningafræði uppbyggingu fyrir það.
Og þetta átti sér stað í formi sem hún er ör.
Og það er mjög gott, því það táknar eitthvað
eins og við erum í raun að fylgja Þessi ör, þetta bendi,
að ákveðnu rými í minni.
Og þegar við komum þangað, við viljum líta á nafni að nemandi,
ef það er vit í.
OK?
>> Þannig að þetta er nákvæmlega það sama.
Þetta er nákvæmlega það sama og þetta.
Þeir fá saman nákvæmlega sama, OK?
Og ástæðan hér hvers vegna við malloc eitthvað, er vegna þess að í þessu tilfelli,
breytu okkar er í raun bara bendi breytu.
Þannig að við höfum aðeins nokkur pláss í minni sem er að halda á músina.
Við gerum í raun ekki hafa allir pláss sem heldur í raun strúktúr.
>> Svo hefur þetta að vera gert í tveimur skrefum.
Við verðum að búa til minni til að setja strúktúr í.
Og við verðum að búa til minni til að setja bendilinn í.
Svo þeir eru í grundvallaratriðum tveir mismunandi breytur, hér.
Einn af þeim er af taginu nemanda, nema það er í raun ekki að hafa nafn.
Og hitt er af gerðinni nemandi stjarna.
Og þá nemandi 1 stig þar, ef að skynsamleg.
OK?
>> Þannig að ástæða þess að við notum Ábendingum er því allt
í tölvu, sérhver breytu í tölvu hefur tvennt.
Það hefur gildi sitt.
Og það hefur tölu hans.
Og góð leið til conceptualize þetta er að það er
mörg vandamál þegar þú reyna að nota virka.
Og við erum að fara að reyna að líta inn í einn af þeim.
Nefnilega, það er að fara að hugsa um minni eins kassa.
>> Þú hélt alltaf af breytum þegar þú segir na er 5.
Þú heldur að setja 5 í kassa.
Svo hvað ef þú vilt fara sem INT í virka?
Þú pass-- bara ég ekki know-- x í aðgerð.
En það sem gerist er venjulega eins og menn, þú
myndi hugsa eitthvað eins og ég er liggur í reitinn að manni.
Og það er í raun ekki gerast í tölvum.
Hvað sem gerist er að afrita gildið af the kassi til kassi viðkomandi.
>> Svo er það sem ég er að reyna að segja að ef þú hafa a function-- sorry-- hér,
ef við höfum virka eins til fimm upp þar, ef þú reynir að standast breytu,
það er bara að fara að afrita.
Ef Frumstilla NX er 3, það er að fara til að afrita þetta gildi upp til breytu a
upp þar.
OK, og þetta er góður af þeirri ástæðu Hvers vegna viljum við nota ábendingum.
Vegna þess að í stað þess að gefa bara gildi,
í stað þess að bara farið bara gildi að aðgerð
við viljum fara með tilvísun.
Það sem við köllum framhjá með tilvísun er góður að gefa í reitinn að aðgerðinni
þannig að virka getur einnig breyta gildum innan kassann.
>> OK, svo bara sumir undirstöðu bendi efni er að skapa ábendingum,
þú lýsa bara það gerð, og þú setur stjörnuna rétt eftir það.
Og tegund er bara hvað þú ert að benda á.
Þannig að ef það er int stjörnu, þú ert að benda á int.
Ef það er a bleikju stjarna, þú ert að benda á töfluna.
Og ef það er a nemandi stjarna, þú ert að benda á nemanda.
OK?
>> Og þeir eru allir 4 bæti.
Vegna þessa breytu það er í raun ekki
þurft að halda char, int eða nemandi.
Það þarf aðeins að halda tölu.
Það er hvers vegna þeir eru allir 4 bytes lengi í eðlilegu 32-bita vél.
OK?
Svo hér, x er breyta sem bendir heiltala. y stig til bleikju. z stig
til að festa flotholt.
Einhverjar spurningar hér?
Cool.
Og það eru tveir mismunandi tákn sem þeir hafa
að hafa í huga þegar koma til músina.
Svo tilvísanir og dereferencing eru stór sjálfur.
Þannig að merkið af breytuheiti gefur þér?
Nemandi: Address.
BINKY: Address.
Þannig að ef þú lýsa int a jafngildir 5, þá merkið
A er að fara að gefa þér heimilisfangið.
Og þú getur í raun að reyna að prenta það og sjá
hvað heimilisfang í minni breytu hefur.
Og þá dereferencing-- svo sem var að vísa,
fá address-- dereferencing er nákvæmlega andstæða.
OK, bara eins og Times er andstæða skiptingu,
stjörnu er andstæða merkið.
Svo dereferencing muni fara þangað.
Þannig að ef þú gefur star-- I ekki know-- 50, það er
að fara að reyna að fara á heimilisfang númer 50 inni á tölvunni þinni.
OK, og af hverju eigum við að sjá að þeir eru andstæður?
Vegna þess að það gerist ef þú gerir eitthvað eins stjörnu merkið a?
Jæja, ampersand a gefur þér heimilisfangið breytu, heimilisfang a.
En stjarna þýðir fara þangað.
>> Svo gerist það ef þú fara á heimilisfang a?
Þú færð bara að a, ekki satt?
Svo fara á heimilisfang a er sama og a.
Það er hvers vegna þeir eru yfirleitt vísað til same-- þetta
og þetta eru kölluð sem andstæðu rekstraraðila.
OK?
Svo kúl.
>> Undir hetta, til dæmis, ef við lýsa INT x jafngildir 5,
höfum við breytu.
Og mundu að ég sagði á hverju variable-- og þetta er góður hlutur
að halda í mind-- það hefur tvo mismunandi hlutir tengist.
Það hefur beint og gildi.
OK?
>> Þannig að verðmæti í þessu tilfelli er 5.
Og heimilisfang is-- skulum segja, ég er gera eitthvað up-- það er 0x04.
Og eina ástæðan fyrir því að við venjulega tákna heimilisfanga sextánskur
er einn, því það er eins gott.
Það fer vel með tvöfaldur.
Það er auðvelt að breyta til og frá tvöfaldur.
Og það er ekki orðið of stór ef þú ert með mjög stór númer.
Þannig að við eins og til nota sextánskur í prentun viðtakandi.
En ég gæti táknað þetta sem heiltala.
Það er allt í lagi.
>> Og svo hefur það netfang 4 og a gildi 5.
Og þá sagði ég INT stjörnu músina.
Svo er þetta mismunandi gerð, tilkynning.
Int stjörnu bendillinn jafngildir veffang x.
Svo hvað er að fara að vera verðmæti PTR?
Það er að fara að vera heimilisfang x, niður hér.
OK, þannig að verðmæti er að fara að vera sú sama og heimilisfang.
Það er verkefni starfa ég er að gera.
Og svo PTR er að fara að hafa eigin heimilisfang, sem kemur í ljós,
í þessu tilviki er 8, OK?
>> Og þá er ég að búa til nýja heiltölu eintak.
Og ég segi INT eintak jafngildir fara þangað.
Svo fara að hvaða PTR bendir til.
Jæja, hvað þetta PTR hafa?
PTR hefur 0x04.
Hvað gerist ef ég reyni að fara þangað?
Ég mun finna gaurinn sem hefur heimilisfang x og hver hefur tölu 4.
Og hver hefur takast fjögur er x.
Er að skynsamleg?
Já?
>> Student: Í þessu tilviki, er bendillinn í stafla?
>> BINKY: Í þessu tilviki, it's-- góð spurning.
Ég vissi ekki raunverulega hugsa um þetta þegar upp þessar tölur.
En ef þetta er eins og, allir þetta eru staðbundnar breytur,
þá x er að fara að lifa in-- allt er að fara að búa í stafla.
Svo er allt að fara að vera að benda að stafla.
Þú færð aðeins að hrúga hvenær þú byrjar að nota malloc, ekki satt?
>> Þannig að ef þú manst er stafla hvert skipti þú kalla aðgerð í forritinu,
eins og, helsta til dæmis, eða einhver annar virka, eins printf.
Allar staðbundnar breytur eru fara að fá sett í stafla ramma.
Og þeir eru að fara að fá eins hlaðið upp í stafla.
Það er það sem er kallað stafla.
Og allir þeir heimamaður breytur eru að fara að vera þar.
Og heap-- og við erum að fara að tala meira um þetta later--
hrúga er þar sem allar virk úthlutað minni líf.
Cool?
>> Við förum í þennan renna.
Já?
>> Nemandi: Hvers vegna er ekki int eftirlíking aftur 0x04?
>> BINKY: Hvers vegna er ekki int eftirlíking aftur 0x04?
>> Nemandi: Hvers vegna er ekki að [inaudible]?
>> BINKY: Vegna þess að það er a gildi PTR?
>> Nemandi: 0x04.
>> BINKY: 0x04.
Hvað gerist ef þú ferð til 0x04?
Hvaða gera þú fá?
>> Nemandi: Oh, OK.
BINKY: Þú sérð?
Nemandi: Já.
BINKY: Þannig að þú færð 5.
Svo afrit er að fara að hafa 5, ef það er vit í.
Já?
>> Nemandi: Gætum við höfum fengið 5 í gildi kassi [inaudible]
ef við setjum Int afrita [inaudible].
>> BINKY: Int-- við myndum, já.
Það hefði gert laglegur mikill the sami hlutur.
En með þessum hætti getum við framhjá takast í valkosti.
Og það er kaldur hlutur við erum að fara að gera núna.
>> Svo af þessu tagi æfingu kemur alltaf upp on-- mjög venjulega kemur upp á Skyndipróf.
Svo það er mjög gott að reyna að gera svoleiðis sjálfur.
Svo að reyna að halda utan um hvað það heimilisfang er og vilja þau gildi af breytum
eru á hverjum tímapunkti.
Svo er þetta nákvæmlega hvað við erum að fara að gera.
Hér höfum við skref, einn, tveir, þrír, fjórir, fimm.
Einn, tveir, þrír, fjórir, fimm.
Og við erum að fara að halda utan af gildum x og a.
>> Svo er það þetta að gera, ef þetta er þrjótur númer, erum við að reyna að gera í fimm.
Þannig að við erum að reyna að komast í a breytilegir og breyta gildi hennar til 5.
Og muna líkingar minn um að hafa kassi og fötlun í reitinn til einhvers?
Svo helstu hefur þennan reit sem heitir x.
Og það inniheldur gildið 3.
Og ég er að reyna að skila þessi kassi til í fimm.
>> Og ég vil fimm breyta gildi þessum kassa til að 5.
Og svo ég prenta bara verðmæti x.
Þetta er það sem function-- mitt þetta er það sem ég er að reyna að gera.
Ég ætla bara að reyna að uppfæra gildi x til 5.
Er ljóst hvaða hlutverk er?
>> OK, svo hvað ertu að fara að vera gildi x og a hérna,
fyrsta lína, rétt áður en fyrsta line-- Ég myndi say-- áætlunarinnar?
>> Nemandi: Sennilega sorp.
>> BINKY: Bara sorp efni.
Svo ég setti bara N / A. Svo Við í raun ekki vita.
Eins, a er ekki einu sinni til ennþá, vegna þess að við höfum ekki kallað til fimm.
Int a er ekki lýst.
Og x er að fara að vera til hér, en við höfum í raun ekki
úthlutað hvaða gildi við það, svo í lagi?
>> Og svo, hvað ertu að fara að vera gildi x og A í númer tvö?
>> Nemandi: [inaudible].
>> BINKY: Svo X er að fara að vera 3.
Það er auðvelt, vegna þess að við erum framselja 3 til það.
Og enn er ekki til vegna þess að bara býr í fimm.
Þannig að ég ætla að hafa 3 og ekkert.
eða eins sorp, hvað, raun ekki skilgreind.
Og nú, þetta er mikilvægur lína.
Hér erum við að fara að raun kalla til fimm.
Og muna það sem ég sagði.
Við fara aldrei í kassanum.
Við afrita bara verðmæti kassi til annars kassann.
Það er allar tölvur gera, afrita hlutir frá einum stað til annars.
>> Svo til fimm, hvað hún gerir í raun og veru er það afrit gildi x til a.
Svo hvað er að fara að vera hér?
Gildin fyrir X og a.
3 og 3, munum við bara að afrita það yfir frá x til a.
Cool.
>> Nú erum við hér.
Og nú erum við að fara að uppfæra a er 5.
Hvað er að fara að gerast í takt fjórum?
>> Nemandi: [inaudible].
>> BINKY: a ​​gets endurnýja, en x var ekki uppfærð.
Vegna x býr enn í helstu, það er gjörólík blokk af minni.
Það er öðruvísi breytu.
a er annar breytu.
Þeir koma til að hafa sama gildi vegna þess að ég
afrita yfir verðmæti X til að a.
En nú þegar ég er jafngildir 5, það er í raun ekki áhrif x á nokkurn hátt.
Þetta er trickier hluti.
Er það gera vit í að hver og einn?
Já?
Nemandi: Eitt enn spurning, hefur þú 3.
Hvers vegna er already-- ó, nei, er það 3.
Því miður, aldrei hugur.
Ég las 5.
>> BINKY: Já, 3, 3.
>> Nemandi: [inaudible], já.
BINKY: Og þá erum við að úthluta 5 til a, en ekki í raun breyta x.
Gott?
Nemandi: Já.
BINKY: Já?
Getur þú útskýrt aftur hvernig a fær afritað [inaudible]?
>> BINKY: OK, þannig að þegar þú hringir í fimm af x, þannig að þetta lína af kóða hér.
til fimm af x, hvað er X?
X er bara 3 á þessum tímapunkti, ekki satt?
Svo þú gætir bara hugsa um að setja 3 hér og gleyma um x.
Bara setja 3 hér.
Eins erum við að fara að afrita yfir gildi x til int a sem er þarna upp.
OK?
>> Svo er gildi x 3.
Við erum að fara að afrita 3 yfir a.
Og allt þetta önnur blokk minni, þetta önnur breytu
kallað mun hafa 3, eins og vel.
Er að skynsamleg?
Já?
>> Nemandi: Ef þú gefur til fimm eins hafa það sem heiltala x í stað a,
myndi það festa allt?
>> BINKY: Ef það er integer-- nei, sem myndi ekki festa allt.
Svo er það mjög góð spurning.
Það skiptir í raun ekki máli hvað þú kalla þá breytum.
Aftur, það verður mál um gildissvið, vegna þess að þeir eru ekki það sama x.
Þeir eru alveg mismunandi rými í minni.
Nemandi: [inaudible].
BINKY: Svo það er í raun ekki máli hvað þú kallar þá.
Það þýðir ekki að laga hlutina, OK?
Fleiri spurningar?
Já?
>> Nemandi: Hvernig er það aftur til númer fimm [inaudible]?
BINKY: OK, við höfum ekki gert það ennþá.
Förum að tala fimm, þá.
>> Nemandi: [inaudible]?
>> BINKY: Hvað?
>> Nemandi: Gera þú hafa a aftur á allt?
BINKY: Við höfum ekki aftur, ekki af helstu.
En helstu skilar 0 sjálfkrafa ef þú ekki aftur neitt.
Já?
>> Nemandi: Gætirðu gera main-- eða gastu gert að fimm skila?
>> BINKY: Við hefðum getað fimm skila, já.
En þá yrðum við að úthluta x jafngildir skilagildi til fimm,
sem væri lítillega mismunandi program.
Það myndi vinna.
En það sem við viljum gera er það sem er kallast breyting eitthvað í stað.
Þannig að við viljum raunverulega breyting þessi kassi og ekki hafa áhyggjur
að þurfa að fara aftur gildi eða neitt.
OK?
>> Þetta er bara eins og skiptasamnings virka David sýndi í fyrirlestri, nema ég
aðeins að takast á við einn breytu.
Og hann notaði tvö, svo INT a og b og þá tímabundinn breytu og whatnot.
OK?
Svo er það síðasta línan?
Eftir að fimm skilar, það er einfaldlega a er að fara að fara í burtu.
Við munum ekki hafa lengur, og aðeins X mun samt lifa á.
>> Og giska á hvaða? x breyttist ekki gildi þess,
eftir allt saman, vegna þess að við erum aðeins að breyta verðmæti a.
Þess vegna x var 3 gegn.
OK?
Good.
Þannig að þetta program hjartarskinn ekki ná hvað við vildum.
Nú skulum laga það.
>> Og festa program er að nota ábendingum.
Það sem við gerum er að við höfum þrjá línur sem eru öðruvísi.
The fyrstur sjálfur er að við erum ekki að farið x.
Við erum brottför veffang x.
Þannig að í stað að afrita yfir gildi af the kassi,
Ég ætla samt að fara að afrita yfir eitthvað.
En ég er að afrita yfir heimilisfang af the kassi.
>> Svo ef ég standast vistfang kassi til að fimm, þá fimm
vilja vera fær til að finna að minni og breyta gildi þess.
>> Svo og svo upp þar, ég hef sem a er ekki int lengur.
a er int stjarna.
Það er bendi heiltala.
Og svo, af því að ég er að hleypa takast hér, og þá hvað ég geri
er ekki a jafngildir 5, vegna þess að a er að halda ávarp.
Svo það sem ég vil gera er að fara þangað og uppfæra innihald þetta heimilisfang
með 5.
>> OK, þannig að við skulum fara í gegnum allar línur eitt af öðru.
Svo þegar ég byrja hérna, ég enn hafa N / A, N / A, N / A
fyrir allt í fyrsta lína, því ég hef í raun ekki
lýst efni ennþá.
Og þá mörkin tvö, ég hef x er 3.
A INT stjörnu a eru ekki til, sama og áður.
>> Nú fær það áhugavert.
Þannig að ég ætla að fara.
Og við skulum gera ráð fyrir að það heimilisfang x er 12 í sextánskur.
Við skulum gera ráð bara þetta.
Ég gerði það upp.
Svo er það sem ég liggur hér í fimm.
Ég er liggur 12.
>> Svo hvaða gildi er a hafa?
>> Nemandi: [inaudible].
>> BINKY: Sorry?
>> Nemandi: [inaudible].
BINKY: Já, eins og, til skulum gera ráð fyrir að við erum hér, núna.
Ég ætla að biðja.
>> Nemandi: [inaudible].
>> BINKY: Það hefur verið hafin.
>> Nemandi: [inaudible].
BINKY: Þar sem við samþykkt eitthvað að virka.
Já?
>> Nemandi: Heimilisfang x.
BINKY: Það er að fara til hafa veffang x.
Og heimilisfang x er 12, góður.
Svo X er að fara að vera 3, vegna þess að við höfum ekki breyst x enn.
Og þá er að fara að vera 0x12, svo veffang x, því það er
hvað við framhjá til að fimm.
>> Og hvað þá gerist Ef við reynum að fara þangað?
Hvað erum við að fara að finna?
Svo ef þú ert að reyna að prenta stjörnu a, við erum að fara að fylgja þessu heimilisfangi
og fá verðmæti inni.
Og verðmæti er bara sama gildi sem x
hefur því það er heimilisfang x, sem verður 3.
Erum við góðar?
>> OK, og þá nú, förum við í raun og veru.
Og við uppfæra hvað er í þessu heimilisfangi 12.
Við gerum það 5.
Svo nú bæði X og stjörnumerkja eru 5.
>> Hvers vegna er það?
Vegna veffang x er 12.
Og a hefur einnig 12 sem gildi hennar.
Þannig að ef við fylgjum 12, erum við bara að fara til að finna x.
Svo hvað sem við gerum við stjörnu a er að fara að gerast
til x, vegna þess að a inniheldur veffang x.
OK?
>> Og þetta er eins og The crux fix.
Svo nú erum við fær, frá til fimm, reyndar
aðgangur minni sem bjó í aðal.
Þannig að þetta minni er ekki lifandi í fimm, eins og áður, þetta netfang 12.
Og við gátum að fara þangað og breyta gildi hennar til 5.
>> Og svo þegar við aftur, við gleyma um a.
Við gleyma stjörnu a.
Og x er enn fimm.
Þannig að ef þú vilt að innleiða swap virka,
þú myndir bara gera nákvæmlega það sama, nema þú þarft að int stjörnum hér,
og svo framvegis og svo framvegis.
OK?
Erum við góðar?
Cool.
>> Svo músina tölur.
Þetta er örlítið erfiður efni.
Svo kemur í ljós að ábendingum eru bara heiltölur.
Þú getur hugsað um þá eins heiltalna.
Vegna þess að í minni, hefur þú eins minni heimilisfang núll, einn, tveir, þrír,
fjórir, fimm.
Þannig að við getum summa minni viðtakandi.
>> Og það er yfirleitt það sem þú gerir þegar þú ert í og ​​array, til dæmis.
An array er bara eins og samliggjandi blokk af minni, af fullt af stafir,
td fullt af ints.
Svo ef þú vilt fara til Annað INT eða til þriðja int,
þú getur bara summa eitthvað við fyrstu heimilisfang, og þú ert að fara að komast þangað.
Þannig að þetta er mjög gagnlegt fyrir það.
>> Og hlutur til viðurværi í huga, þó, er
að það er ekki bara eins og eðlilegt tölur í skilningi
að ef þú ert að takast á við, segja, int stjörnu, og þú bætir 1 við það,
þá þú ert ekki að fara að bæta 1 við heimilisfang,
þú ert að fara að bæta 4 við heimilisfang.
Vegna int er 4 bæti.
>> Þannig að þetta er bara eins og ganga á fylki.
Ef við höfum fjölda af fullt af ints og þá erum við að reyna að fara í seinni,
það er í rauninni bara því að veffang fyrstu einum plús 1.
En það mun ekki be-- bara láta segja að heimilisfang fyrri er 4.
Hér, í þessu tilfelli.
Og ef við summa, þannig að þetta er það sem er að gerast.
Við höfum við int.
Int x er 5.
X hefur gildið 5.
Og við frumstilla þennan músina, int Y INT stjörnu Y jafngildir veffang x.
>> Við skulum gera ráð veffang x er 4.
Hvað er að fara að gerast nú ef ég summa bæta 1 til y?
Það er að fara að í raun og veru summa 4 í stað bara 1.
Svo ég bæti við 1, en það í raun og veru added 4, vegna þess að tölvan er klár.
Svo það er að fara til raunverulega bæta því i sinnum stærð tegund músina.
OK?
>> Þannig að ef það væri bleikju, til dæmis, ef þetta væri bleikju stjörnu Y,
og ef við bætt 1 þá myndi þetta verið 5, því bleikjan er 1 bæti langur.
Gott?
>> Og að lokum, við fengum að ábendingum og fylki.
Það kemur í ljós að í hvert skipti þú ert að takast á við fjölda,
þú ert í raun að takast á við músina.
Mjög gott huglæg ástæða fyrir þetta er að fylki eru mjög stór.
Svo muna að ég sagði að hvert skipti sem þú standast efni í kring,
að afrita allt.
Svo ef þú ert óákveðinn greinir í ensku fylking það er í raun, mjög stór,
þú í raun ekki vilja til að afrita allt í hvert skipti
þú gefa það í kring til annars virka, því það er bara
gegnheill magn af vinnu.
Svo það sem þú gerir er bara fortíð um heimilisfang fyrsta bæti.
Og þá aðgerð mun hafa aðgang til allra þátta í þeirri fylking.
Svo þú stóðst array með heimilisfang þess, svo sem heimilisfang fyrsta bæti.
>> Svo ef við lýsa INT array 3, hér, við vitum
hvernig á að opna fyrstu frumefni nota krappi tákn.
Ef þú manst krappi Rithátturinn, array krappi 0 er 1.
Jæja, þetta væri nákvæmlega sama og bara fara þangað og setja 1.
OK, er nákvæmlega það sama.
Svo krappi merki í hér verður sú sama og þessa línu.
>> Og giska á hvað krappi tákn fyrir array krappi 1 mun vera?
Það verður bara að vera það sama og þetta.
Svo bæta með fylki.
Færa einn eftir í minni.
Fara þangað, og setja 2.
OK?
Og þessi lína er það sama.
Við viljum fara í þriðja kassi, svo array auk 2.
Fara þangað, og setja 3.
Svo í minni, hvað er fara að gerast er að við erum
fara að hafa 1, 2, og 3 sem þrír þættir þessu fylki.
>> Við hefðum getað gert þetta með því að nota þekki krappi okkar merki.
Ég vil bara að þú krakkar að vita að þeir eru það sama.
OK, spurningum um þetta?
Nice.
Nú, ég ætla að skila það yfir til Hönnu,
>> HANNAH: Yay, Yee-Haw.
>> BINKY: Talandi um minni og grein efni.
[Applause]
>> HANNAH: Hi, kaldur, þannig að við erum fara að tala svolítið meira
um minni, sem við bara beint með ábendingum.
Þannig að það eru tveir helstu hlutar minni sem við erum áhyggjur með.
Við höfum stafla, sem vex upp í botn, og veggur, sem
fer niður úr efstu.
Og stafla er að fara að halda allar tilviksbreytu okkar.
Svo að hver kalla til fall fær eigin litla ramma þess á mánudaginn.
Svo eins Gabe fyrr, ef við hringja í virka aftur og aftur,
við erum að fara að stafla það upp á mánudaginn.
>> Og sömuleiðis, hrúga, sem byrjar efst
er að fara að halda allt af minni að við úthluta virk.
Og svo eins og við virk úthluta minni,
þetta mun koma niður til the botn.
Nokkra hluti til að vera meðvitaðir um þegar þú við erum að nota stafla og hrúga,
með stafla, ef við höfum of many-- skulum say-- endurkvæma símtöl,
og við erum að hringja í virka aftur, og aftur, og aftur, og aftur,
og það er stöflun upp, stöflun upp, stafla upp.
Og það er að fara að hrun í hrúgunni.
Við erum að fara að keyra út af minni.
Það er að fara að valda a vandamál fyrir tölva.
Og það er kallað stafla flæða.
Svo er það örugglega eitthvað sem þú ætti að vera meðvitaðir um og reyna að koma í veg fyrir.
Og hrúga, að muna ekki óvart leka minni.
Hvert sinn sem þú notar malloc, ekki gleyma að losa að minni.
Annars verður það bara vera á hrúga spillis,
og the tölva vilja ekki vita að það er ókeypis að nota þessi minni.
Þannig að þeir eru nokkra hluti að vera mjög varkár með hvenær
þú ert að takast á við stafla og hrúga.
Einhverjar spurningar með þetta?
Ógnvekjandi.
>> OK, flott.
Svo hefur þessi tegund af sama hugmynd sem stafla flæða þar
við erum að fara út fyrir mörk af hvaða minni
er að við erum að ætlast til að vera fær um að nota.
Svo taka, til dæmis, með buffer, eða að gæti bara hugsa um það sem fylki.
Og við sögðum OK, við erum að fara að að búa þetta ágætur lítill fylkisins.
Það er að fara til vera a band.
Eða það er að fara að geyma stafi.
Og það er bara að fara að segja halló.
Og það er unnt að ákvarða.
Það er hann.
>> En ef ég væri einhver vondur og vildi gera eitthvað slæmt með þessu fylki, hvað
Ég gæti gert er að reyna að skrifa framhjá enda strengsins.
Og eins og þú munt sjá, ef Ég skrifa langt,
Ég get í raun haft áhrif aftur heimilisfang.
Og ef ég byrja að hafa áhrif á aftur heimilisfang,
Ég hafa áhrif á hvernig forritið keyrir í raun.
Og í stað þess að skila, þú vita, gleðilegs band eins halló, ég
gæti gert eitthvað slæmt, eins og fara í annars staðar í tölvunni þinni, enn
minni, að breyta því, hvað ég vil gera.
Svo það er það sem þetta myndi líta út er ef ég fyllti bara svona það upp
handahófi sorp gildi, í þessu tilfelli, bara a.
Og svo þegar ég í raun fékk í minni heimilisfang,
Ég byrjaði að fylla það með eitthvað sem gerði það sem ég vildi það til að gera.
Einhverjar spurningar með yfirflæði?
Awesome, fljúga rétt gegnum þetta dót.
>> OK, svo við ræddum mikið af um músina með Gabe.
Hvernig fáum við í raun bendi?
Hvernig eigum við að fá tölu í minni?
Jæja, við getum notað þessa fallegu kalla virka malloc sem
er að fara að fá a lítið stykki af minni,
sérstaklega hjá hrúga, eins og við ræddum,
og það er að fara að gefa þér aftur a músina á þetta netfang í minni.
Og þau rök sem við að gefa til malloc
er hversu mikið pláss í minni við viljum.
>> Svo er hægt að sjá stærð á bæti.
Segjum til dæmis, eða í raun, í þessu dæmi,
við úthluta nóg pláss fyrir 10 heiltölur.
Svo sennilega það sem við erum að fara að vilja að setja hér er fylki af 10 heiltölur.
Svo við gefa henni stærð ints sem Við lærðum var hvernig margir bytes?
Nemandi: 4.
HANNAH: 4, falleg, og við vilja 10 af þeim í röð,
þannig að við höfum nóg pláss til geyma öll 10 heiltölur, í þessu tilfelli.
Eitthvað frábær mikilvægt, hvert sinn sem þú hringja malloc,
þú þarft að athuga for null.
Ef þú hakar ekki fyrir engu, vel, malloc ef það rennur út af plássi
og getur ekki lengur gefið þér meira minni, það mun skila null.
Þannig að ef þú hakar ekki, malloc getur aftur null.
Og þá ef við reynum að dereference núll músina,
við erum að fara að fá skiptingu kenna, sem við munum tala um núna.
Ógnvekjandi.
>> OK, spurningum með malloc?
Já?
>> Nemandi: Er haka null [Inaudible] geri það ekki á prófinu?
>> HANNAH: Jú, spurningin var er það matter-- á spurningakeppni,
þú vilja fá stig burt ef þú hakar ekki null?
Já, þú munt fá stig burt Ef þú hakar ekki null.
Hvert sinn sem þú hringja malloc, bæði á quiz og psets þínar og í raunveruleikanum,
þú þarft að athuga for null.
Góð spurning.
>> Gabe: Hvað ef ég losa ekki?
HANNAH: Gabe vill vita hvað ef við gerum ekki frjáls.
Þá munum við hafa a minni leka í hrúga okkar.
Allar aðrar spurningar?
Já?
>> Nemandi: Getur you-- fara yfir biðminni flæða raunverulegur fljótur aftur?
>> HANNAH: Jú.
Spurningin var getum við farið yfir biðminni flæða mjög fljótur.
Förum aftur til þeirra renna.
Svo biðminni, þú getur bara hugsa um það sem fylki, ekki satt?
Þú hefur smá pláss í minni.
Og þegar við búum fyrst array okkar, við vitum fylki hafa fasta stærð,
eða biðminni okkar hefur fasta stærð.
>> Svo skulum segja í þessu tilviki höfum við bara nóg pláss til að skrifa strenginn halló.
Ef við förum yfir það bundið, ef við förum framhjá hvað array okkar við sögðum að það gæti haldið,
við gætum í raun byrjað skrifa inn í minni
að tölvan virkar ekki langar okkur að skrifa í.
Og sérstaklega, ef við högg eitthvað eins og aftur
Heimilisfang virka, sem, eins og allir aðrir stykki af minni,
er bara einhvers staðar í þinn tölva, getur þú í raun og veru
breyta því og byrja að gera illt.
Svara spurningunni þinni?
Awesome, eitthvað annað?
Já?
>> Nemandi: Svo stafla [inaudible] þér sagði fara frá botni að fara upp.
Innan stafla svið, er minni fara frá, eins og,
efst niður lúta að hvers hlé?
>> HANNAH: Hvernig you-- fresta að Rob á þessu.
>> Rob: Það mun vaxa í sama átt og stafla vex.
HANNAH: OK.
Rob: Svo ég fá rugla.
Þetta er að fara að vera abstrakt.
HANNAH: OK.
Rob: Þetta er rétt.
Svo ef stafla er vaxandi upp, þá generally-- það
þarf ekki að vera svona. en þú getur lýsa int x.
Síðan sem þú lýsa int y.
Þá Int x mun almennt vera lægri á mánudaginn en int y.
En það er bara staðreynd.
Það er ekki eins og óákveðinn greinir í ensku mikilvægur fræ hlutur.
>> Rob: Svo spurningin aftur var bara hvað gerist hver grind byggist upp.
Svo fær hver aðgerð a lítið stykki af stafla.
Og eins og þú fara upp, innan þess lítið stykki, innan þess ramma,
við munum segja að breytur innan þess ramma líka að fara upp.
Spurning?
>> Rob: Bara til að vera á mic.
HANNAH: Oh, já.
Rob: Ég tala í þig.
HANNAH: Oh, já, OK.
Rob: Undantekningin er fyrir fylki og structs,
þar fylki, lægri vísitalan á fylking,
og structs á hærra reit í structs
eru tryggð að vera á lægri heimilisföng en seinna stak fylkisins.
Þannig að þeir eru tryggð.
En einhverjir ákveðnir breytur innan, eins int x og INT Y innan virka,
það er engin þörf samband milli talna.
HANNAH: Önnur spurning hérna?
Nemandi: Svo í stuðpúða flæði, aðeins biðminni flæða
aðeins gerst þegar þú hafa, eins og, úthlutað
magn af fjölda sem þá er meiri?
Eins, getur þú?
Svo ef þú ert að biðja um eitthvað úr user--
>> HANNAH: Mm-HM.
Nemandi: Geta þeir valdi gefa þér eitthvað til baka
það er stærri en það sem þú hefur úthlutað fyrir þá?
HANNAH: Jú, þannig að spurning var í rauninni,
getur notandinn gefið þér meira en að biðja um?
Nemandi: Já.
HANNAH: Jæja, þú að koma í veg notandi frá að gera það.
Þú gætir sérstaklega segja að gera ekki gefa mér meira en x fjölda af bæti
Ég hef bara gefið þér pláss fyrir x fjöldi bæti, x fjöldi af stöfum.
Svo er það eitthvað sem þú vilt koma í veg.
Já?
Hver er munurinn á milli stafla flæða yfir og yfirflæði?
>> HANNAH: OK, þannig að stafla overflow-- ó, hvað
er munurinn á milli stafla flæða og biðminni flæða?
Þannig að við viljum að hugsa um stafla flæða gerast þegar við erum í raun og veru
stöflun upp þessa virka símtöl.
Segjum að þú ert með endurkvæma virka, vegna þess að við vitum að í hvert skipti sem þú
kalla virka, það er fær eigin ramma þess á mánudaginn.
>> Þannig að við stafla upp of hátt, og þá erum við að byrja að flæða.
Og við notum of mikið minni, og við höfum ekki neitt til vinstri.
Við fáum þessi villa.
>> Buffer flæða er innan áætlunarinnar.
Við viljum kannski ekki endilega hlaupa út af minni á sama hátt
til þess að vera ef við erum stöflun upp svo mörgum virka símtöl,
en við að skrifa framhjá minni að við vitum að við getum notað.
Og að leyfa okkur að gera illt.
Já?
>> Rob: Já, þú vilt kannski bara endurtaka þetta,
en þú getur líka hugsa reykháf flæða
eins og eins og ákveðna tegund af biðminni flæða.
Eða þú bara hugsa um þinn stafla sem raunverulega stór buffer.
Svo þegar þú flæða að stafla, það er góður af eins og a biðminni flæða.
En stafla flæða er bara tilteknum tíma notað þegar stafla
sjálft yfirfullt.
>> HANNAH: Einmitt, svo að endurtekið fyrir the vídeó,
það er hægt að hugsa um stafla flæða eins ákveðin tegund af biðminni flæða.
Cool?
Einhverjar fleiri spurningar áður en við förum á?
Ógnvekjandi.
>> OK, flott, þannig að við skulum tala um nokkrar algengar villuskilaboð.
Þetta er eitthvað sem hefur birst á mörgum Skyndipróf,
svo eitthvað sem er þess virði taka aðra líta á.
Ég er viss um að þú hafir kynnst að minnsta kosti nokkrar af þessum
eins og þú ert að gera vandamál þitt setur.
Svo tryggja að þú getur talað um þá á próf.
>> Svo er fyrsti a skiptingu kenna.
Og það er einhver tími sem við reyna að fá aðgang minni
að við erum ekki leyft að fá aðgang.
Svo þú migh hafa séð þetta, til dæmis, í Brot.
Ef uppgötva árekstri aftur null, og þá
reynt að gera eitthvað með þessi núll gildi,
tölvan myndi gefa þú skiptingu kenna.
Svo einn, mikilvægur hlutur til gera til að reyna að koma í veg fyrir þetta
er alltaf að athuga for null.
>> Þú gætir hafa einnig séð óbeina yfirlýsingu um virka.
Svo er þetta það sem gerist þegar Allison sýndi þér
hvernig við gera frumgerð, ekki satt?
Svo skulum segja að við höfum sumir fall sem við skilgreinum.
Segjum teningur.
Og það fer neðst af virka okkar, undir aðal.
>> Ef við gleymum að segja tölvuna um teningur, þegar helstu reynir að hringja teningur,
the tölva vilja vera, eins og, ó nei.
Ég hef ekki hugmynd um hvað það þýðir.
Ég veit ekki hvað ég á að gera, hér.
Svo frumgerð segir ekki hafa áhyggjur.
Ég ætla að segja þér.
>> Það mun koma.
Æpi þó ekki á mig.
Ekki gefa mér ekki óbeina yfirlýsing um virka.
Þannig að ef þú færð þessa villu, einn hlutur sem þú ert að fara til að vilja gera
er að tryggja að þú hefur frumgerð þína.
OK?
>> Og síðast en ekki síst, óskilgreinda auðkenni
er í raun þegar þú reynir að nota a breytu sem þú hefur ekki lýst.
Svo allt í einu er byrjað segja eins N plús plús.
Og tölvan segir það sem er n?
Þú aldrei sagt mér n var hlutur.
>> Svo eitt sem þú þarft að ganga úr skugga um að þú gerði er að segja tölvuna hvað n er.
Svo til dæmis, n gæti verið heiltala.
Og þá munt þú koma í veg fyrir þessa villu.
Einhverjar spurningar um algengar villur?
Já?
>> Nemandi: Fyrir óbeina yfirlýsing um virka,
gæti það líka verið að þú sleppt einn af bókasöfnum sem þú áttu
til að fela í sér, frekar en að frumgerð?
>> HANNAH: Einmitt, svo að spurning var, gastu
einnig fá þessa villu ef þú gleymdi að fela bókasafn.
>> Nemandi: Já.
>> HANNAH: Algjörlega, vegna þess að á sama hátt
að við viljum setja frumútgáfur okkar fyrir helstu virka,
ef við höfum bókasafn, þeir eru að fara að í raun fela frumútgáfur,
innihalda skilgreiningar af hlutverkum.
Frábær spurning.
>> Nemandi: Fyrir skiptingu kenna, myndi það einnig
gerast ef við, eins og, reyndi að fá aðgang að breytu,
eins og, í öðru [inaudible] en það var lýst í?
HANNAH: Jú, svo vildi við fá skiptingu kenna
Ef við reyndum að fá aðgang að breytu úr umfangi?
Var að spurningu?
Nemandi: Já.
HANNAH: Beautiful.
Svo sennilega, ert þú að fara að fá óskilgreinda auðkenni villa staðinn.
Svo það er bara að fara að segja Ég veit ekki hvað það er.
Cool, eitthvað annað?
Já, OK, falleg.
>> Allt righty, svo endurkvæmni.
Svo ég nefndi nokkrum sinnum að við gætum fengið stafla flæða
vegna þess að við köllum okkar endurkvæma virka svo mörgum sinnum.
Við erum að fá allar þessar stafla rammar, bla, bla, bla.
Hvað er jafnvel endurkvæma virka?
Jæja, a endurkvæma virka er hvaða fall sem kallar sig.
>> Sumir hlutir til að vera meðvitaðir um þegar þú eru að innleiða endurkvæma virka,
ekki gleyma að fela í sér grunn tilfelli.
A grunn tilfelli er hvenær við enda.
Svo, til dæmis, ef við erum að erfðaskrá, Segja, Fibonacci endurkvæmt,
við viljum ganga úr skugga um að þegar við fáum á 0 eða fyrstu Fibonacci tala,
þessir tvær tölur hafa þessar tilvikum, vegna þess að þeir eru ekki háð
um það, sem kom áður.
Þeir hafa eigin gildum.
>> Sumir kostir til endurkvæmni, sem er a spurning sem við höfum séð á undanförnum Skyndipróf.
Þeir geta leitt til meira nákvæm, glæsilegur númer.
Og mikið af störfum, a einhver fjöldi af mismunandi reiknirit,
raun lána sig til endurkvæmni.
Skilgreining þeirra gæti verið endurkvæmt í sjálfu.
Svo er Fibonacci einn.
Factorial er einn.
Sameina tegund er one-- allt hlutir sem hægt er að leita á.
OK, einhverjar spurningar?
Já?
>> Nemandi: Er horn tilfelli svipað grunn tilfelli?
Eða er það einhver önnur konar [inaudible]?
>> HANNAH: Jú, þannig a horn tilfelli er any-- svo
er horn tilfelli það sama og grunn tilfelli?
A horn tilfelli er nokkuð sem þinn númerið gæti hegða smá öðruvísi.
Grunn tilfelli er tegund af tengdar, í að þeir séu eins og sérstökum tilvikum
að þú vilt líta á.
En hugmyndin um grunn tilfelli er að þú vilt endurkvæmt færni
að hætta á einhverjum tímapunkti.
Það getur ekki haldið að kalla sig að eilífu.
Það þarf að hætta á einhverjum tímapunkti.
>> Rob: Já, oft, grunn tilvikum þínum gæti verið dæmi um horn bækistöðvar.
>> HANNAH: Right, kaldur, nokkuð?
>> Nemandi: Gætirðu útskýrt byggir svolítið meira?
Ég er ekki alveg að skilja [Inaudible] stöð tilvikum.
>> HANNAH: Of stöð tilvikum?
>> Nemandi: Base tilvikum, já.
>> HANNAH: Oh já, viss.
Við skulum sjá.
Eigum við Kalksteinn hérna?
Já, við gerum okkur.
OK, svo mjög fljótt, ég reyna að skrifa nógu stór
svo þú getur séð á skjánum.
Við skulum tala um, í raun fljótt, Fibonacci.
Svo ég ætla að gefa þér Fibonacci röð.
Þú getur litið upp skilgreiningu.
>> Í meginatriðum, hver tala í röð er summan af tveimur fyrri tölum.
OK, þannig að leiðin sem ég bara lýst Fibonacci,
þú gætir heyrt endurkvæmni, ekki satt?
Þegar ég sagði hver tala er Summa tveggja fyrri tölur,
gætum sagt OK.
Vel, NTH Fibonacci number-- svo skulum
segja að við höfum þessa aðgerð kallast fib-- FÍB n
er að fara að vera jafn og FÍB af n mínus 1 plus-- hryggur,
við munum fara á í næstu línu yfir here-- FIB af n mínus 2.
>> OK, svo virkar þetta mikill ef þú ert að horfa á, til dæmis, sem núll, einn,
tveir, þrír, fjórir, fimmta Fibonacci númer
þar sem þú getur sagt að 5 er jafnt og 2 plús 3.
En hvað ef þú ert í upphafi?
Hvað ef þú ert bara hitting Þessar fyrstu tvö gildi?
>> Til að fá þetta 1, þú getur ekki segja bæta tveggja áður,
því þessi núll and-- ég veit ekki.
Svo á einhverjum tímapunkti þurfum við að hætta.
Á einhverjum tímapunkti þurfum við að segja að þetta tveir bara eigin skilgreiningar þeirra.
The 0 Fibonacci tala er 0.
Og fyrsta Fibonacci tala er 1.
>> Svo eins og ég gæti að kóða þetta, ég myndi segja ef n er minna en tveir,
þá bara fara aftur n.
Og það væri stöð mál mitt.
Það er hvernig ég veit að hætta með endurkvæma virka.
Er það ljóst?
Ógnvekjandi.
Nokkuð annað á endurkvæmni?
Beautiful.
>> Skulum fljótt tala um leita og raða hlaupa sinnum.
Og þá mun ég gefa Davin sumum tími til að tala um að erfðaskrá dæmi.
Svo hér eru helstu leit og tegund sem þú ættir að vita um.
Guarantee-- Ég get ekki ábyrgst, vegna þess að ég hef ekki séð quiz--
en þetta kemur upp quiz eftir quiz eftir hætta.
Svo ákveðið að nota þetta graf.
Eins, að taka þetta töfluna.
Setjið það á svindlari lak.
Þú munt vera hamingjusöm manneskja.
>> Þetta segir okkur hlaupa sinnum hvers þessara flokka og leita reiknirit.
Svo línuleg leit er hægt að sjá hlaupa tími, og sama með tvöfaldur leit.
Fara yfir hvað þessir reiknirit gera, almenna hugmynd.
Horfðu á einhverjum sauðakóða, ef ekki sjálft.
>> Þú munt sjá að kúla raða hefur efri bundið í versta tilfelli af n veldi.
Svo ef array okkar var alveg afturábak áður en við vildum að raða það,
myndum við segja að það er fara að taka n í öðru veldi skrefum.
En í besta tilfelli, þannig að lægri mörk fyrir besta tilfelli
er að fara til að vera ef það er þegar fullkomlega raðað.
Þá er allt sem við þurfum að gera athuga að það er raðað.
Er einhver spurning hérna?
>> Nemandi: Hvenær myndi þú vilt nota svoleiðis?
Tegund.
Ég er bara forvitinn.
>> HANNAH: Hvenær viltu vilt nota val konar?
Þetta?
Sá sem er n veldi í báðum tilfellum?
>> Nemandi: [inaudible].
>> HANNAH: Svo er það mjög mismunandi.
Ef þú ert ákveðin kröfur um forritinu,
eins hluti eins ef við sögðum bara innleiða search-- sorry--
innleiða konar, þú munt væntanlega vilja fara
fyrir einn af þeim sem að hefur bestu mál á n,
eða lægri bundinn í besta tilfelli af n.
En það gæti verið ákveðna hluti eins og, segjum,
skiptasamningar eru virkilega dýr fyrir sumir ástæða.
Síðan sem þú vilt að gera kúla tagi, vegna þess að þú
að gera svo margar skiptasamninga, hlutir eins og þessi.
Allir other-- já?
>> Nemandi: Væri [inaudible] að segja að [inaudible]?
HANNAH: Það er eitt sem myndi segja þér
Ef þú ert að horfa á framkvæmd.
The vegur ÉG myndi reyndar hugsa um hvers vegna það er n
kvaðrat er að við verðum að keyra gegnum fylking okkar af lengd n,
hvert sinn sem gerir í mesta lagi, n skiptasamninga.
Og við verðum að gera þetta ferli n sinnum.
>> Svo þegar þú ert að gera í mesta lagi, n skiptasamninga og fyrir n rennur gegnum fylking,
það er að fara að vera n veldi.
En já, þetta kemur í ljós gegnum þetta tvöfalt fyrir lykkju,
og spurningin asked-- eða orpið fyrir lykkju, á ég að segja.
OK?
>> Og þá Mergesort, sem er the festa tegund við nú,
eða að við höfum fjallað í CS50, vita að helstu reiknirit er
þessi hugmynd um að brjóta í Raðað stykki og síðan
sameina saman þessar raðað bita.
Og vilja fá okkur log n log n.
Einhverjar spurningar um leit og konar áður en ég að gefa það?
Við skulum sjá.
>> Oh, tengd listum.
Sorry, ég hef eitt atriði.
OK, ógnvekjandi, tengd listum.
Vandamál með fylki, þeir hafa fasta stærð.
Svo ef þú veist ekki hversu stór inntak þitt er að fara að vera,
þú vilt ekki að búa til array.
Vegna þess að ef við búa til array sem er of lítill,
við gætum keyrt í biðminni flæða.
>> Þannig að í stað, getum við gert eitthvað með stiklum listum, sem
gerir okkur kleift að hafa breytilega stór gögn uppbygging
sem mun gera okkur kleift að geyma sveigjanlegri magn gagna.
Svo innan hvers hnút í okkar tengd lista, höfum við tvö stykki.
Við höfum í raun gildi sem það geymir.
Svo það er bara hlutur sem þú vildi sjá í fylkinu, til dæmis.
Og þá erum við að halda líka utan um a bendi á næsta hlutur í minni.
>> Ólíkt fylki sem við vitum eru allir að fara
að be-- array þættir eru öll eitt eftir annað í memory-- tengd
listar gætu verið hvar sem er í minni.
Þeir eru handahófskennt staði.
Þannig að ef við værum að raunverulega fara finna þá, við
þurfa að halda utan um næstur hlutur í listanum okkar.
>> Og þá í því skyni að vita hvar þessi listi í heild er,
allt sem við þurfum að halda utan um er Fyrsta þáttur í tengda listanum okkar.
Og það verður að leyfa okkur að fylgja í gegnum.
>> Svo er þetta hvernig þú gætir skilgreina ham.
Þetta er frábært tækifæri til að nýta sér structs.
Þar sem þú hefur þessa hugmynd, vel, fyrir tiltekið hnút, ég tvö stykki.
Ég hef í raun gildi sjálft.
Og þá hef ég bendi á Næsta þáttur í tengda listanum.
Svo þú sérð, höfum við heiltölu n, sem er að fara til vera the raunverulegur gildi,
og þá bendi hnút, kallaði næst.
Svo það er að fara til vera the næstur þáttur í tengda listanum okkar.
Nemandi: Já?
Þú þarft að tilgreina að stjarnan er eins strúktúrinn?
>> HANNAH: Já, svo þar sem þetta er næstum eins konar,
það virðast eins og a endurkvæma skilgreiningu í að við
þarf að vita hvað hnúturinn inni að finna hnút.
Þar sem það er í raun ekki vita hvað hnúturinn er alveg
þar til við fá til the endir af this-- og eftir þetta sem við getum bara kalla það
a node-- inni þessa skilgreiningu, við þurfum að kalla það struct hnút.
Frábær spurning.
Nokkuð fleira?
Já?
>> Nemandi: Hvers vegna eigum við að segja hnút tvisvar?
Því þegar við vorum í [inaudible] við þurftum bara að gera það í semíkommu,
en nú verðum við að komast að því að struct hnút? [Inaudible].
HANNAH: Svo ég tel í síðasta dæmi,
við vorum bara að búa hvenær sem þú vildu nota nemandi eftir það, þú
þurfti að nota strúktúr node-- Ég er sorry-- struct nemanda.
Þetta gerði okkur að, eftir því, bara nota hnút bæta nýja gerð, í meginatriðum.
Að skynsamleg?
Þannig að við myndum þurfa að fara til baka og líta á kóðann áður.
En ég myndi giska á að vér höfum ekki hagnýtt typedef.
Og við spurði, Hvers vegna þurfum við að nota typedef?
Typedef gerir okkur kleift að forðast orð strúktúr í upphafi.
Já?
Nemandi: Hvers konar spurningar myndi koma upp
hvað í skilmálum hnúður og tengd listum?
>> HANNAH: Svo eitt er að við gætum sagt hvernig gætir þú leitað í tengda listanum?
OK, því það er a svolítið flóknara
en ef við erum að leita gegnum fjölda.
Við getum bara líta á frumefni núll, þáttur eitt, þáttur tvö, bla, bla,
bla.
Ef við viljum leita gegnum tengda listanum,
við myndum í raun að fylgja þetta litla völundarhús af ábendingum.
Svo skulum raunverulega fara í gegnum þetta mjög fljótt.
Hvað við gætum gert í panta to-- skulum segja að við séum
langar bara iterate gegnum algjörlega tengda listanum okkar.
Við myndum byrja á höfðinu.
Og þá í því skyni að fara á næsta frumefni,
staðinn af réttlátur hækka um einn eins og við gæti í að fara í gegnum fjölda,
við erum í raun að fara til fylgja næsta músina,
svo við getum fundið þar í minni næsta þátt er.
Svo ég veit að það er ekki nóg að taka allt þetta í núna,
en þú munt hafa þessi skyggnur.
Svo þú getur farið í gegnum þetta svolítið hægar.
En í raun, það sem við viljum að gera er að fylgja þessum ábendingum
gegnum allt ferlið við að tengda listanum.
Þannig að þetta er spurning þú gætir verið að spyrja.
>> Eitthvað til tilkynningar með innsetning, segjum
við vildum að setja nýtt frumefni framan á tengda listanum okkar.
Við verðum að vera mjög varkár um röð þar sem við
færður ábendingum.
Vegna skulum segja að ég sagði bara OK.
Gera höfuð benda til þessa nýja frumefni.
Bara gera það benda til 1 Þá, þá erum við meginatriðum misst restina af listanum okkar,
vegna þess að ég man ekki hvar 2 líf.
>> Þannig að við verðum að gera í a mjög sérstök röð.
Fyrst gerum við nýja þáttur benda til höfuðs.
Og þá erum við að gera höfuðið benda á nýja frumefni.
Svo skulum sjá hvað það lítur út eins og með arrows-- bara svona.
Svo þú hefur fyrst nýja þáttur benda á gamla höfuð.
Og nú höfum við höfuðið benda á nýja fyrsta frumefni.
Einhverjar spurningar með þetta?
>> OK hér er nokkur númer aftur, eitthvað að líta á svolítið síðar.
Og nú mun ég snúa það yfir til Davin fyrir gdb og lítill hluti af æfa
kóðun á pappír.
Beautiful.
>> Rob: Og Rob.
>> HANNAH: Oh, Davin og Rob.
Fyrirgefðu.
>> Nemandi: Woo!
>> Ræna: Takk.
>> DAVIN: Viltu segja allt raunverulegur fljótur?
Rob: Já, já.
DAVIN: Þegar ég er upp.
OK, en Rob setur hljóðnema á, svo er það GDB?
Allir ættu að hafa séð GDB í flokki og einnig á skrifstofutíma.
Og þú ættir að vera að nota það.
Svo er það GDB?
Hver?
>> Nemandi: Það er a aflúsara.
>> DAVIN: Það er a aflúsara.
Og hvað þýðir það að leyfa þér að gera?
Eins og, hvers vegna eigum við eins GDB?
Nemandi: að hægja á áætluninni.
DAVIN: Einmitt, svo þú getur gengið gegnum það eins og manneskja hraða.
Og svo hvað eru sumir skipanir sem þú getur gert?
Jæja, brot er sennilega uppáhalds stjórn þinni.
Vegna þess að það gerir þér kleift að brjóta program og í raun ganga í gegnum það
línu með línu.
>> Run leyfir þér að keyra það.
Next, eins stepping í gegnum.
Hvað er á milli næstu og skref?
Bíddu, segja að upphátt.
Það var rétt.
>> Nemandi: [inaudible].
>> DAVIN: Já, ógnvekjandi.
Svo eins og, næsta og skref, ef you're-- segjum að þú ert með virka þú
skilgreina.
Skulum segja sumir í meginvirkni þínu, og þú ert bara hitting næsta, næsta,
næst.
Þú ert reyndar að fara að framkvæma að virka,
en þú ert að fara að stökkva yfir það.
Ef þú högg skref, eða s eða hvað, þú ert
fara til raunverulega hoppa inn að virka,
og þá er hægt að högg næst að sjá mismunandi símtöl
inni viðkomandi virka.
Já?
>> Nemandi: Er there a vegur að hoppa, eins, aftur út?
DAVIN: Finish, já, ljúka með stökkva þér út.
Svo það er að fara að klára það virka, og þá þú ert
að fara að vera aftur í helstu, td.
Print prentar það út einu sinni.
Eitthvað sem ég nota alltaf er sýna.
Sýna mun prenta það út stöðugt um heild
af forritinu.
>> Til dæmis, ef þú ert í for lykkju, og þú
langar að sjá hvernig eitthvað er að breytast, og þú vilt ekki að, eins og, stöðugt
vera að gera eins og að prenta út, prenta, prenta, sýna
mun birta þá breytu stöðugt, í hvert skipti sem þú högg Next.
Og halda áfram.
Svo GBD, það er GDB.
>> Nemandi: Hvað er einn hvar þú [inaudible]?
DAVIN: Hvað er það?
>> Nemandi: Hvað er the-- staðbundin breytum.
Rob: Það er eitthvað í raun eins heimamenn eða eitthvað.
I can't--
>> DAVIN: Það gæti verið eitthvað svoleiðis, já.
>> HANNAH: Í heimamenn?
>> DAVIN: Það er hann.
Það er eitt.
Ræna: Beautiful.
>> DAVIN: Já.
>> Nemandi: Hvað gerir áfram gera?
>> DAVIN: Það continues-- svo það er bara fara að halda áfram áætlunum þínum.
Svo ef þú brýtur og högg halda áfram, það er að fara
bara keyrt þessi forrit þar það niðurstaða sem hlé aftur.
Svo til dæmis, ef þú braut í aðgerð,
og þú ert að fara að gera eins og fyrir lykkja eða eitthvað svoleiðis,
og þú högg halda áfram, það er að fara til halda áfram og fara aftur til að brjóta.
Eða það er ekkert lát, það er að fara að halda áfram og klára program.
>> Rob: Svo bara eins keyra hættir á fyrstu mörk
þú högg, ef þér þá högg áfram, það verður að halda
fara fyrr en það er næsta Breakpoint.
Og halda síðan áfram mun fara í næstu mörk.
DAVIN: Allar aðrar spurningar um gdb?
Þannig að ég held að í fortíðinni, Við höfum beðið þér hvað
GDB er og gefa dæmi um nokkur atriði sem þú
getur gert með GDB, svo alvöru einfalt, en já.
Þar sem þú ferð.
Og hnúður?
>> Rob: Já, svo sem átt var það?
Nemandi: Það var það.
DAVIN: Bíddu.
Rob: Þessi strákur?
DAVIN: Það eitt.
Rob: Þessi strákur, ó, ég vissi ekki.
Þannig að við vorum ekki ljóst á hvað the-- ég ekki
vita hver það was-- en spurningin.
Við vitum ekki nákvæmlega hvað þú voru að biðja um það, svo bara
að skýra eitthvað.
Svo fyrst, eins og ég sagði áður, typedef þú ert alltaf að nota bara
búa gælunafn fyrir gerð.
Svo hérna, gælunafn sem við erum að búa til er fyrir þessa tegund struct hnút.
>> Svo fyrst, hunsa þetta hnútur í typedef, þannig að þetta struct hnút hrokkið
Brace niður að næsta hrokkið Brace er struct hnút tegund.
Og við þurfum að þeim hnút þar upp vegna þess að við
þarf að vísa hnút í hér.
Svo með þessa tegund af endurkvæma strúktúrinn, þú þarft að gefa þetta struct nafni,
eða annað sem þú getur ekki segja struct hnút í hér.
En áður með nemanda þegar við vorum slegin, að ég held,
við fengum ekki að segja nemandi þar upp vegna þess að við
þurfti ekki að segja strúktúr nemandi inni í strúktúr sig.
Svo er það endurkvæma sem neyðir okkur að segja hnút þar.
>> Þessi hnútur er bara nafn sem við erum gefa hnút fyrir typedef.
Svo þessi hnútur er ekki það sama og hnút.
En þetta struct hnút er sama og struct hnút.
DAVIN: Svo þegar þú hringir, eins, hnút í meginvirkni þínu,
þú ert ekki að fara að hafa að segja struct hnút.
Þú getur bara sagt hnút, því hnútur er different-- er í grundvallaratriðum
þú ert að segja, OK.
Í stað þess að þurfa að hringja struct hnút í númerið mitt,
Ég vil bara að endurnefna það eins hnút til að gera það auðveldara.
>> Rob: Ef þú alltaf nota typedef, þá er þetta
er eini staðurinn sem þú ert að fara að hafa að lýsa yfir breytu með struct hnút
star, já.
>> DAVIN: OK, þannig að seinni hluti er erfitt að kenna because--
Rob: Hvað?
>> DAVIN: Vegna þess að það er kóðun á pappír.
Svo á hverju ári sem við höfum kóðann á pappír spurningar.
Þannig að ég held að á síðasta ári, 12 af 80 stig voru númer á pappír.
Ári áður að 10 af 80, árið áður, 20 af 100,
svo alveg nokkrar af þessum.
Svo þú ert að fara að þurfa að vera fær um að kóða upp þessar aðgerðir af hendi.
>> Svo ég mynstrağur við gætum farið í gegnum a par af þeim og sjá hvernig fólk gerir,
konar ganga í gegnum þá hægt með fólk.
Svo almennt, strlen og atoi hafa verið mjög vinsæl.
Á síðasta ári, ég held að við höfðum GetPositiveInt og RandomInt.
En Pow, svo máttur, einnig jákvæð líka.
Skulum fara bara í gegnum kannski einn eða tveir af þessum saman.
Hvað fólk vill sjá?
>> Nemandi: Atoi.
Nemandi: Já.
DAVIN: Atoi?
Nemandi: [inaudible].
DAVIN: OK, ég ætla að fara að gera það á borðinu.
Gera þú hafa a val ef ég gera það hér eða þar?
Þar Gabe segir þar.
>> Rob: Og þetta er almenn hugsanir á þessum erfðaskrá spurningum.
Reyndu að skrifa eitthvað.
Ekki skilja það eftir autt.
>> DAVIN: Já.
Rob: Ef þú getur fengið aftur gerð rétt,
eða kannski við gæti gefið það til þú, en ef þú getur, eins og,
skrifa almenna virka undirskrift, Ef þú getur fengið grunn tilvikum rétt,
eða horn tilvikum, eða muna athuga for null,
eins lengi og þú hafa sumir hlutir, þá kannski við
getur gefið þér nokkrar bendir fyrir vandamál.
Ekki bara láta það eftir autt.
>> DAVIN: Já, og ef þú eru bara alveg
stumped á hvernig á að raun snúa inn kóða.
Ef þú skrifar sauðakóða, það er nokkuð gott líka.
Svo það er eins og, það er sex lið spurning, og þú skrifar rétta sauðakóða,
þú munt fá að minnsta kosti tveimur stöðum.
Svo er ekki bara láta þá auður.
Reyndu að setja eitthvað.
>> Rob: Það þarf að vera rétt sauðakóða, þó.
>> DAVIN: Já.
Rob: Þannig að við erum almennt minna vægari með galla í sauðakóða.
DAVIN: OK, svo þú krakkar vildi sjá atoi.
OK, svo bara really-- svo hvað þú vilt gera
er þú ert að fara til vera gefið einhvers konar tölu.
En þetta númer er ekki fara að vera int, ekki satt?
Hvað er það að fara að vera?
>> Nemandi: [inaudible].
>> DAVIN: Það er að fara til vera a band, ekki satt?
Svo ef þú varst gefið a string-- skulum say--
>> Rob: Ætti ég að draga upp ritstjóri?
Ég get draga up--
>> DAVIN: Oh, þú vilt gera það on--
>> Rob: Vilt þú kýst borð?
>> DAVIN: Hvað viltu gera?
Ég meina, þú vilt gera það handvirkt?
Eða þú vilt gera það með tölvu?
>> Rob: Gerðu það af hendi.
>> DAVIN: [Hlær]
Rob: Gerðu það af hendi.
>> DAVIN: OK, svo það er að fara til vera atoi.
Svo er það it-- ég meina, við munum líklega gefa þér þetta.
En hvað er það að fara að fara aftur?
>> Nemandi: Int.
>> DAVIN: Það er að fara að skila int, ekki satt?
So-- Ég vil ekki að gera það þar.
Ég skal gera það hér.
>> Rob: Þú getur rífa það niður og þá ýta upp á það.
>> DAVIN: já.
[Hlær] Game breyting.
OK, þannig að það er að fara að vera int atoi, og hvað er það að fara að taka?
A bleikju stjörnu, svo bara band, stjörnu s, eins og þessi.
>> Rob: Nice stjörnu, ágætur.
DAVIN: Þetta gæti ekki vera þar, OK.
Ræna: Já.
DAVIN: OK, þannig að fyrstu hlutur sem þú vilt do-- I
veit ekki hvort einhver leit á starfshætti solutions--
en hvað þú ert að fara til að vilja gera er að þú ert
fara til að vilja hafa lykkju, vegna þess að þú ert
fara að vilja til raunverulega skref í gegnum þetta band.
Svo helpful-- Svo skulum segja við erum að fara til a for lykkju,
og við erum að fara að stíga í gegnum hver þáttur af the band.
Hversu lengi er það?
Hversu oft við erum að fara að iterate í að fyrir lykkju?
Nemandi: Sterln?
DAVIN: Sterln, já.
Svo skulum segja INT lengd jafngildir sterln s.
Og bara forvitinn, hvers vegna er það alltaf góður af betra að gera þetta utan lykkjur?
Eins, hvers vegna er það betra að hringja þessi aðgerð utan úr lykkju?
Just a fljótur geðheilbrigði athuga?
Já?
Nemandi: Svo þú ert ekki verðum að halda stöðva það.
Þú getur bara [inaudible].
>> DAVIN: Einmitt, svo já, nákvæmlega hvað hún sagði.
Þannig að við þurfum ekki að halda stöðva það.
Svo til dæmis, ef ég er að hringja þessi aðgerð inni í lykkju,
þá er ég að fara að halda að hringja þessi aðgerð mörgum sinnum.
Og það er að fara að minnka skilvirkni program.
Svo það er alltaf gagnlegt að lýsa það utan.
>> Rob: Það er sagt, á eitthvað af þessum vandamálum,
ansi mikið og lengi sem þú færð a vinna lausn, þú færð fullt kredit.
Svo ekki hafa áhyggjur ef hönnun er algerlega horrendous.
Það gæti gert okkur uppnámi lesa kóðann.
En svo lengi sem það virkar, þú munt fá stig.
>> DAVIN: Já.
OK, svo þá er ég að fara til lýsa sumir breytu.
Það er bara að fara að hringja í int summa.
Og ég ætla að setja þetta jafnt og núll, eins og þessi.
Og það er bara að fara að vera tákn.
Svo það er að fara til vera hvað ég ætla að fara aftur.
Þannig að ég ætla að fara að lokum aftur summan af þessu forriti.
Þannig að ég hef þessar tvær breytur.
Ég hef lengd.
Ég hef summa.
Og nú skulum hoppa í band okkar.
>> Svo lætur hafa okkar fyrir lykkju.
Svo fjórum INT I er 0 m, en I er minna en lengd I plús plús.
Og now--
Ræna: Nice.
DAVIN: OK, og nú hér kemur kjöt af kóða.
Svo þú getur raunverulega gert þetta í grundvallaratriðum í einni línu.
Svo þýðir einhver hafa hugmynd af því sem við erum að fara að gera næst?
OK, svo er það í lagi.
Þannig að við erum að gera að segja summan equals-- láta mig fararskjóti þetta over-- summan
jafngildir summan sinnum 10 plus-- við erum fara að taka s I mínus einn
Quote 0 ein tilvitnun gert, eins og þessi.
Rob: Very innsæi.
>> DAVIN: Mulið það.
OK, svo someone-- ég fékk hana, ég fékk það.
OK, þannig að þetta er greinilega að fara upp.
Hvað þýðir þetta?
Svo þýðir einhver veit hvað þetta þýðir?
Getur allir sjá þetta?
Nei, enginn getur séð þetta, OK.
Ég ætla to--
>> Rob: Ég ætla að skrifa uppskrift bara hérna.
DAVIN: OK, Rob er að fara að gera það á tölvu, sem er gaman.
Rob: Ó Guð minn.
Eða ég ekki.
DAVIN: Standa með.
Nemandi: Ég er með spurningu.
DAVIN: Já, viss.
Nemandi: [inaudible]?
DAVIN: OK, svo það í raun, eins, bara almennt,
Ef þú varst að setja, eins og, í yfirlýsingu þessari int
I er 0 kommum lengd jafnt sterln, that--
>> Nemandi: [inaudible].
>> DAVIN: Það er allt í lagi, vegna þess að that--
Nemandi: Hvers vegna vildi þú jafnvel þurft að nota lengd?
Hvers vegna gætum við ekki bara [inaudible] sterln s, eins og alla tíma [inaudible]?
>> DAVIN: Meinarðu hérna?
>> Nemandi: Já.
DAVIN: Þar sem sérhver skipti sem þetta for lykkju keyrir,
það er að fara að meta þetta ástand.
Nemandi: Hægri.
DAVIN: Og ef þú ert sterln þar, þá er það
fara að raunverulega kalla að hlutverk hvert einasta sinn.
Þannig að í stað þess að bara bera það int
þú ert að fara að hringja í virka og þá bera það
til skilagildi.
Já, svo er það bara, já.
>> Nice, OK, svo nú geta allir séð það.
Hvað does-- þetta er eins og þetta er það.
Þetta er sulta, hérna.
Hvað þýðir það?
Hvað er ég að gera?
Já, hugmynd?
Já?
>> Nemandi: Ja, svo þegar þú ert að slá inn fjölda,
þú ert að fara að vera að fara frá vinstri til hægri,
svo þú ert að fara að vera að fara í aukastaf frá niður [inaudible].
DAVIN: Einmitt.
Nemandi: Svo hver þú þarft að margfalda
það sem þú sást sem verðmæti int með þeim tíma sem þú færð til að færa þá yfir einn.
>> DAVIN: Perfect, fullkominn, svo til dæmis, við skulum
segja að ég gaf you-- ég fara að skrifa hérna.
Nei, ég er ekki.
Ég ætla að skrifa hérna.
Segjum að ég gaf þér 76, ekki satt?
Segjum að ég gefa þér 76.
Það er a band til að byrja með, allt í lagi?
>> Svo er lengd hvað?
2, ekki satt?
Summan er 0.
Þá erum við að hoppa í okkar fyrir lykkju.
OK, fyrsta endurtekning af þetta, hvað er það að fara að vera?
Það er að fara að vera summan er 0.
Svo summa sinnum 10 0.
Það er tilgangslaust.
Þá hvað gerir þetta?
Nemandi: [inaudible].
>> DAVIN: Það er að fara að snúa því eðli í heiltala, ekki satt?
Það er góður af eins og með þinn vandamál set-- þessu light--
það er góður af eins og með Heimadæmi á Visioneer.
Þú ert að fást við ASCII gildi.
Svo ef ég gefa þér, eins og, a sjö, en það er a eðli,
og þú vilt vita, OK, hvað talan er það?
Já, þú gætir, já.
Svo hvað talan er það?
Þú gætir draga 0 af því, en þú þarft að draga 0, eðli.
>> Og þar sem sumir fá skemmtiferðamaður upp, þá eru þeir
eins, OK, vel, ég verð að vita ASCII gildi fyrir þetta próf?
Nei, þú gerir örugglega ekki þarf að vita ASCII
gildi, eins og, lágstafir a, hástafi A, núll.
>> Rob: Það er engin ástæða til að alltaf setja þetta á svindlari lak.
>> DAVIN: Ákveðið að gera ekki sóa plássi með þessu.
Þú getur literally-- bara staðinn að segja 48, eins og hægri upp
það, sem svarar til segja eitt, einn úrfellingarmerki,
svona, nákvæmlega það sama.
>> Rob: Þú gætir næstum að hugsa um það eins if-- Guð, ég þarf minn,
oops-- þú gætir næstum að hugsa um það eins og ef við höfum eitthvað svoleiðis kjötkássa
skilgreina 0 sem 48.
Það mun ekki vinna.
En hugsaðu um það sem einn vitna 0 einn quote, og fyrir alla stafi.
Hugsaðu um það eins og a fasti sem táknar að ASCII gildi.
>> DAVIN: Já.
OK, þannig að í fyrsta sinn í gegnum, svo með 76-- svo í fyrsta skipti í gegnum,
þetta er bara eðli 7 mínus eðli 0,
og þeir eru sjö integers-- vel, þeir
eru sjö rými í burtu frá hvor öðrum á ASCII töfluna eða hvað sem er.
Svo það er að fara að skila int 7.
Svo nú, summan jafngildir 7.
>> OK, vel, við skulum hoppa þetta fyrir lykkju aftur.
OK, nú er það summa sinnum 10.
Svo þú ert í raun færa 7 til vinstri.
Er að skynsamleg?
Þú ert í raun færa það til vinstri.
>> Og þá þú add-- þetta er að fara að vera 6 mínus 0.
Það er 6.
Svo það er að fara að vera 70 plús 6.
76, það er númerið þitt.
Svo óháð hvaða tala Ég gaf þér, það er hægt bara
fara að skipta stærri gildi til vinstri, 1 þáttur af 10
í hvert sinn í for lykkju, og þá bæta við á eftir þörfum.
>> Í bak?
Nemandi: Við þurfum ekki að gera allir að haka í áætluninni?
>> Rob: Svo eins langt eins og stöðva fer fyrir the program,
myndum við segja þér nokkuð mikið það sem þú þarft til að athuga.
Ef við segja þér ekki neitt, þá yfirleitt
ráð fyrir að þú þarft að athuga hvað annað.
Eins og þú might, bara til að vera örugg, þú ætti líklega að athuga hey, er s null?
Þá hef ég ekki hugmynd um hvað ég á að fara aftur.
En við myndum segja þér þessi tegund af hlutur.
0, ég veit það ekki.
>> DAVIN: Og hvers vegna vildi þú vilt að langsóttur ef s jafngildir null?
Nemandi: [inaudible].
DAVIN: Vegna bleikju stjarna.
Það er a bendi.
Svo fullkomlega ásættanlegt yfirlýsingu, gæti ég sagt, OK,
s jafnt null, vegna þess að það gæti verið bendi núll.
Svo þegar þú hefur ábendingar í vegi þínum í svona,
þú ættir sennilega að athuga.
Vegna þess að ef þú hakar ekki, og þá fara þá í þínar fyrir lykkju,
og þú ert doing-- fararskjóti niður.
Fararskjóti niður.
>> Rob: Því miður, það er það.
>> DAVIN: Og svo, eins og, ef það er ekkert, og þá þér
gera þetta, hvað villu ert þú að fara að fá?
Nemandi: Þú ert að fara fá a setja sök.
DAVIN: Þú ert að fara að setja kenna, ekki satt, vegna þess að þú ert
reyna að kemba í null.
Svo þú ert að fara að reyna að kemba í minni sem þú átt ekki.
Þannig að þetta, ef þetta er ekkert, og þú gerir þetta, munt þú hringrás.
>> Rob: Ég held líka á prófinu sem Við spurði þessa spurningu, segja við ykkur
að þú getur bara gert ráð það er jákvæð tala.
Vegna atoi er einnig gert ráð fyrir meðhöndla neikvætt tölur,
svo þú þyrftir að sérstökum tilvikum.
Hey, er fyrsti stafurinn a þjóta, en í því tilviki, OK,
nú er það neikvæð heiltala.
Við munum segja þér þessar tegundir af hlutum.
Við munum segja þér hvað þú þarft til að höndla.
DAVIN: Já.
Þannig að ég er viss um að sumir gætu have-- ef þú byrjaðir að horfa á gömlu prófum,
þú hefur séð sterln.
Það er vinsæll einn.
Og ég held að í sterln, þurfti að gera þetta ávísun fyrir engu, aftur
0 eða eitthvað svoleiðis.
Eins, hafði þig til að athuga for null.
Og ef þú gerðir ekki, að var benda burt á quiz.
Svo engu að síður, er alla finnst í lagi með atoi?
Hefur einhver vilja til fara yfir hluta aftur?
Rob: Oh já, ég held við segja þér einnig þér
má ráð fyrir að allt is-- að þeir eru í raun að slá inn númer,
að þú þarft ekki að hafa áhyggjur, eins, bréf að vera í streng, svo.
DAVIN: Já.
Já?
Nemandi: Getur þú ferð yfir eitt meiri tíma þegar
þú notar tvöfalda tilvitnun og einn tilvitnun?
>> DAVIN: Jú, svo tvöfaldur vitna, mjög einfaldlega, er tvöfaldur vitna eru strengir.
Svo ef þú tvöfaldur vitna eitthvað, það er band.
Svo, eins og ef ég hefði þetta 0 hérna, og ég gerði þetta, það er band.
Það er ekki lengur a staf.
Svo ég get ekki fundið þetta gildi á ASCII minn Mynd, því það er a band, já.
>> OK, aðrar spurningar?
Já?
>> Nemandi: Svo þú hefur þegar svarað þessu,
en eins og, þegar við erum í raun og veru skrifa þetta á við próf,
viltu okkur að skrifa með rista zeroes [inaudible]?
DAVIN: Nei
Spurningin var þá ættir þú setja skástrik gegnum núllin
að gefa til kynna hvort þeir eru núll?
Nei, við munum reikna það út.
Já, takk, þeir eru góður.
OK, allt annað?
Hefur einhver vilja to-- svo ég held sem við höfum keyrt svolítið tímanum.
Viltu sjá annað, eða?
Nemandi: RandomInt.
>> DAVIN: RandomInt, OK, einmitt.
Svo skulum gera RandomInt.
Ég skal gera það hérna.
Svo er RandomInt raun miklu einfaldara.
Ég held atoi er líklega erfiðasta einn að við höfum beðið í fyrri árum.
Nemandi: [inaudible].
>> DAVIN: Hvað?
Rob: Ég ætla að sjá hvort það er góður af hægt að skoða frá hérna.
DAVIN: Er það?
Rob: Ég held ekki að það er going-- ég held það er að fara að hlaupa burt til hægri.
DAVIN: OK, þannig að ég ætla að gera þetta einn.
Og þá setja bara það á skjánum.
>> Rob: Allt í lagi.
>> DAVIN: Þú vilt vera fræðimaður minn?
>> Ræna: Já.
>> DAVIN: Nice.
OK, get ég eytt þessu?
>> Nemandi: Já.
>> DAVIN: Það er svo erfitt.
(Söngur) Þú ert að gera hvað þú ert að gera.
Og gera það sem þú gerir ekki.
Allt í lagi.
>> OK, ef ég man rétt, á prófið sem RandomInt var eins,
OK, ég ætla að gefa þér tvö tölur, eins og eitt og b.
Og ég vil að þú að gefa mér a RandomInt milli þessara talna.
Svo RandomInt er að fara að taka tvær Numbers
svo RandomInt-- og það er fara að skila int.
>> Svo er það aftur gildi?
Ég sagði bara þú.
Int, ekki satt?
Eins og þetta, og þá er það fara að taka tvær ints.
Svo það er að fara að taka int a og INT b, eins og þessi.
Svo hvað RandomInt er fara að gera er að það er að fara
að skila sumir af handahófi gildi á milli þessara tveggja gilda.
Svo það er að fara að vera meiri en a, minna en b.
Svo ég held að þú getur sennilega gert ráð fyrir að a er minni af tveimur gildum.
Þannig að ef við erum að fást við randomness, hvað virka
höfum við séð að gefur okkur handahófi hluti?
Nemandi: Drand.
DAVIN: Drand, nákvæmlega.
Svo þú ert að fara að öllum líkindum vilt nota drand þína.
Svo er hægt að segja INT handahófi, og við munum bara segja að það er 0 núna.
Og þeir eru að við erum að fara að segja, OK, handahófi Jafnt drand 48.
Og hvað þýðir þetta aftur?
Hvað þýðir þessi aðgerð gefur þér?
>> Nemandi: milli 0 og 1.
>> DAVIN: Já, á milli 0 og 1.
Svo það er að fara að be--
>> Rob: Og þetta is-- ég held myndum við segja þér þetta.
Eins er hægt að nota drand 48.
Þú getur staðfest þetta á undanförnum prófið.
En við myndum líklega segja þér getur notað drand 48, sem
skilar flotholti milli 0 og 1.
>> DAVIN: Já, já, ég er nokkuð viss á prófinu
það segir þér líklega vilt nota drand, já.
Svo það er að fara að fara aftur eitthvert gildi á milli 0 og 1.
Og hvað þá ert þú fara til að vilja gera?
Jæja, þú vilt að margfalda by-- bíddu, ég held að það er eins og þetta, því miður.
Ég ætla bara að gera þetta.
Ég veit ekki.
>> Svo b mínus a.
Svo hvers vegna b mínus a?
Svo skulum segja drand gefur þig aftur sem int-- OK, ég verð bara að gera the hvíla,
svo plús a.
Svo hvað does-- y er b mínus a.
Svo skulum segja að drand gefur þig aftur hámarksgildi það gæti hugsanlega
gefa þér.
Hvað er að fara að vera?
Nemandi: 1.
>> DAVIN: 1, ekki satt?
Þannig að ef þetta er 1, og þú ert margfalda það með b mínus a,
Jæja, það er bara munurinn mínus A.
Og ef þú bætir þá aftur á a, sem er hvað?
Það er í grundvallaratriðum b.
Er að skynsamleg?
>> Nemandi: Já.
>> DAVIN: Svo ef þetta er hámark gildi það gæti hugsanlega verið,
það er að fara að vera 1.
Og þá er þetta bara munurinn á milli tveggja.
Bæta við á a, þannig að þetta er fara að skila af handahófi.
Og í horninu að ræða sem drand gefur þér aftur 1,
handahófi verður bara vera í raun að b.
En það er hámark það getur verið.
Þannig að ef það er að fara að vera minna en það, svo við skulum segja að þess eins 0,9,
svo þá 0.9 sinnum b mínus a er að fara að vera minna
en mismunur milli b mínus.
>> Og svo ef þú bæta við að á að a, þá er þessi gildi
fara að vera meiri en a, því þú ert að bæta eitthvað á það,
en það er að fara að vera minna en b.
Svo þú ert að fara að fá a handahófi númer, því þú ert að kalla drand.
Og það Rand, sem handahófi tala er fara að vera einhvers staðar á milli a
og b.
Er að skynsamleg?
>> Rob: Bara til að setja það í steypu tölur, svo
Segjum að við viljum velja a slembitölu milli 7 og 10.
Svo b mínus a er allt okkar.
Svo er það á bilinu þremur tölur sem við viljum að velja úr.
Og síðan margfalda að á milli 0 og 1 1,
ef það þá gefur okkur some-- skulum segja að gefur okkur 1.5.
>> Þá 1.5, við viljum fara 7-10.
Svo 1,5 plús 7 færir okkur aftur í 7 til 10 úrval okkar.
Og svo við erum að geyma það inni heiltala, svo það stytt niður til 8.
Og þá erum við aftur bara það.
Svo b mínus a er allt okkar.
a vaktir það upp í tölur að við viljum innan þess marka.
Svo á milli 7 og 10, og þá erum við getur aftur það sem við enda upp með.
>> DAVIN: Já, ágætur.
>> Rob: Þakka þér.
>> DAVIN: Já, hvað er uppi?
>> Nemandi: Eigum við að keyra það til hvers konar ASCII villur þegar we're-- ef drand er
skila float [inaudible].
>> Rob: Svo bara eins Rob sagði vegna þess að handahófi er ekki int,
svo drand verður fljóta.
Svo og svo það fjölgar út.
Og þú gætir fengið nokkrar konar fljóta númer.
Og þá er það að fara að HÃ.
>> Nemandi: OK.
DAVIN: Já.
Rob: Og ef þýðandinn var að vara þú um, eins og, tap af nákvæmni,
bara hent við int í þar, og þá er það gott.
DAVIN: Já?
>> Nemandi: Væri hafa sömu líkur á að fá,
eins, b eða a [inaudible]?
>> Rob: Svo is-- Ég er reyndar wondering-- er RandomInt svokallaði
að vera númer frá A til minna en B?
Eins, ef það er á milli 7 og 10, hvað eru möguleikarnir?
7, 8, og 9, eða 7, 8, 9, 10?
DAVIN: ég gleymi.
Á vandamálinu set--
>> Rob: Ég held að það er 7, 8, 9.
>> DAVIN: Það segir sérstaklega manns án aðgreiningar og einn er einkaviðtal.
>> Ræna: Já.
>> DAVIN: En ég don't-- ég not--
>> Rob: Þannig að ég held að þetta sé ekki innifalinn, en í því tilviki,
það er jafn líkur á 7, 8 og 9.
There er engar líkur á 10.
DAVIN: Já?
Nemandi: Ég er með spurningu.
Við viljum til að skilgreina fall skilar ekki eitt gildi, en fylki.
Þá hvað væri setningafræði eftir aftur?
>> DAVIN: OK, svo þá getur þú would-- eftir aftur?
Svo skulum segja að þú hefðir lýst fylki einhversstaðar þarna.
Þá myndi bara aftur nafn fylkisins.
>> Nemandi: OK, þakka þér.
Þá bara fara aftur með a--
DAVIN: Oh bíddu, samhryggist.
Spurningin var hvernig þú aftur fylki.
>> Rob: Þó það gæti ekki vera fylki lýst
á mánudaginn eða eitthvað svoleiðis.
Það þyrfti að vera eitthvað malloced, vegna malloc
er hvernig þú færð í kring Sjálfvirk minni úthlutun.
>> DAVIN: Já.
Rob: Hvernig þú færð í kringum staðbundna umfang.
>> DAVIN: En þú myndir bara aftur name-- sína
>> Nemandi: [inaudible] það er ekki einn gildi, fyrir td tvær tölur, svo
[Inaudible].
>> DAVIN: Þú getur ekki snúið aftur margar númer.
Þú getur ekki, eins og, return--
>> Nemandi: Ég talaði um að fara aftur fylki eða eitthvað svoleiðis.
>> DAVIN: Já, þannig að spurningin er get ég aftur mörg gildi.
Þú getur ekki snúið aftur mörg gildi.
Þú getur ekki, eins og, aftur a þá aftur B eða eitthvað svoleiðis.
Vegna þess að eftir að þú aftur, þér komist út úr fallinu.
Og þá virka er gert, og eins Rob sagði, er á mánudaginn.
>> Þannig að allir sem minni verður bara aftur við tölvuna.
Allt fær gleymt, í grundvallaratriðum.
Svo ef þú vilt að skila mörgum gildi, þú þarft að skila array,
Og hvernig þú gerir það er mallocing.
Og þá myndi aftur x svoleiðis.
Í grundvallaratriðum, þú aftur bara nafn.
Og þegar þú kemur aftur eitthvað eins og þetta, þú ert
ekki í raun að skila gildi.
>> Svo skulum segja að þú settir gildin í array.
Þú ert í raun ekki aftur þá gildi.
Eins og, ef ég skilaði int, ég er virkilega aftur afrit af þeim gildum.
En ef ég væri að fara aftur eitthvað eins og þetta,
Ég ætla að skila tilvísun þeim gildum.
Þannig að ég ætla aftur, í grundvallaratriðum, a minni heimilisfang þeim gildum.
Er að skynsamleg?
Nemandi: Já.
DAVIN: Nice.
Já?
>> Nemandi: Þegar þú ert nota drand hérna,
þú þarft að setja srand áður?
>> DAVIN: Nei, nei, ég held ekki svo.
>> Rob: Einmitt, svo þú hefur að segja neitt um srand?
Sjálfgefin ykkar aldrei segja srand yfirleitt er bara að gera srand af engu.
Svo drand á eigin vilja vinna sína.
Og það vilja á sjálfvirkan fræ með núverandi tími, er það sem það notar.
DAVIN: Já?
Nemandi: Ert þú [inaudible] með tölurnar?
DAVIN: Já, þú getur.
Nemandi: svo þú gætir segja eins, 4 sinnum 2.
Málið er, að þú getur ekki gert ráð fyrir þá er int fjögur bæti.
The only--
>> DAVIN: Ég meina, fyrir spurningakeppni sem þú getur.
[Hlær]
>> Rob: Mm, nei.
DAVIN: Já, já þú getur.
Ef þeir spyrja þig hversu stór int er, þú getur ekki verið, eins og, fjórum eða átta.
Rob: Oh, þannig að ef Spurningin er sérstaklega,
eins, ef það er kóðun vandamál, þú ættir að segja stærð int.
Ef það er borð, eða það segir hversu margir bæti,
þú ættir ekki að fylla í stærð ints.
>> NEMENDUR: [Hlær]
>> DAVIN: Einmitt, svo er hvers vegna stærð int mikilvægt hér?
Svo eins og ef við erum að fara til 32-bita örgjörva eða eitthvað svoleiðis,
þá er það að fara að vera fjórir bytes.
En á sumum af nýrri efni, gæti það verið hvað?
Það gæti verið átta, ekki satt?
Svo this-- ef þú bara erfitt kóða fjórir, þá á sumum vélum, mun það vinna.
Sumir vélar, mun það ekki vinna.
En ef á spurningakeppni við erum eins og hvernig stór er int?
Setjið fjórar.
Ræna: Hægri.
DAVIN: Já?
Nemandi: Svo vegna þess að við erum að lýsa yfir [Inaudible] inni fall,
ættum við að setja 3 inn fyrir þau virka?
Eða getum við notað það úti?
DAVIN: Þú getur notað það utan að virka.
Svo hann er að biðja um ókeypis.
>> Nemandi: Missa lag hvar [inaudible].
>> Rob: Oh, frjálsa ekki happen-- sem er hluti af göldrum malloc
er að þú ert ekki takmarkast við staðbundin umfangi.
Þú hefur fulla stjórn yfir hversu lengi breytur lifa.
Svo við köllum malloc hér, gæti það vera fullkomlega aðskilin virka.
Það gæti verið 10 klst síðar sem við köllum loksins frjáls.
>> DAVIN: Svo td eins og, a par vikur frá núna þegar þú loksins
gera orðabók Speller þína psets, ætlar þú að fara
að hafa einhverja aðgerð sem skapar tonn af hnúður.
Svo þú ert að mallocing tonn hnúta í þessa aðgerð.
Og svo seinna í aðskilin virka, þú ert
fara að vilja til að losa alla þá hnúta.
Svo þú getur bókstaflega bara fara til losa músina, svo minni heimilisfang
við hvað þú malloced.
Og það verður allt í lagi.
Þú þarft ekki að losa, eins og, í sömu virkni.
Já?
>> Nemandi: Svo malloc breytilegur [inaudible] utan?
Er það sem þú ert að segja?
DAVIN: Bíddu, segja að?
Sorry.
>> Nemandi: Ef malloc breytu geta vera frjáls hvar sem er í kóðanum,
þá geta þeir nálgast hvar sem er í kóða?
Getur þú haldið þeim staðbundin?
>> DAVIN: Oh, spurði hún, eins, breytu, like--
>> Rob: Svo þú þarft enn að hafa einhverskonar tilvísun
að loka á malloc átti minni.
Svo hér erum við aftur x.
Nemandi: Oh.
Rob: Ef við ekki aftur x hér, og þetta voru bara tóm,
þá yrðum við ekki aðgang að bendillinn var malloced,
og það er leki minni.
>> Nemandi: OK.
>> DAVIN: Svo eins og við skulum segja þér hafa þetta, eins og, hérna.
Rob: Nei
DAVIN: Í meginvirkni minn, ég get ekki bara kalla þetta x og vera, eins og, OK,
í þessari aðgerð, ég gerði þetta.
>> Ræna: Hægri.
>> DAVIN: Þannig að ég ætla að fara að hringja x í, eins, helstu eða eitthvað svoleiðis.
Þú getur ekki gert það.
Þú ert að fara að fara aftur eitthvað.
En hvað ert þú að fara að fara aftur?
Þú ert að fara að skila minni heimilisfang.
Og vegna þess að þú kemur aftur með minni heimilisfang, sem hægt er að nálgast annars staðar.
Einhverjar fleiri spurningar?
Já?
>> Nemandi: Er fallið ofan vera ávísun fyrir [inaudible]?
>> DAVIN: Af hverju þarf ég ekki að gera það?
Nemandi: [inaudible].
DAVIN: Af því að þú ert ekki mallocing neitt.
Svo það er not-- já, það er ekki eins og streng s.
Það er a bendi einhversstaðar.
Þetta eru bara tölur.
Nemandi: OK.
DAVIN: Já.
Nokkuð fleira?
Rob: Yep?
Nemandi: En þegar þú [inaudible]?
>> Rob: Svo í röð til að losa um minni, myndum við segja hér.
Svo er x bendi okkar til blokk af minni.
Við frjáls að músina.
Og við myndum ekki endilega gera það hér.
Við getum gert það hvar sem er.
En þú kallar aðeins frjáls á eitthvað sem malloc ávöxtun.
Svo malloc, hér, aftur hvað er verið geymd í x.
Svo við getum hringt frítt á x.
Einhverjar Síðustu spurningarnar?
>> DAVIN: Allar Síðustu spurningarnar?
Já?
>> Námsmaður: Því miður, þú getur aftur að útskýra hvers vegna þú myndir losa þarna?
Hvers vegna [inaudible]?
>> DAVIN: Fyrir hér?
>> Nemandi: Já, eins og rétt eftir.
DAVIN: Þú sennilega vil ekki frjáls hér.
Rob: Þú myndir sennilega ekki.
DAVIN: Já, að þetta myndi gera neitt.
Þetta myndi, eins og, búa minni, gera efni á það,
og þá strax gleyma um það, já.
>> Rob: En við gætum gert, eins og, hér fyrir sumir ástæða.
Við gætum sagt int stjörnu Y jafngildir array aftur.
Gera smá dót með y, kannski prenta innihald.
Og svo, að lokum, við erum að gera.
Við getum frjáls y.
Nemandi: [inaudible].
DAVIN: Ætti ég skruna niður?
Takk.
Ræna: Nice.
>> DAVIN: OK, það er það.
Rob: Allt í lagi, gott.
Gangi þér vel.
>> DAVIN: Ef þú hefur einhverjar spurningar, sendu okkur tölvupóst.
Gangi þér vel.