ALLISON BUCHHOLTZ-AU: Ahoj, všetci.
Vitajte na stránkach oddielu.
Dnes má len bude všetko kvíz preskúmanie pre kvíz v stredu.
Dúfam, že všetci si pamätá, že majú kvíz na stredu.
A ak nie, dobre, Teraz ste pripomenul.
Takže streda uistite sa, že sa objavíš pre triedu alebo iné ubytovanie ako
nutné.
Vy sa bude úžasné.
Bude to skvelé.
A ja urobím všetko pre to, pomôcť pripraviť vás dnes pre kvíz
teraz.
A tiež v prípade, že neviete, je samozrejme široký preskúmanie zasadnutí
dnes v 7 hodín Severozápad laboratória izbu B103.
Môžete ma znovu vidieť na prídavok ako Povediem časť tohto preskúmania zasadnutie
tiež.
Takže ak nemôžete sa nabažiť ma? Teraz si môžete prísť znova dnes večer.
>> Dobre, tak prvé, čo prvý.
Len niekoľko tipov kvíz než sme skutočne ponoriť do hodnotenia.
Tak ako u každej skúšky, prax určite vám pomohol von.
K dispozícii sú skúšky z minulosti šesť alebo sedem rokov tam,
tak to je veľa praxe Materiál pre vás mať.
A v skutočnosti, dnes je naozaj len bude ísť cez akúkoľvek tému
že vy máte otázky týkajúce sa aj ako prácu cez problémy praxe
z testu nulové.
Takže budem zvracať kvíz nulu od minulého roka na tú,
a my môžeme pracovať cez problémov že vy ste chceli.
>> Takže cvičiť.
Budeš začať robiť, že dnes.
Kód na papieri.
Tak jo, keď každý mohol skutočne dostať von
papier, že to bude skvelé, pretože nie ste
bude mať počítač na skúška a napíše kód ručne
je často oveľa ťažšie než by sa dalo očakávať.
Ste zvyknutí len vidieť to a napísaním,
a máte kompilátor na pomôže vám, keď máte chyby,
ale nechápem, že na skúšku.
Takže je to skutočne veľmi dôležité, byť schopný vypísať kód,
a že svalová pamäť robí to rúk vám naozaj pomôže.
>> Takže sa dostávame trochu blízko.
Je pondelok.
Vaša skúška je v strede.
Ale ak budete mať čas, rozhodne vziať jednu
zo skúšky z minulého roka, alebo pred rokom v časovom obmedzení
na hodinu a pol.
Len knock out hodinu a polovica času,
a posaďte sa dole, a len práca cez problémy
ako by ste boli skutočne brať, pretože jeden
z najväčších vecí, ktoré sme počuli o Kvízy je, že sú veľmi dlhé.
Je to veľa materiálu.
Existuje mnoho otázok, a väčšina ľudí nemusí skončiť.
Viem, že som úplne nedokončil moja kvízy, keď som vzal triedu.
>> V takom prípade, ako menej pohodlný úsek,
pochopiť, že je tento kurz určený obstarávať pre ľudí na všetkých úrovniach.
Celý dôvod, prečo máme rozdeliť menej pohodlné, niekde medzi,
a pohodlnejšie je druh robiť to viac fér.
A ak ste menej pohodlné, je to Nie je nutné sebe, aby si všetko.
Ako keď ste boli stále všetko, by ste pravdepodobne
byť v pohodlnejšie časti.
Je teda jasné, že nemôžete poraziť sami hore príliš ťažké, ak nemôžete dokončiť skúšku.
Vezmi si to odo mňa, ja to neurobil.
Som stále koncentrátor.
Som stále pomáha naučiť kurzu.
Budeš v poriadku.
Dobrá.
A konečne, trochu sa prespať.
Samozrejme s akoukoľvek skúškou vždy hovorím.
Bifľovania noc pred a nedostávajú žiadne spánok
robí ne-- možná, ak to pracuje pre vás, choďte do toho.
Ale pre drvivú väčšinu ľudia, ako sa vyspať,
nechať váš mozog oddýchnuť a zotaviť sa pred nadobudnutím na skúšku
vám naozaj pomôže.
Tiež tam bude takmer iste cukroví na skúšku,
takže máte na čo tešiť.
Vy sa chystáte urobiť skvelé.
Bude to v poriadku.
A teraz v nasledujúcej hodine a pol I sa bude snažiť a prípravka vám, ako najlepšie viem.
>> Takže mám zábery z v podstate všetky sekcie dodnes.
Nebudem prejsť všetky z nich, pretože to nie je
uskutočniteľné za hodinu a pol, ako ako prácu cez problémy praxe.
Takže namiesto toho mám zoznam tém.
To sú všetky tie veci, že vám môžeme Quiz.
Ak existuje niečo, čo že naozaj vyskočí
ktoré chcete ísť, aby ste si Chcete, aby som šiel cez koncepčne,
Môžem to skúsiť a dať tam prehľad.
Alebo ak chcete preskočiť priamo do robí problémy prax dohromady,
to môžeme urobiť.
Je to na vás chlapci.
Nie je, že mnohí z vás.
Takže to, čo vy chcete robiť.
Chcem byť najviac užitočné k vami.
Takže ja vás nechám len pozerať.
>> Divákov: Jedna vec je graf, ktorý držíme
hovorí o zásobníku a haldy.
Len celá myšlienka to a čo to znamená.
ALLISON BUCHHOLTZ-AU: Jo, OK.
To je úplne v koniec, tak nech mi prechádzať.
>> Divákov: Nemáme na to teraz, ale čo.
>> ALLISON BUCHHOLTZ-AU: Bola tam anything-- tento.
Je to druh fuzzy pre ľudí?
Publikum: Jo, s tým absolútne súhlasím.
A môžeme sa pretečeniu vyrovnávacej pamäti?
ALLISON BUCHHOLTZ-AU: Pretečenie vyrovnávacej pamäti?
OK.
Takže buffer overflow je celkom ľahko len hovoriť.
Je to v podstate vyrovnávacích si myslíte o niektoré polia pamäti, že máte pravdu?
My zvyčajne hovorí o pretečenie bufferu, ak
nie ste kontrolu, koľko užívateľ zavádza, že jo?
A predstava, že s buffer overflow je
sú uvedení v ďaleko príliš veľa dát pre priestor
že ste pridelený na nich, nie?
>> Takže ak ste povedal, dať mi nejaké správy, že sme
za predpokladu, že sa chystáte dať nám rozumné dĺžky správy.
Možno, že pár riadkov, čo ja viem.
Tak sme sa nekontrolujú.
Namiesto toho nás kŕmia v Celá kniha je to správa,
a preteká množstvo priestor, ktorý sme pridelené na to.
A čo sa stane, je, že to môže prepísať miesta, ktorá to nemala.
>> Takže viem, profesor Malan povedal niečo, čo buffer overflow útoky.
Tak to je miesto, kde bude vstup od užívateľa niektoré obrovské množstvo dát v nádeji,
že prepíše minulosť koniec vašej pamäti
a nahrádza something-- Zaujímalo by ma, Aj máme tie zábery tu.
Nemyslím si, že máme tieto zábery tu.
Ale v podstate sa prepisuje určitá časť pamäte
ktorý mu umožňuje prístup k na časti vášho počítača
že by ste nemal majú zvyčajne prístup.
>> Najväčšia vec, ktorú sa buffer overflow je len
pochopiť, že to sa stane, keď nie ste
kontroly, ako veľmi sú vaše užívateľ uvedení v.
Keď nie ste typ ochrany proti tomu.
A na jeho najjednoduchšie vec, je to len vaše užívateľské
zadanie obrovské množstvo dát v snahe
prepísať nejaké zabezpečenie časť pamäte.
To je všetko, čo je.
>> Tak toto tu, zásobník a heap.
V podstate to všetko je len reprezentácia pamäte
a tam, kde veci sú uložené.
To je naozaj druh všetko, čo potrebujete vedieť.
Najväčšie veci, ktoré čo potrebujete vedieť je
that-- dovoľte mi, aby som zistil, či je tu better-- tu.
Tak toto je zásobník tu.
>> Takže stack má čo do činenia s všetky svoje funkcie
že voláte v danom okamihu.
A čo je dôležité si uvedomiť, ísť preč z minulého týždňa s malloc
je, že v skutočnosti nemajú treba nad ním kontrolu.
To všetko záleží na tom, kedy určitá funkcie vykonávania.
A keď sa vykonávania, ale to, čo sa hovorí zásobníka rámy
že ísť sem.
>> Takže to všetko trochu deje bez skutočného vstupu od vás.
Môžete napísať program, a nechajte ho bežať,
a zásobník druh sa starostlivosť o seba samého, ako to potrebuje.
Takže ak v main voláte kocky, ktoré budú odovzdané tu.
Ak bude vytvoriť snímku.
Ale nič explicitne robiť pre vytvorenie tohto zásobníka rám iný ako
napíšte funkciu začať s, OK?
>> Čo je tak trochu pod vašou ovládanie je halda s malloc.
Takže zakaždým, keď malloc niečo, užívate pamäte z haldy.
A to je pamäť, ktorá vám majú, pre nedostatok lepšieho slová,
explicitné kontrola, pretože pamätať s malloc
je to v podstate neexistuje kým nepoviete inak.
Pre tých z vás, ktorí sledoval časť minulý týždeň,
je to tam, kým ju povedať, ísť preč.
Bude to tam, ak inak povedané, nie.
Takže haldy je proste niečo si môžete myslieť, ako pamäť
že máte kontrolu nad.
A to sú len dve rôzne veľké veci.
>> Iné, než to, nemali by ste mať na starosti príliš veľa o zásobníka a haldy
otázky alebo typicky len Ak máte lokálnu parametre
alebo funkcie by bolo na zásobníku alebo haldy.
Zrejme v tomto prípade že by bolo stack.
Ak mallocing niečo, kde je to prichádza?
Haldy.
Ak sa pozriete na prax kvízy, tie sú všeobecne typ otázok
že majú.
>> Nemusíte mať strach, moc o tom.
Sa dostanete do väčšej výslovne o zásobníka a haldy
neskôr alebo v iných triedach SK.
Tak presne s takou všeobecnú predstavu o tom, čo to je
bude dobré, čo sa mi tak nejako prešiel.
Akékoľvek ďalšie témy?
Áno?
>> Divákov: Môžeš ísť cez na ukazovatele opäť veľmi rýchlo?
ALLISON BUCHHOLTZ-AU: Ukazovatele?
Chcete koncepčné Prehľad ukazovateľov
alebo si precvičiť s ukazovateľmi?
Divákov: Niečo ako syntax.
ALLISON BUCHHOLTZ-AU: syntax?
Jo.
OK, sme sa tam dostať.
Jo, tak to je len trochu niečo keď máte rekurzívne funkciu,
zakaždým, že rekurzívne funkcie je volal, to len pridáva ďalší stack frame.
Docela veľa príklad o tom, ako nemáte naozaj
mať kontrolu nad rámy na stacku.
>> OK, ukazovatele.
Dobre, takže vytvára ukazovatele.
Pamätajte si, že je to len typ hviezdu.
Takže bez ohľadu na typ dát, ktoré budete sa ukazuje.
Takže by to mohol byť ukazovateľ na int.
Jednalo by sa o ukazovateľ na char.
Jednalo by sa o ukazovateľ na float.
Takže je to v podstate čokoľvek Chcete, aby sa ukázal na,
hviezda je, ako deklarovať ukazovateľ, OK?
>> Ale potom samozrejme je trochu zradné, keď máte ukazovateľ
alebo máte hrať čokoľvek.
Tak veľký rozdiel je, keď ste declaring--
takže máme some-- tak to trvá nejakú int hviezdu.
Takže to je nejaký ukazovateľ žiada x int, nie?
Takže pamätajte, čo to robí Je to volanie X systém.
A to bude nejakú adresu, nie?
Takže povedzme, že to je naša adresa.
Ukazovatele držať adresy.
Takže to, čo to hovorí, je to, že sa na to umiestnenie, sme skladovanie int.
>> Tak ďalší spôsob, ako sa môžeme myslieť je to, že to je nejaký int.
Sme naozaj priradené do Zatiaľ nič, ale je to len int.
Takže môžeme urobiť, je keď to hviezda x rovná 5, to bude 5, OK?
To hovorí, že ísť na čokoľvek x je ukázal na, tak choďte na túto adresu
a aby bolo rovná 5.
Tak sme priradiť 5 na túto adresu, je to tak?
>> A potom ak to budete robiť, to nám dáva adresu.
Jedná sa o adresu prevádzkovateľa.
Takže to, čo je adresa x?
Nevieme.
Ešte sme priradili mu adresu.
Dalo by sa povedať, že je to some-- teraz sme dali to adresu, takže adresa je 4.
A skutočne, ak sme sa prejsť niečím takto, druh, čo sme urobili.
Takže prácu cez here-- nájdem to pomôže, ak budete čerpať z ukazovateľov.
Ak ste na skúšku, som Vrelo odporúčam kreslenie boxov.
>> Takže to prvé, int x sa rovná 5.
To len znamená, že máme niektoré miesto v pamäti, ktoré je 5, nie?
A naša tabuľka tu nám hovorí, že je to na adrese 0x04.
A potom sme sa vytvoriť nejaký ukazovateľ.
Takže poďme rozčleniť tento jeden po druhom.
Takže to vytvára niektoré box na int, nie?
Bude to držať niektoré adresy z neho.
Takže to je nejaký ukazovateľ.
A to krieda je naozaj malý.
Takže máme nejaký ukazovateľ tu.
A naša tabuľka nám hovorí, že je adresa je 0x08.
V pohode.
A my sme priradenie to na adresu x.
>> Pamätajte si, že ukazovatele držať adresy, OK?
Takže ak chceme držať x, máme použiť operátor adresy, ktoré
je ampersand, získať adresu x, ktorá je v tomto prípade, 0x04.
A potom, ak máme niektoré int kópie, to jednoducho
vytvára nejaké iné okno, ktoré držiteľom int s názvom kópie.
A ak by sme priradiť ju tohle-- tak toto je odkazovanie to.
Tak to hovorí, že ísť na čokoľvek Adresa ukazovateľ drží.
Pointer má túto adresu, tak by sme ísť sem,
a hovoríme, OK, čo je v ňom?
Je to 5.
Takže kópia bude 5.
Zmysel?
>> Čo keď som sa snažil priradiť to len ukazovateľ.
Čo ukazovateľ skutočne rovná?
Bolo by to, čo ukazovateľ obsahuje, nie?
A potom to, čo keby som to urobil?
Čo by kópia bude teraz?
>> Divákov: 0x08.
ALLISON BUCHHOLTZ-AU: Jo, Adresa našej ukazovatele.
Každá časť, že Je potrebné znovu vysvetliť?
V pohode.
Tam je určite veľmi zábava problém na kvíz jednom
že môžeme nad tým vám dáva viac praxe.
Chalani z minulého týždňa môže povie vám, že to nebolo tak zlé.
Dostali sme cez celú graf, a všetci si skvele.
>> OK, tak to je prehľad syntaxe ukazovateľov.
Najväčšia vec je pochopiť, ako k ich vytvoreniu, robiť odkazovanie,
a adresa, OK?
V pohode.
Akékoľvek ďalšie témy pred ponoríme do praxe.
Tiež ak ideme cez problémy praxe
a je tu niečo, čo chcete osviežovač na, môžeme to urobiť taky.
Máte niečo?
>> Divákov: Štruktúry a spojové zoznamy.
ALLISON BUCHHOLTZ-AU: Štruktúry a spojové zoznamy, OK.
Tak structs.
Vlastne sme sa deje cez tento večer taky.
OK, tak structs.
Štruktúry sú v podstate len spôsob, ako držať
viac hodnôt rôznych typov.
Tak s radom sme zúžená do jedného dátového typu.
Naše pole musí byť len čísla jeden, alebo len so znakmi, alebo len byť plaváky.
>> Ale možno budete musieť obsahovať viac než len to.
Možno budete musieť hold-- ak hovoríte o študentovi,
budete mať svoj dom, svoje Číslo, ich vek, kde žijú,
že jo?
A všetky z nich sú rôzne druhy typov.
Takže nemôžete uložiť tie, ktoré všetky v matici.
>> Takže to, čo môžete urobiť, je si môže vytvoriť struct, ktorý
si môžete myslieť, ako vaše osobný dátový typ.
Takže namiesto toho len mať celých čísel a nie len s plaváky,
môžete mať typ študenta, ktorý má všetkých týchto oblastiach v ňom.
Tak, ako sme inicializácia naše structs je-- vlastne
pretože moje písanie je hrozné, sme sa chystáte prejsť na písanie.
Woo.
>> OK, takže ak chceme vytvoriť struct-- Ja som jednoducho ísť na to tu.
Neprihliada sa v hlavnom čokoľvek ktoré budeme používať neskôr.
Tak, ako chcete robiť je to s typedef struct.
A nech to len nazvať tento študenta pretože to je to, čo som používal.
OK, takže typedef znamená, že ste definovanie nového typu, OK?
Tam sú nuansy v keď robíte len struct versus typedef struct.
Pre všetky zámery a účely, vy ste len
bude predpokladať, že sú približne rovnaký a len
použitie typedef struct teraz.
To bude stáť oveľa viac viditeľné vo vašom ďalšie P nastaviť, čo tieto rozdiely,
ale nemyslím si, že je potrebné obávať, že práve teraz.
Bol by som oveľa radšej, keby si vedieť, ako vytvoriť,
prístupu k nim, a priradiť [? hodnotu. ?]
>> Nový typ struct, a nazývame ju študentka.
Takže potom, čo sme hotoví vytváraní tohto, pre všetky účely,
budete mať typ nazvaný študenta.
A môžete si ju rovnako ako typ ako int alebo float, alebo char.
Je to len iný typ, OK?
>> Takže v tomto jednom, čo máme?
Máme možná meno.
Takže možno chceme názov reťazca.
A máme možno int, ktorý je ID.
A máme ďalšie v to je telefónne číslo.
A my sme some-- pozrime.
Čo iného by sme mohli mať?
Budeme mať nejaký reťazec v jeho dome.
Všetky veci, ktoré študent má.
>> Takže to vytvára struct teraz.
Tak ako môžeme vytvoriť študenta?
Ak máme nejaké premenné, ktorá je hovoriť o Walker tu
tak sme have-- sme len bude volať túto chodítko.
Potrebuje typ.
Aký je váš typ?
Divákov: Študent.
ALLISON BUCHHOLTZ-AU: Študent.
Takže to len vytvorí objekt, ktorý možno myslieť, že má všetky tieto veci.
Práve ste vytvorili študenta chodítko.
Takže teraz musíme byť schopní priradiť všetky tieto, že jo?
Takže má niekto spomenúť, ako máme prístup do struct?
Divákov: Obdobie.
ALLISON BUCHHOLTZ-AU: Obdobie Presne tak.
Takže ak by sme chceli priradiť mu meno, čo by sme mohli urobiť, že.
Zrejme to by be-- túto časť by tu
byť v hlavnej, tak vlastne dovoľte mi, aby som to urobiť.
Vyhlásiť to nad hlavnou, aby že ju môžeme použiť v rámci hlavnej.
Takže teraz chcem, aby to robiť ID, a my sa proste niektoré tam,
a potom budeme priradiť dom.
BAM.
V pohode.
>> Takže teraz by sme niekedy potrebovali prístup niečo neskôr on-- možná we--
keby sme niekedy potrebovali prístup nič, poďme len to int kopírovania ID.
A ja chcem kopírovať Walker ID do toho.
Ako by som mohol urobiť?
Čo potrebujete pre prístup do chodítka struct na [? ísť na to?] [? E?].
A rovnakým spôsobom, že my pridelený to tu, ako
môžeme pristupovať, keď chceme, aby dať túto hodnotu na niečo iné?
Divákov: Walker.id.
ALLISON BUCHHOLTZ-AU: Jo, presne tak.
Tak to je skoro všetko čo potrebujete vedieť o structs.
Stačí myslieť na je ako ďalšie premenné.
V podstate si vytvorte vlastný typ premennej, OK?
Môžete ju použiť k deklarovať premenné v žiadnom prípade.
Tu chodítko je ešte premenná.
Je to len má typ študenta, teraz miesto z typu int, alebo typu string,
alebo typu char.
Keby tam bol jednoduchý spôsob, ako hovoriť o structs, je to doslova len
vytvoriť svoj vlastný dátový typ , Ktorý umožňuje skupine
Všetky tieto rôzne druh dát dohromady.
Má to zmysel?
OK.
To a prístup s bodkami.
Skoro všetko, čo potrebujete.
>> OK, kde sa má PowerPoint ísť?
Tu to je.
No to je divný.
Aha.
OK, v pohode.
Všetky ostatné veci, alebo my chcú zamieriť do praxe?
Praxi?
OK.
Úžasné.
Chystám sa ukončiť to.
Ak kedykoľvek počas praxe otázky,
Som rád, že prerobiť a prejsť veci.
Takže mám kvíz nulu tu.
Ak vy chcete vytiahnuť je na vašom počítači,
rovnako ako mať päť minút prechádzať.
Možno si vybrať nejaký vrchol otázky, chcete ísť znova.
Ak vy sa nemôžete rozhodnúť, budeme len pomaly začať pracovať skrze ne,
ale som si istý, že sa bude nejaký otázky, ktoré vám sú obzvlášť
túži hovoriť a majú me pracovať až s vami všetkými.
Takže jednoducho ísť dopredu a päť minút.
Prechádzajte.
A to je kvíz od roku 2013.
>> Divákov: Zero?
>> ALLISON BUCHHOLTZ-AU: Jo, kvíz nula.
Nerobíme kvíz jednu veci.
Budeme robiť, že za pár týždňov.
Aj pre tých z vás, ktorí prišiel neskoro, máme cukroví,
tak to vy chcete cukrovinky?
>> Divákov: Iste.
>> ALLISON BUCHHOLTZ-AU: Som len prejsť okolo.
Hele, či vy sa sem dostal skoro, môžete získať ďalšie sladkosti.
To je v poriadku.
Ben, chceš pečivo?
Chcete niektoré z nich?
K dispozícii je tiež Snickers ak niekto chce Snickers.
Budem nechať tu a tu.
Neváhajte.
Chceš už?
Divákov: Všetky nastavenia.
Děkuju.
>> ALLISON BUCHHOLTZ-AU: A ja som mal pekný malá kôpka tam na začiatku.
Vy si vziať kvíz a Mám mať kvíz triedenie party.
Je to chaos.
900 skúšky.
Bude to tak oveľa zábavnejšie.
Bude skvelé.
Som si istý, že je to jedno z najväčších zamestnancov lepenie
nocí v roku.
Má niekto urobil kvíz nula od v minulom roku, ale zo zvedavosti?
>> Divákov: Časti.
>> ALLISON BUCHHOLTZ-AU: Časti nej OK.
Už máte otázky týkajúce sa niektoré z nich?
Divákov: Už som šiel do pracovného času.
Ďakujem hoci.
ALLISON BUCHHOLTZ-AU: No, dúfajme, že je to stále trochu užitočné.
Kedy ste sa ísť do úradné hodiny, že?
Divákov: Môj TF mal im dnes popoludní.
ALLISON BUCHHOLTZ-AU: Oh.
Kto je váš TF?
Divákov: Fred [? Wujaya?].
ALLISON BUCHHOLTZ-AU: Existuje mnoho TFS.
Tak veľa.
Dobrá.
Každý, kto má akýkoľvek začať, že môžem zapisovať, že chceme pracovať?
Predpokladám, že ukazovatele jeden s tabuľkou.
Ísť na to.
>> Divákov: Možno, že prepínač jeden.
ALLISON BUCHHOLTZ-AU: Takže číslo 12?
Predpokladám, že číslo 8 a 9 sú pravdepodobne Ones ľudia chcú prejsť.
>> Divákov: A 10 a 11.
>> ZAMYLA Chan: A vy viete dostanete jednu stránku poznámok, nie?
>> Publikum: Jo, tak to, čo je Smieme dať na to.
>> ALLISON BUCHHOLTZ-AU: Ste dovolené dať, čo chcete.
A to môže byť zadaný.
Pokiaľ si dobre spomínam, naše boli zadané.
>> Divákov: Môžete to urobiť späť a obe strany?
>> ALLISON BUCHHOLTZ-AU: Jo, obe strany.
Takže niečo ako haldy a [? back end?] haldy Vaša beh
časy.
Užitočné.
Možno, že len málo vecí, o rád, ktoré vám pripomenie.
Syntax pre veci.
S rovnako ako kostra Program môže byť super užitočné.
Viem, že som vždy zabudol, čo presne Mal som písať pre int main,
pretože som vždy len kópia vložiť z mojej predchádzajúcej P sady
alebo už je tam, tak Nikdy som to napísal,
tak s, ktoré môžu byť super užitočné.
>> OK, tak prečo nie my začať s číslom 8, potom?
Dobrá.
OK.
Takže zvážte nižšie programu.
Tak samozrejme, keď vidíme, ukazovatele, je to asi
dobrý nápad začať kresliť, nie?
Chcem vedieť, kde sú všetky moje veľké kúsky kriedy išiel.
To je trochu nepríjemné.
>> Takže máme tu nejaká funkcia odkladacia že to bude trvať dva ukazovatele.
Takže v tomto prípade sa by mal byť v skutočnosti prepínanie
veci, oproti našej pôvodnej swapu funkcia, ktorá sa len v kópiách.
Tak čo to bude robiť je-- začnime s hlavnou,
pretože to je miesto, kde 1 je.
>> Takže máme nejaké int x 1.
Máme nejaké y, ktorý je rovný 2.
A potom máme nejaké odkladacie že to bude trvať ty.
A pozrime sa, čo to tu máme.
A v našej table-- ach jo.
Ako to mám urobiť?
Budem čerpať môj stôl sem.
Ťažko robiť to tam.
Ťažko robiť to.
1, 2, 3, 4, 5, 6, 7.
A nám dávajú, že 1 je 1, a 1 2.
V pohode.
Úžasné.
Tak 3.
A je tu [? 1.?]
>> Dobrá.
A potom adresa x je 0x123.
A y je Ox127.
V pohode.
Dobrá.
Chcem, vy na tom pracovať len za like-- na ňom budú pracovať
s ľuďmi okolo vás.
Škoda, že som povedal, že keď som nastavenie.
Práca na ňom.
Skúste a pracovať na ňom sami za pár minút,
a potom budem na tom pracovať s vami.
Pretože jediný spôsob, ako naozaj bude učiť, je tým, že robí to sami.
Žiadne starosti.
Veľa šťastia.
>> OK, prečo nie my pomaly začať pracovať cez to.
Takže každý dostane po prvom riadku, x je 1.
Po druhej linke, x a y sú 1 a 2, že jo?
V pohode.
Tak linka tri je miesto, kde sa veci získať zaujímavé samozrejme.
>> Takže to, čo sme tu urobili je teraz sme vymenili.
My hovoríme, že x a y majú tie body, alebo majú adresu x a y,
že jo?
Takže v tomto prípade tri, aká je hodnota?
bol prijatý v, bola daná Hodnota adresy x, nie?
>> Publikum: 1?
>> ALLISON BUCHHOLTZ-AU: Tak sme do neho pridať x?
Aká je adresa x je?
>> Divákov: 0x123.
>> ALLISON BUCHHOLTZ-AU: Presne tak.
Ale čo je vlastne ukazuje to?
Ak by sme mali dereferencia, akú hodnotu by nám dá.
Publikum: 1.
ALLISON BUCHHOLTZ-AU: Bolo by nám jedno, pretože to, čo
hovoríme, je ísť na to adresa, povedzte nám, čo je hodnota.
Takže to, čo by sa b?
>> Divákov: 0x127.
ALLISON BUCHHOLTZ-AU: Presne tak.
Takže je to adresa y.
A čo [potom? dereferencia? ?]
Divákov: 2.
ALLISON BUCHHOLTZ-AU: OK, tak teraz štyri.
Povedali sme, že je equal-- aj teraz máme vykonáva int temp je rovná hviezdy.
Takže to, čo sa zmení?
Je tu len jedna vec, že tu mení.
Čo je to?
>> Divákov: Temp.
ALLISON BUCHHOLTZ-AU: temp.
Takže môžeme prepísať všetky tieto.
Dobrá stratégia pre tieto Je len prísť na to,
aké zmeny, pretože najčastejšie je tu len jedna vec, ktorá je
sa zmení v danom mieste, OK?
Preto sme priradený tepl.
>> Teraz naše ďalší bod, päť, sme robili hviezda rovná hrať b.
Takže to, čo sa mení teraz?
>> Divákov: Hviezda.
>> ALLISON BUCHHOLTZ-AU: Hviezda, tak všetko ostatné zostáva rovnaké.
A čo hrať rovné?
>> Divákov: 2.
ALLISON BUCHHOLTZ-AU: 2.
Lovely.
Úžasné.
OK, a potom už sme jazyku b sa rovná teplote.
Takže jediné, čo zmena je hviezda b.
Všetko ostatné zostáva rovnaké.
A čo je hviezda b rovná sa pozrieť teraz?
A vy ste dokončili tabuľku.
Pretože teraz na konci, ak povieme x a y, vieme, že v tomto point--
vieme, že keď sme zmenil hviezda 2,
čo to urobil, je to povedal v poriadku, na riešiť 0x123 tu zmeniť.
Teraz to bolo 2.
A potom sa v tomto bode, my sme povedali OK, prejdite na hviezdy b.
Tak choďte na adresu uvedenú na 0x127 a urobiť z neho 1.
Takže teraz na samom konci, kedy sme vlastne návrat na hlavnú,
v skutočnosti máme, že x je rovné 2 a y je rovný 1.
Všetci dobre s tým?
OK, v pohode.
Číslo 9.
Vy ste na tom pracovať.
Chystám sa vytvoriť dosku takže môžeme čerpať cez neho.
Bude to bomba.
Veľké tabuľky môžu byť naozaj desivé, ja viem.
Ale keď vezmete im jeden riadok na čas, dostanú oveľa menej desivé.
Dobrá.
>> Takže viete, že to bude mať prešli hlavný prvý, že jo?
Inicializuje x a y a potom sa ich snaží vymeniť.
Takže aj swap je uvedené vyššie, skutočný spôsob, ako ju chodí sa, že ideme cez hlavný,
a potom je to volanie až vymeniť, v poriadku?
Takže každý vie, že.
>> Tak ktorý z vás robiť chalani chcú začať?
Je niekto naozaj istí, o jednej z nich?
Alebo dokonca čiastočne istý?
Prečo začneme s x?
Čo si myslíme, že x je?
>> Publikum: 1.
ALLISON BUCHHOLTZ-AU: 1.
Tak prečo je 2.
A to preto, že veľký rozdiel tu
je, že sú len odovzdávanie kópií, nie?
Nie sme odovzdávanie odkazom.
Takže aj na konci Tento program X a Y
zostali rovnaké, pretože sú len kópie vo funkcii pamäti.
Nemajú vlastne zmeniť, nie?
>> Tak čo, b, a teplota?
>> Divákov: je b.
>> ZAMYLA Chan: b je.
Takže v tomto prípade, sa x, čo je 1, nie?
Tak tu, poďme sa prejsť to.
Takže na začiatok, a b sú 1 a 2 a definovaný.
Takže pôvodne temp dostane priradený, takže teplota je 1.
sa rovná b, tak dostaneme 2, a b je rovné teplotu.
Teraz sa dostaneme 1.
>> Divákov: V predchádzajúcom jednej nej vymenili ampersand x a y ampersand.
Čo to presne znamená?
ALLISON BUCHHOLTZ-AU: Takže to znamená, že ste okolo odkazom.
Takže to znamená, že ste v skutočnosti odovzdaním adresy, kde
X a Y sú uložené.
Divákov: Ale ty nie si vymieňať adresu.
ALLISON BUCHHOLTZ-AU: Nie si vymenia adresy.
Ste vymieňať, čo je v nich.
Rovnako ako to, čo je na tejto adrese, a to je dôvod, prečo to funguje.
Versus v tomto programe tu to, čo robíte ich budete vytvárať kópie.
Takže budete musieť x a y, ktoré existujú ako svoje vlastné premenné tu.
Ale potom, keď miniete je do swapu, je to
ako keď vytvárate Celý ten druhý set.
Takže ste vlastne nikdy dojemné x a y.
>> Divákov: Ak ampersand x je to, čo je na adresa x, čo by hviezda x byť?
>> ALLISON BUCHHOLTZ-AU: Ampersand x je to, čo je na adresa x, potom star-- dobre,
V tomto prípade, x nie je ukazovateľ.
Publikum: Oh, OK.
Takže si len urobiť pretože to nie je ukazovateľ.
ALLISON BUCHHOLTZ-AU: Správne.
Môžete to urobiť len hviezda niečo, čo je ukazovateľ.
Možno, že by ste mohli urobiť to, aby veci, ktoré nie sú, ale kompilácie, ktoré vám
robiť bláznivé veci sa stane.
A ja som zrovna nie istý, čo by sa stalo.
Môžete si vždy adresa niečoho,
ale nemôžete dereferencia niečo, čo nie je ukazovateľ.
Ak to dáva zmysel, že je to dobré rozlišovať mať.
>> Takže nie je tak zlé, nie?
Stoly sú snáď stále o niečo menej desivé.
Dobrá.
Ach, tie zábavné.
Takže teraz, písanie vlastného kódu.
Takže budem vám chalani pracovať na to asi štyri minúty
a potom môžeme hovoriť o spôsoboch, ako k nemu pristupujú.
Neváhajte a hovoriť s ľuďmi okolo vás.
Tiež je to zaujímavé.
Je to ako všetky dievčatá časť práve teraz.
Celkom vzrušujúce.
Okrem Chang.
Ale Chang naozaj nie je súčasťou oddielu.
Úžasné.
Perfect.
Tak ja vám dám zopár tipov.
V prípade, že máte viac ako jeden znak, kde
máte niečo iné ako je 123 alebo 1000 niečo,
musíte byť schopní slučky skrz a previesť každý z nich.
Takže je tu pár spôsobov, ako si to mohol urobiť,
ale vy ste určite bude mať slučky for niekde tam na slučke
skrze ne, čo je niečo ako prezradí
, Aj keď sa zavoláte strlen, ktorý je niečo ako oh
Možno budete chcieť použiť dĺžku reťazca nejakým spôsobom.
>> Dobrá.
Tak čo vy na to by mohol byť jedna z prvých vecí, ktorú chcú robiť?
Je tu pár prípadov tu musíme vysvetliť, že jo?
Buď budeme mať niečo, čo je null.
Čo máme?
Prípadov.
Null.
Máme prípad, že má niečo iné ako 09, nie?
Takže povedzme, že má listy.
Alebo máme prípad, ktorý je platný.
Tri prípady myslieť.
Takže, ktorý z nich si myslíte, že by mohol byť najjednoduchšie postarať sa o prvý?
Divákov: Null.
ALLISON BUCHHOLTZ-AU: Prípad je null.
Takže to, čo by sme si tam?
Divákov: [nepočuteľné].
ALLISON BUCHHOLTZ-AU: Jo.
A čo mám robiť?
>> Divákov: return 0.
>> ALLISON BUCHHOLTZ-AU: Presne tak.
Úžasné.
OK.
Takže teraz prípade, že má listy a v prípade, že je platný.
Môžeme skutočne postarať z toho v rámci jednej slučky, OK?
Takže jeden spôsob, ako to urobiť to-- čo by mohlo byť jednoduchý spôsob, ako zistiť, či je to platný.
Budeme musieť prejsť každý list a robiť to, čo?
>> Divákov: Skontrolujte, či je to in--
>> ALLISON BUCHHOLTZ-AU: Dobre, môžete skontrolovať ak je medzi 0 a 9, nie?
A potom v prípade že je to platné, že sme
skončí iterácia náš reťazec kdekoľvek, nie?
Tak prečo sa snažíme spojiť ich do jedného.
Budeme opakovať cez vonkajšiu reťazca, a ako my
tomu, že budeme prvý vykonať kontrolu, či tento list
alebo, ak to povaha je platný.
Ak áno, budeme vykonávať operácie, ktorá musíme ju previesť.
V opačnom prípade sa vrátim 0, nie?
>> Takže ako to urobíme, budeme pravdepodobne chcieť nejakú premennú
že sa môže vrátiť na konci že to bude naša skutočná hodnota.
Takže budeme inicializovať niektoré hodnoty sa 0.
A to je len, ako začať.
Takže ja idem, ako sa zbaviť toho.
Tak ako budeme iterovat tohto reťazca.
Obecenstvo: pre sláčiky.
ALLISON BUCHHOLTZ-AU: pre sláčiky.
Takže to, čo je naše pre?
>> Divákov: i je 0.
ALLISON BUCHHOLTZ-AU: Mm-hm.
A to, čo sme iterácií až do?
>> Divákov: dĺžka str S.
>> ALLISON BUCHHOLTZ-AU: OK, teraz spomenúť existuje lepší spôsob. [Nepočuteľné].
>> Publikum: Áno, môžeme to urobiť n sa rovná.
ALLISON BUCHHOLTZ-AU: Presne tak.
>> Divákov: i je menšie ako n.
ALLISON BUCHHOLTZ-AU: A prečo by sme chceli robiť, že?
Spomínate si na dôvod?
Divákov: Musíme ju prepočítať.
ALLISON BUCHHOLTZ-AU: becasue Týmto spôsobom sa iba pre výpočet strlen raz.
Ak tak urobíte aj je menšia než strlen s, to znamená, že sa prepočíta
dĺžka zakaždým spustenie slučky for,
čo nie je obrovské náklady energie, ale je to
lepšiu prax, aby sa pokúsila robiť veci, ako že raz.
Ak nie je možno máte šialený reťazec že sa mení v každej iterácii.
Ale ak je to zostať rovnaký, uložte ho.
Dobrá.
A potom i a a.
Úžasné.
Sme na ceste.
Divákov: Naozaj rýchlo.
Po prvé, takže povedzme, že sme práve Urobil som menšie ako strlen S,
sa, že triedenie nás na dizajn vôbec alebo len korektnosti?
Oni nie sú.
Sme triedenie na správnosť pre kvízy pokiaľ viem.
Nemôžem sa ponúka na celej záruka, ale pre najviac sa rozdeliť,
Drvivá väčšina je korektnosť, pretože ste pod veľkým časového obmedzenia.
Dizajn zvyčajne znamená Máte čas na rozmyslenie
o eleganciu vašej situácii.
>> OK, takže sme iterácie.
Takže potrebujeme buď overiť, či tento znak je platný
alebo či môžeme vykonávať naše normálne [? na i?] funkcie.
Môžeme starať o to, čo že je v druhom.
Tak prečo nie my take-- či niekto môže myslieť
o spôsob, ako kontrolovať, aby zistiť, či je to platný.
Vieme, že to bude niektorí ak podmienka, že jo?
A pamätajte si toto je v ASCII, ako by to
uvidíme, či to nie je 0,1, 2, 3, 4, 5, 6, 7, 8, alebo 9.
Divákov: Ak je alfa.
>> ALLISON BUCHHOLTZ-AU: Takže ak by alpha len dajte nám vedieť, či je to písmeno.
A ak sa nám symbol, je to ešte nie celkom ísť skontrolovať.
Takže ak budete ťahať svoj ASCII stôl, vieme, že 0 až 9
sú v jednom segmente.
Povedz mi čísla, že zodpovedajú ak je to možné.
Divákov: 40.
>> ALLISON BUCHHOLTZ-AU: Takže rozsah je ako 40--
Divákov: Možno.
48 až 57 ,.
Nie som si istý.
>> ALLISON BUCHHOLTZ-AU: 40-57?
>> Divákov: 48, myslím.
ALLISON BUCHHOLTZ-AU: 48 až 57 ,.
Takže vieme, že tí, ASCII symbols-- pokiaľ ASCII hodnota nie je
medzi 48 a 57, to neplatí, je to tak?
Tak by sme mohli využiť, že pre Našou výhodou je možná?
Ako sa dostaneme tento list, prvý off?
Ako sme prístup to táto postava?
>> Divákov: s držiak i.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Vzhľadom k tomu, aby sme mohli myslieť reťazca ako pole, pamätať.
Takže to, čo chceme povedať?
Chceme povedať, či to je-- Dám vám nápovedu.
Je to menej ako.
Čo si myslíte, že to musí byť menšie ako?
Divákov: 57?
>> ALLISON BUCHHOLTZ-AU: 47, nie?
Ale to tiež znamená, že ak ste 0 v jednom [? lúče?], pretože to je
znak 0.
Dalo by sa tiež dať 47.
S tabuľku ASCII, as vidíte, je len niečo
mali by ste mať na svojom kvízu liste.
>> Takže ak sa jedná o tento prípad, ak je to menej ako 0-- nutne a.
Je to len jeden bude menšie ako alebo väčšie ako 9.
Takže môžete vyplniť tento posledný pre mňa?
Tak alebo s oblasťou Aj je to, čo, Rhea?
>> Divákov: Väčšie ako 9.
>> ALLISON BUCHHOLTZ-AU: tam.
Znamená to, že zmysel všetci, ako sme sa tam dostali?
Tieto problémy sú ako kedysi vy pozri riešenie, je to ako oh, OK.
A to je dôvod, prečo cvičenie vám pomôže.
OK, takže sa vraciame 0.
Lovely.
Dobrá.
Inak to, čo chceme robiť?
To je zaujímavá časť kde je to trochu viac
ako matematika oproti SK podľa môjho názoru.
Má niekto nejaký nápad o tom, ako by sme mohli urobiť?
Takže dôležitá vec si uvedomiť, prvý znak
berieme bude najvyššieho rádu číslice, nie?
Pokiaľ teda hľadáte na konverziu 123, prvýkrát sme sa opakovať
bude 1, ale musíme že je to 100 na konci, nie?
Takže jedna vec, ktorú môžete urobiť, je, že s každou ďalšou číslicou
budete mať, môžete znásobiť svoj hodnotu 10, tak, že v čase, keď sa dostanete na koniec,
Všetko bolo smerom hore, nie?
>> Takže prvom spustení to máte 1 ako hodnota.
Druhýkrát ho spustíte, môžete násobiť hodnotu 10.
To bude aktualizovať, takže je teraz 10, a pridáte na ďalšiu hodnotu.
A potom násobiť, že 10 a pridať na ďalšiu hodnotu.
A to je dôvod, prečo hovoria, že to je oveľa viac ako testovanie
matematický algoritmus proti SK, ale to som odbočil.
Nechcem písať kvízy.
>> Takže jedna vec, ktorú môžeme urobiť, je, že sme hovoria časy hodnota je rovná 10.
Takže to bude posun Váš číslica raz za čas.
A potom sme sa len chcete pridať.
Chceme pridať, čo práve sme dostali, že jo?
Tak ako sme sa vlastne previesť naše ASCII znak do počtu
že to predstavuje?
>> Takže vieme, že 0 je rovná 47, nie?
Takže ak 0 je 47, čo by sme museli urobiť, aby to
v skutočnosti, aby bolo int 0?
>> Divákov: Je to 48.
ALLISON BUCHHOLTZ-AU: 48?
Prepáčte.
Radi by sme odpočítať 48, nie?
Nezabudnite ASCII matematiku?
Môžeme ich považovať len ako normálne čísla.
Ak s nimi zaobchádzať ako čísla, sa stanú čísla efektívne.
Takže ak máme sz Aj, ktorá poďme povedať, je v tomto prípade rovný 0.
Takže s oblasťou Aj v tomto prípade by ASCII--
ASCII int pre neho bude 47.
Takže sme mohli subtract-- alebo 48.
Dalo by sa to urobiť, je jeden spôsob.
Vie niekto lepší spôsob, ako by sme mohli urobiť 48?
Len sme si povedali 0 je-- ísť do ASCII by ste mohli urobiť cenovú 0.
Tak sa to trochu robiť pocit, ako to funguje?
>> Publikum: V tomto okamihu, je hodnota 0 pretože aj keď si to vynásobiť 10,
začínate sa s nulou, preto by malo byť zapnutý?
>> ALLISON BUCHHOLTZ-AU: Takže v tomto prípade je Chcete vynásobte ju pred pridaním,
preto, že v tomto prípade, áno, by to stále be-- môj ukazovateľ chýba.
Hodnota v tomto prípade, prvý Tentoraz sme ho spustiť bude nula.
Takže ste práve pridaním na tej prvej číslicu.
Čo je dôležité, je nabudúce iterácii, chcete posunúť nahor
než pridáte ďalšiu číslice na.
Znamená to, že objasniť pre vás?
OK.
>> Niekedy budete podivne viac Mathy veci.
Ak ste mal to, že ste stále pokračuje
na get-- budete robiť celkom dobre.
Čiastočné úver je veľmi veľká vec na CS50 kvízy.
Tak napíšte, čo viete.
Ak máš všetko okrem tu, že ste
ešte robiť naozaj dobre problém.
Vzhľadom k tomu, že ste ukazuje, OK, ja skoro neviem.
Viem, že je potrebné iterovat.
Viem, čo je potrebné skontrolovať.
Len som nie úplne dostať, ako ju previesť.
Budeš v poriadku.
Áno, budete stratíte pár bodov,
ale vy ste ešte dostane dobrý počet bodov za niečo
ako, že ak ste chýba tieto dva riadky.
Chcel by som byť ako OK, tejto osobe vie, čo robia.
Matematika je ťažké.
Takže by som povedal, že budeš v poriadku.
>> OK, takže vy pripravený skúste strlen s ukazovateľmi teraz
že vy ste ukazovateľ pánmi?
Takže nechám vy pracovať o, že pre trochu.
Ak niekto potrebuje osviežiť.
Takže chcete použiť ukazovateľ aritmetika, a potom, ak je null,
Vaša implementácia by sa mal vrátiť 0.
Veci, ako je to, ktoré vám robia naozaj rád, že stačí zavolať strlen
Na konci dňa.
Myslím, že toto by mohlo byť trochu jednoduchšie, než ten posledný, ktorý
je dobrá.
Dám ti chlapci ešte minútu, a potom budeme pracovať cez to.
A potom sme si ísť na prepínači.
>> OK, pripravené ľudí?
Možno trochu.
Tak som dal vašej dve možnosti, že jo?
Buď skontrolujte hodnotu null a vráti 0, ak to je, alebo je priamo vypočítať dĺžku.
Takže, kto chce písať skontrolovať null?
Ísť na to.
>> Divákov: Ak zátvorky s rovná sa rovná nulovej návratnosti 0.
ALLISON BUCHHOLTZ-AU: Lovely.
Milujem, keď pol váš problém práve kontrola null.
Viem, že sa chalani posledný týždeň Bol som ako šek na null
doslova zakaždým.
OK, tak--
>> Divákov: Ak return 0 je len jeden riadok, my stále potrebujeme zložená zátvorka?
>> ALLISON BUCHHOLTZ-AU: Vy nie je technicky Potrebujeme ich, ako dlho ste v súlade.
Je to dobré praxe len dostať vo zvyku
použitie zložené zátvorky, ale technicky nie.
Nemusíte je na jednom riadku.
Práve sme sa jej skôr odporučiť pre ľudí začínajú programu.
>> Takže teraz to, čo by sme mohli chcieť robiť?
Takže teraz vieme, že naša reťazec je platný.
Chceme udržať vypočítať dĺžku.
Čo je to pravdepodobne prvý vec, ktorú chcete robiť?
>> Divákov: Vytvorenie int, že je to dlhé.
ALLISON BUCHHOLTZ-AU: Presne tak.
Divákov: A chceme nastaviť tak, aby?
ALLISON BUCHHOLTZ-AU: 0.
Perfect.
Dobrá.
A teraz, čo chcem robiť?
To je v skutočnosti väčšina z nich.
Ísť na to.
>> Divákov: Takže ste asi robiť pre slučke.
A potom, pretože pri volaní S, že ste dostať adresu prvá vec,
by ste začať s i = 0.
A potom, ak x Navyše som sa nevrátil lomítko 0.
ALLISON BUCHHOLTZ-AU: null zakončenie.
Divákov: null zakončenie.
Potom môžete pridať jeden na dĺžku.
>> ALLISON BUCHHOLTZ-AU: Jo.
OK, takže umožňuje otočiť, aby do veľmi konkrétneho kódu.
Ale to je perfektný nápad.
To je presne to, čo robíme.
Budeme mať Iterácie až s ukazovateľom.
Takže to, čo chceme robiť je miesto int
tu, pretože sme nie odkazovať sa na to.
Hovoríme na začiatok reťazec, ktorý začne byť niektoré adresy,
že jo?
>> Takže chceme ukazovateľ.
Takže budeme mať nejaký char hviezdu, pretože zodpovedá našim s, nie?
Tak to je nejaký bod sme inicializácia na začiatku reťazca, OK?
Takže poďme stačí zavolať: Či som ja.
Ak je to začiatok reťazca, čo sa to bude pridelený?
Nie 0.
Chceme, aby to bolo spustenie nášho reťazca.
To, čo predstavuje začiatok náš reťazec, ktorý nám bol daný?
>> Divákov: Len s.
>> ALLISON BUCHHOLTZ-AU: s.
Takže to vytvorí nejaký nový ukazovateľ, ktorý predstavuje začiatok nášho reťazca, OK?
Ďalší spôsob, ako myslieť na to, je ako tu je naša pole.
To je náš reťazec, s.
Takže povedzme, že je to prvé miesto, a to je 0x4.
04.
To je náš s, ktorý si myslí, že adresu.
A my sme práve vytvorili ešte jeden s názvom aj to len odkazuje na rovnakú vec.
Takže oni sú obaja len ukazuje na počiatku nášho reťazca.
Toto je len grafické znázornenie.
>> Takže teraz to, čo chceme urobiť, je chceme iterovat
naše podmienkou iterácie prostredníctvom našej reťazec.
Teraz nakupovanie.
Musím nakupovať, chlapci.
Sa chceme udržať aktualizáciu do sa dostaneme na hodnotu null zakončenie, nie?
Takže to, čo by to mohlo vyzerať?
Chceme aj, alebo chceme hviezda aj je otázka?
Je null zakončenie adresa alebo niečo, čo sa nachádza na adrese?
Nachádza sa na adresu, nie?
>> Takže potrebujeme dereferencia, čo je tu, pretože je to len nejaký adresa.
Ak chcete skutočne dostať na začiatok musíme dereferencia to
takže sme vlastne dostať to, čo je v tomto prvom mieste.
Takže ak budeme robiť hrať aj to, čo nie chceme, aby sa vyrovnal?
Divákov: spätné lomítko?
>> ALLISON BUCHHOLTZ-AU: tam.
Znamená to, že zmysel pre každého?
Musíme ísť do nášho reťazca a uistite sa, že to nie je koniec.
A potom môžeme len aktualizovať takhle.
Normálne aktualizácie.
Tak ak sa jedná o met, čo musíme urobiť?
>> Divákov: Dĺžka a a.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
A potom sa po slučke for, ukončí, čo chceme vrátiť?
Divákov: dĺžka?
ALLISON BUCHHOLTZ-AU: Dĺžka.
Tu to je.
Je zrejmé, že mäso je tento je pochopenie tohto cyklu for.
Má každý si, ako to funguje?
Som rád, že prejsť to znova.
>> Divákov: Druhá časť, takže hviezdou aj tam,
to je adresa first--
ALLISON BUCHHOLTZ-AU: To nie je adresa.
To je to, čo je na.
Divákov: To je naozaj tam.
ALLISON BUCHHOLTZ-AU: To je to, čo je v skutočnosti tam.
Tak toto je saying-- nechať mi, aby som to lepšie.
Tak toto je 0x04 a ja som jednoducho ísť hovoriť budem, aby sa tento moje meno.
OK.
Áno, viem, že mám kvíz recenzia večer.
Veľa kvíz recenziu.
Takže povedzme, že tento reťazec je moje meno, Allison.
Trochu chaotický, ale je to tam.
A S predstavuje umiestnenie kde začína reťazec,
takže budem robiť to real-- to je adresa,
kde reťazec začína, nie?
>> Takže to, čo tu robíme, je, že chceme, aby pomocou ukazovateľa iterovat.
Tak sme sa vytvoriť nejaký ukazovateľ, i, ktoré tiež sa rovná začiatku reťazca.
A v každom bode, chceme ďalej prechádza poľom
tu, kým hit zakončený nulovým znakom.
Tak sme sa vždy chcú zistiť, čo je v každej z týchto adries.
>> Tak sme dereferencia aj tak, že Prvýkrát sme to my
hovoria, OK, čo je na adrese 0x04?
Je to.
OK, sme dobrí.
Prírastok dĺžky.
Presunúť na ďalšie.
Takže Já-- pamätať umiestnenie ukazovateľov nárast o veľkosť, čo sa im už ukazuje.
Takže v tomto prípade, pretože je to char, bude to aktualizovať jeden.
Takže teraz budeme pozerať na 5, čo znamená, že sa to deje tu.
Tak to hovorí OK, prejdite na 0x05.
Čo je tam?
Je to l.
A to bude pokračovať v tom, že kým nenarazí tento.
A hovorí, že OK, čo je v nech adresa je toto?
Null zakončenie, OK.
Exit.
A práve návrat dĺžku.
Vzhľadom k tomu, čo potrebujete, čo je vlastne na že adresa, nie je sama o sebe adresy.
>> Existuje len veľmi málo miest, kde skutočne potrebujete adresu.
Väčšinu času, kedy používate, a to
keď ste prvýkrát priradenie ukazovatele alebo pri
ste odovzdaním do inej funkcie.
OK, všetci tam dobre?
Druh?
OK.
>> Tak vyzerá to, že máme zostáva asi 12 minút,
tak pôjdeme na možno naša posledná problém,
a potom je tu akýkoľvek pojmy, ktoré majú prísť
do tej doby môžeme rýchlo prejsť cez to.
>> Takže Switching Gears je posledná Problém, switch.
Takže vašou úlohou je prepísať tak, že sa chová rovnako
ale nepoužíva spínača.
Kriedových ruky.
Takže nejaké otázky týkajúce sa tohto off bat?
Žiadna?
OK.
Má každý pochopiť, že ak prípad nemá nič po tom,
to znamená, že by mal nasledovať ďalší krok?
Tak prípade 1 a 2 v tomto prípade robiť presne to isté.
Niekedy bod zmätku.
>> Dobrá.
Každý, kto má nejaké nápady?
Jo?
>> Divákov: takže si môžete proste if.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Takže to, čo je naše prvé?
>> Divákov: Ak n presne rovná 1, a 2 linky pre alebo n sa rovná
sa rovná 2, vytlačte malý.
A potom môžete robiť else if?
Alebo môžete jednoducho urobiť, ak?
>> ALLISON BUCHHOLTZ-AU: Môžete robiť else if?
>> Divákov: Bolo jedno, či ste urobili, keby?
ALLISON BUCHHOLTZ-AU: Tak to robí.
Má anyone-- áno, bude mať rovnaký výkon
Ak používate len IFS versus Ak používate inde IFS.
Môže vy myslíte, že z dôvodov, prečo by ste mohli chcieť použiť else
ak proti mnohým investičných fondov?
Má s účinnosťou.
Jo?
>> Divákov: To by skontrolovať všetky keby zakaždým.
>> ALLISON BUCHHOLTZ-AU: Takže aj keď to hit tejto prvej,
bolo by to na kontrolu každý druhý.
Takže chcete použiť, pokiaľ IFS inde v prípadoch, kde len jeden z nich bude vždy platiť.
Takže vzájomné vylúčenie je to, čo sa snažíme povedať.
Ak máte veľa investičných fondov, to znamená, že možno viac ako jeden z nich
záležitosti, a možno viac než jeden z nich môže byť pravda.
A chcete obaja vykonať v prípade, že sú pravdivé.
Ak chcete iba jeden z nich do práce v týchto vzájomne sa vylučujúcich prípadov,
Ak chcete použiť else if, pretože to všetko má čo do činenia s účinnosťou.
Váš kód je proste lepšia určený pokiaľ sa dodržiava túto prax.
Takže v tomto prípade budeme mať else if.
A to by bolo?
>> Divákov: n sa rovná rovná 3.
ALLISON BUCHHOLTZ-AU: Perfect.
Tlačové médium.
A potom naša posledná prípad, čo máme?
Else alebo else if?
Divákov: Else.
>> ALLISON BUCHHOLTZ-AU: Do my want-- chcete else if, pretože máme konkrétne prípady.
Nie je to tak trochu chytiť všetky.
Ak by ste mali predvolené v switch-- pamätať v prepínači môžete mať prípad,
a potom máte predvolené.
Ak by ste mali predvolené, to je druh vášho else tam.
Ale ak to má len prípady, to znamená, že budete potrebovať
skontrolovať, či je to každý z nich.
Takže v tomto prípade by to 4 alebo 5.
Chceme vytlačiť.
Je to veľký.
A je to.
A to by váš program.
>> Takže v tomto prípade, ak by sme mal predvolený niečo,
budeme mať inde v bez ohľadu na to chcel, aby sme urobili.
Tak to je dobrá rozdiel spoznať, pochopiť.
Znamená to, že pomôže s ovládaním pre vás?
Perfect.
Dobrá.
>> Máme asi osem minút pred.
Myslíte si, chlapci nejaké ďalšie pojmy na vysokej úrovni?
Otázky všeobecne?
Áno?
>> Divákov: Mal som otázka o jeden z nich
že sa o náhodný číslo generátor na kvíz nula.
ALLISON BUCHHOLTZ-AU: Oh, že jeden.
Ten je ďalšia, kde to je matematika than-- áno.
Riešenie that-- aj ja, keď Vidím to tak, že som ako to, čo to je.
>> Divákov: Bolo to číslo 7.
>> ALLISON BUCHHOLTZ-AU: Je to divné, podľa môjho názoru.
Takže v podstate chcete použiť drand48, ktorý
bude vám niektoré číslo medzi 0 a 1.
A chcete ho použiť, aby že ste nejako dostať je--
a je to oveľa väčší problém matematiky mi, ako si myslím problém SK.
>> Spôsob, akým budete robiť to-- a Niekedy to bude len takto.
Opäť sa jedná o prípady, keď je to druh
ako sa napísať, čo vás môže a čiastočné úveru.
Ak chceme teda o návrate vieme, že sme
bude používať drand48 nejakým spôsobom, nie?
Tak prečo nie my len poznamenať, že dole.
Používame ju nejakým spôsobom.
Spôsob, akým majú vy používate to je
takto, čo sa pokúsim vysvetliť.
>> Takže v podstate, čo sa tu deje Je tomu tak preto, že je medzi 0 a 1,
to, čo robíte, je ste vynásobením by-- to je veľmi matematický otázka.
Len plnej disclaimer, to je úplne matematika otázka.
Čo robíte, je vzhľadom k 0 a 1 a
chcete, aby to bolo v rámci tento rozsah, v skutočnosti
prísť na to, aký veľký rozsah, a potom
ste v podstate mierka to, čo je to, čo to robí.
>> b mínus vám tento rozsah, Rozdiel medzi týmito číslami.
Môžete násobiť medzi 0 a 1, a potom sa pridá len
Znamená to, že vaša mierky to tak, že je medzi a a b,
ktoré som nemal naozaj rád tento problém.
Ako som už povedal, tento kvíz znamená, že zahŕňa
ľudia, ktorí sú menej pohodlné, niekde medzi,
a pohodlnejšie.
Takže keď oni urobili to tak, že to bolo niečo
že všetci u menej pohodlné miesto dostane,
budeme mať príliš veľa ľudia bodovania zdokonaľuje,
a pohodlnejšie bude nudiť.
>> Takže sa vždy jedná druh hlavolam otázok
ktoré majú byť o niečo ťažšie že nejakú kreatívne myslenie.
Keď je vidieť, nie príliš pne.
Rozhodne by som povedal salto prostredníctvom testu ako prvý.
Riešenie problémov že viete, že môžete,
preto, že to k ničomu zaseknete na problém, keď tam sú tri
alebo štyri alebo päť na strane potom, čo si môžete ľahko urobiť.
>> Divákov: Prečo presne sa vám vynásobte to o rozsahu?
>> ALLISON BUCHHOLTZ-AU: Môžete násobiť rozsah, ktorý ste víš-- je to ako, ako veľmi po
chceš?
Takže si môžete myslieť, pretože to vracia číslo medzi 0 a 1,
môžete si ju v percentách.
Takže je to v podstate hovorí, ak máme Naše číslo riadku tu, je tu,
a b je tu.
Si ako koľko za to je?
Je všetko, čo robíte.
Takže ste sa pýtal na percento tohto rozsahu, ktorý
je to, čo to dáva vám.
A potom ste v podstate len mierka to pridaním.
Je to matematický hlavolam.
>> Ak tam bol nejaký last minute poradenstvo, I by som listovať otázky,
zistiť, ktoré z nich si viem, že rád, oh Mám to.
Takmer určite sa chystajú byť otázky, že nebudete vedieť,
alebo že budete mať čas pre, takže hit svoje silné stránky, OK?
Vy sa chystáte na veľký.
Existuje veľa Otázky z nejakého dôvodu,
tak, že budete mať čas na druh mať príležitosť
ukázať, čo ste naozaj dobrí.
Takže je to v poriadku, ak ste nie je dobrý vo všetkom.
Zahrajte si na svoje silné stránky.
Áno?
>> Divákov: Takže je to bude vrátiť niečo, čo je skrátený?
Áno, bude to, pretože drandí vráti medzi 0 a 1.
Bude to vrátiť int, pretože to bude skrátiť
keď pridáme alebo násobiť to.
V pohode.
Na poslednú chvíľu otázky?
>> Vy sa chystáte urobiť skvelé.
Budeš mať báječný.
A aj keby nie, bude tam byť candy tu budúci týždeň.
A ja ťa milujem.
Aj budete milovať ľudí bez ohľadu na to.
Dobre, všetci, veľa šťastia.
Majú veľký čas.
Budeš v poriadku.
A viete čo?
Za dva dni to bude byť u konca, zatiaľ čo ja
dve midterms vo štvrtok, takže aspoň vy bude hotovo.
Tak jo, uvidíme sa chalani budúci týždeň.