ALLISON BUCHHOLTZ-AU: Hei, kõigile. Tere tulemast osa. Täna on lihtsalt saab olema kõik viktoriin vaadata oma viktoriin kolmapäeval. Loodan, et kõik mäletavad, et neil on viktoriin kolmapäeval. Ja kui sa ei ole, noh, Nüüd olete olnud meenutas. Nii kolmapäev veenduge näidata üles klassi või muud majutust kui vajalikud. Te ei kavatse olla fantastiline. See saab olema suur. Ja ma teen kõike võin aidata valmistada teile täna oma viktoriin nüüd. Ja ka siis, kui te ei tea, on muidugi lai ülevaade istung täna kell 7 Loode Labs ruumi B103. Te näete mind jälle encore nagu Ma viib Selle kontrolli sessiooni samuti. Nii et kui sa ei saa piisavalt minust Nüüd võite tulla taas täna. Olgu, nii asjad kõigepealt. Lihtsalt mõned viktoriin vihjeid enne kui me tegelikult sukelduda kuni kommentaare. Nii nagu iga eksam, praktika kindlasti aitab teil välja. On eksamid minevikust kuus või seitse aastat seal, nii et on palju tava materjal kutid on. Ja tegelikult, täna on tõesti ainult läheb läheb üle mis tahes teemadel et teiega on küsimusi, samuti ka töö praktika kaudu probleeme alates viktoriin null. Nii et ma öökima viktoriin null eelmisel aastal siin, ja me saame töötada läbi kõik probleemid mis te poisid tahaks. 

Nii harjutamiseks. Sa lähed alustada teed, et täna. Kood paberil. Nii et jah, kui kõik võiks tegelikult tulla paberi, et saad olla suur, sest sa ei ole läheb on arvuti kohta eksami ja kirjalikult esitatud kood käsitsi on sageli palju raskem kui võiks oodata. Sa oled harjunud lihtsalt nähes seda ja kirjutades, ja sul on kompilaator aidata teil välja, kui sul on vigu, aga sa ei saa, et eksami. Nii et see on tõesti oluline, et tegelikult oleks võimalik kirjutada välja kood ja et lihasmälu teed seda käega tõesti teid aidata. 

Nii et me lähme veidi lähedal. See on esmaspäeval. Sinu eksam on kolmapäeval. Aga kui sul on aega, kindlasti võtta üks eksamid eelmisel aastal või aasta enne alla ajanappuse of tund ja pool. Just Tyrmätä tund ja pool korda ja istuge ja lihtsalt töö kaudu probleeme kui sa olid tegelikult võttes seda, sest üks suuremaid asju, mida me kuuleme viktoriinid, et nad on väga pikk. On palju materjali. On palju küsimusi, ja enamik inimesi ei lõpeta. Ma tean, et ma täiesti ei lõpetanud minu viktoriinid, kui ma võtsin klassis. 

Selle teadmiseks, kui vähem mugav osas aru, et see kursus on mõeldud rahuldada inimesi kõigil tasanditel. Kogu põhjus on meil jagate vähem mugav, kusagil, ja mugavam on selline see oleks õiglane. Ja kui sa oled vähem mugav, see on ei ole vaja per se, et saada kõik. Like, kui sa olid saada kõik, siis oleks ilmselt olla mugavam osa. Nii et ilmselt ei peksid ennast üles liiga raske, kui te ei saa lõpetada eksami. Usu mind, ma ei teinud seda. Ma olen ikka koondaja. Ma olen ikka aitab õpetada muidugi. Siis saad trahvi. Hea küll. Ja lõpuks, magada. Ilmselt ühegi eksami me alati öelda. Cramming Ööl ja ei saa mingit uni ei not-- äkki, kui see toimib teie jaoks, minna ta. Aga valdav enamus inimesed, saan magada, Lastes oma aju puhata ja taastuda enne tulevad eksamiks tõesti teid aidata. Ka seal on peaaegu kindlasti kommi eksamil, nii et sa pead ootan. Te kavatsete teha suur. See saab trahvi. Ja nüüd järgmine tund ja pool ma püüan ja prep te nii hästi kui suudan. 

Nii et mul on slaide põhiliselt kõik osad siiani. Ma ei lähe läbi kõiki neid, sest see ei ole teostatav poolteist tundi ning ka töö praktika kaudu probleeme. Nii et selle asemel on mul teemade loetelu. Need on kõik asjad, et me võiksime Viktoriinis. Kui seal on midagi et tegelikult hüppab et sa tahad minna üle, et sa tahad minna üle kontseptuaalselt Saan teada anda Sulle ülevaate seal. Või kui soovite hüpata paremale, et teeme praktikas probleeme koos, saame seda teha. See on kuni teil poisid. Ei ole, et paljud teist. Nii et see, mida sa poisid tahaksid teha. Ma tahan olla kõige abivalmis suunas kutid. Nii et ma lasen teil lihtsalt otsida. 

Sihtrühm: Üks asi on diagrammi, et me hoiame öelnud virna ja hunnik. Lihtsalt kogu idee taga mis ja mida see tähendab. ALLISON BUCHHOLTZ-AU: Jah, olgu. See kõik on kuidagi lõpus, seega lubage mul kerida. 

Sihtrühm: Me ei pea tee seda praegu, aga mis iganes. 

ALLISON BUCHHOLTZ-AU: Oli seal anything-- see üks. Kas selline udune inimestele? Sihtrühm: Jah, ma teist seda. Ja me saame teha ka buffer overflow? ALLISON BUCHHOLTZ-AU: Buffer overflow? OK. Nii buffer overflow on päris lihtne lihtsalt rääkida. See on põhimõtteliselt puhverdab sa arvad mõned massiiv mälu, et teil on, eks? Me tavaliselt rääkida buffer overflow kui sa ei kontrollimist, kui palju kasutaja on kasutusele, eks? Ja mõte on puhvri ületäitumise on nad on hakanud palju liiga palju andmeid ruumi et olete määratud neile, eks? 

Nii et kui te ütlete, anna mulle sõnumi, et me oleme eeldades, et nad ei kavatse anda meile mõistliku aja kirja. Võib-olla paar rida, tühi-tähi. Nii et me ei saa kontrollida. Selle asemel nad toidavad meid sisse kogu raamat see on sõnum, ja see ilmub summa ruumi, et oleme eraldatud selle eest. Ja mis juhtub on see võib hävitada kohad, et see ei peaks. 

Nii et ma tean professor Humala ütles midagi buffer overflow rünnakud. Nii et kui kasutaja sisend mõned tohutu hulga andmeid lootused et ta kirjutab minevikus Aasta lõpus oma puhver ja asendab midagi-- Ma ei tea Mul on meil slaidid siin. Ma ei usu, meil on slaidid siin. Aga põhimõtteliselt ta kirjutab mingi osa mälu mis võimaldab talle juurdepääsu et osade arvutisse et te ei teeks tavaliselt on juurdepääs. 

Suurim asi buffer overflow on lihtsalt mõista, et see juhtub, kui te ei ole kontrollides, kui palju teie kasutaja on kasutusele. Kui te ei ole sellist kaitsmise vastu. Ja lihtsamal asi, see on lihtsalt oma kasutajanimi sisestanud tormiliselt Andmete püüdes kirjutada mõned turvalisuse osa oma mälu. See on kõik see on. 

Nii et see siin korstna ja hunnik. Põhimõtteliselt on see kõik on lihtsalt esindatuse mälu ja kus asju hoitakse. See on tõesti selline kõik, mida vaja teada. Suurim asju, mida pead teadma, on selle-- las ma vaatan, kas seal on better-- siin. Nii et see on virnas siin. 

Nii pinu on pistmist kõiki oma funktsioone et helistate igal ajahetkel. Ja mis on oluline meeles pidada, läheb maha eelmisel nädalal malloc on see, et sa tõesti ei pea vajalik selle üle kontrolli. Kõik sõltub sellest, kui teatud ülesandeid täitev. Ja kui nad on täidesaatva, nad on, mida nimetatakse korstnat raamid et minna siin. 

Seega igasugu juhtub ilma tegeliku sisend sinult. Sa kirjutad oma programmi, ja sa lased ta joosta, ja korstna liiki võtab hoolivad endast kui seda on vaja. Nii et kui on peamised helistate kuubik, mis kandub siia. Seda saad luua raami. Aga seal on midagi, mida selgesõnaliselt teha luua, et freimi peale kirjutada funktsiooni alustada, OK? 

Mis on omamoodi vastavalt oma kontroll on hunnik koos malloc. Nii et kui sa malloc midagi, te võtate mälu hunnik. Ja see on mälu, et sa on puudumise tõttu parem sõna, selgesõnaline üle, sest mäletavad malloc see on põhimõtteliselt olemas kuni te ütlete teisiti. Neile teist, kes vaatasin lõik eelmisel nädalal see on seal kuni sa ütle ära minna. Ta on seal, kui muidu ütles ei. Nii et hunnik on lihtsalt midagi sa ei mõtle nagu mälu et teil on kontroll selle üle. Ja need on vaid kaks erinevat suuri asju. 

Muud kui, et sa ei tohiks olla muretsema liiga palju korstna ja hunnik küsimusi või tavaliselt rohkem lihtsalt kui sul on kohaliku parameetrid või funktsiooni see oleks virna või hunnik. Ilmselt antud juhul oleks pinu. Kui oled mallocing midagi, kus on see pärit? Hunnik. Kui te vaatate tava viktoriine, need on üldiselt tüüpi küsimustele et nad on. 

Sa ei pea muretsema liiga palju infot. Sa satuvad selgemalt umbes korstna ja hunnik hiljem või muus CS klassid. Nii lihtsalt võttes liiki üldine idee, mis see on on hea, mida ma lihtsalt selline läks üle. Kõik muud teemad? Jah? 

Sihtrühm: Kas te lähete üle suunanäitajaks jälle tõesti kiiresti? ALLISON BUCHHOLTZ-AU: osuti? Kas soovite kontseptuaalne ülevaate viiteid või sa harjutada viiteid? Sihtrühm: Kind of nagu süntaks. ALLISON BUCHHOLTZ-AU: süntaks? Jah. OK, me sinnani. Jah, nii see on lihtsalt selline midagi kui sul on rekursiivne funktsioon, iga kord, kui rekursiivne funktsioon on nimega, see lihtsalt lisab teiste freimi. Päris palju näiteks kuidas sa tõesti ei on üle raamid oma korstnat. 

OK, suunanäitajaks. Olgu, nii luues suunanäitajaks. Pea meeles, et see on lihtsalt kirjuta star. Nii et mis iganes tüüpi andmeid sa lähed osutades. Nii et see oleks pointer int. See oleks viit char. See oleks osuti sularahaga. Nii et see on põhimõtteliselt mida iganes sa tahad seda osutades, täht on, kuidas deklareerida osuti, OK? 

Aga siis ilmselt muutub vähe keeruline, kui teil on pointer või teil on täht iganes. Nii suur erinevus on see, kui sa declaring-- nii et meil on some-- nii see võtab mõned int star. Nii et see on mingi pointer kutsub x int, eks? Seega pidage meeles, mida see teeb see nõuab süsteemi x. Ja see läheb mõned aadress, eks? Nii ütleme lihtsalt see on meie aadress. Osuti hoidke aadresse. Mida see ütleb on, et selles asukohast, oleme ladustamiseks int. 

Nii et teist teed me ei mõtle see on, et see on mingi int. Me ei ole tegelikult määras selle midagi veel, aga see on lihtsalt int. Nii et me saame teha on, kui me star x võrdub 5, see muutub 5, OK? See ütleb, et minna ükskõik x osutades, et minna sellele aadressile ja teha seda, mis moodustab 5. Nii anname 5 sellele aadressile, eks? 

Ja siis, kui sa seda teed, see annab meile aadress. See on aadress operaator. Mis on aadress x? Me ei tea. Me ei ole talle määratud aadress. Me võiksime öelda, et see some-- nüüd andsime seda aadressi, nii aadressi on 4. Ja tegelikult, kui me minna läbi midagi nagu see, millist, mida me tegime. Nii et töö kaudu siin-- leian see aitab, kui sa venitama suunanäitajaks. Kui sa oled oma eksami, ma Soovitame joonistus kastid. 

Nii et see esimene, int x võrdub 5. See lihtsalt tähendab, et meil on mõned koht mälus, mis on 5, eks? Ja meie tabel siin ütleb meile et see aadressil 0x04. Ja siis me luua mõned pointer. Nii et olgem jaotada see ühe korraga. Nii et see tekitab teatud kast int, eks? See saab hoida mõned aadress ta. Nii et see on mingi pointer. Ja see kriit on tõesti väike. Nii et meil on mõned pointer siin. Ja meie tabel ütleb meile see aadress on 0x08. Külm. Ja me määrates see aadress x. 

Pea meeles, et osuti hoidke aadressid, OK? Nii et kui me tahame hoida x, meil kasutada aadressi operaatori, mille on ampersand, et saada aadress x, mis antud juhul, 0x04. Ja siis, kui meil on mõned int koopia, see lihtsalt tekitab mõne teise kasti, mis omab int nimetatakse koopia. Ja kui me määrata selle see-- nii et see on viited ta. Nii ta ütleb minna mis tahes aadress pointer hoiab. Pointer omab sellele aadressile nii et me tahaks minna siin, ja me ütleme, OK, mis see on? See on 5. Nii koopia muutub 5. Mõtet? 

Mis siis, kui ma püüdsin anda see lihtsalt pointer. Mida pointer tegelikult võrdne? See oleks lihtsalt ükskõik pointer sisaldab, eks? Ja mis siis, kui ma tegin seda? Mida koopia olema nüüd? 

Sihtrühm: 0x08. ALLISON BUCHHOLTZ-AU: Yep, aadress meie pointer. Iga osa, et vajab uuesti seletada? Külm. Kahtlemata on väga lõbus probleem viktoriin üks et suudame üle selle annab sulle rohkem praktikat. Kutid eelmisel nädalal võib ütlen teile, see ei olnud halb. Saime läbi kogu skeem, ning kõik said suurepäraselt. 

OK, nii see ülevaade süntaksi näpunäidetest. Suurim asi on mõista, kuidas luua neile, teha viitamine, ja aadress, OK? Külm. Muid teemasid enne kui me sukelduda praktikas. Ka siis, kui me läheme läbi praktikas probleeme ja seal on midagi, mida sa tahad täiendkoolituse kohta, mida me saame teha, et liiga. Kas sul on midagi? 

Sihtrühm: Structs ja seotud nimekirju. ALLISON BUCHHOLTZ-AU: Structs ja ahelloendid, OK. Nii structs. Me tegelikult ei kavatse üle see täna ka. OK, nii et structs. Structs on põhimõtteliselt vaid viis, kuidas saate hoida Mitme väärtused erinevad. Nii array oleme ahenenud ühe andmetüübi. Meie massiivi kas peab olema ainult numbreid või lihtsalt tähemärki, või lihtsalt ujub. 

Aga võib-olla teil on vaja sisaldavad rohkem. Võib-olla peate hold-- kui sa räägid üliõpilane, sa lähed on oma maja, oma ID number, oma vanus, kus nad elavad, õige? Ja kõik need on Erinevad tüübid. Nii et sa ei saa salvestada need kõik massiivi. 

Niisiis, mida saate teha, on teil saab luua struktuure, mis sa ei mõtle nagu teie enda isikuandmete tüüp. Nii et selle asemel, et lihtsalt võttes ints ja selle asemel, et lihtsalt võttes ujukid, sul võib olla teatud tüüpi õpilane, et on kõik need väljad ta. Niisiis, kuidas me initsialiseerida meie structs on-- tegelikult kuna minu kirjutamine on kohutav, me hakkavad üleminek kirjutades. Woo. 

OK, nii et kui me tahame luua struct-- Ma lihtsalt läheb selle siia. Hoolimatus peamistes iganes mida me kasutame hiljem. Niisiis, kuidas sa tahad seda teha see on koos typedef struktuure. Ja olgem lihtsalt nimetame seda õpilane sest see, mida olin kasutades. OK, nii et typedef tähendab, et sa oled määratlemisel uut tüüpi, OK? On nüansse arvesse, kui sa lihtsalt struct versus typedef struktuure. Sest kõik kavatsused ja eesmärkidel, kutid on lihtsalt läheb eeldada, et nad umbes sama ja lihtsalt kasuta typedef struct nüüd. Seda saad saada viis ilmsem oma Järgmine P määrata, mida need erinevused, aga ma ei usu, et teil on vaja muretsema, et just nüüd. Ma oleks palju parem teile tea, kuidas seda luua, kättesaadavusest, ning määrata [? väärtus. ?] 

Uut tüüpi struktuure ja kutsume ta õpilane. Nii et pärast me loomise lõpetanud seda, kõik kavatsused ja eesmärkidel, siis on tüüp nimega üliõpilane. Ja sa ei mõtle seda niisama tüüp nagu int või float või char. See on lihtsalt üks tüüp, OK? 

Nii et see, mis meil on? Meil on võibolla nimi. Nii et äkki me tahame string nimi. Ja meil on äkki int see ID. Ja meil on teine see telefoninumber. Ja me oleme some-- vaatame. Mida veel võiks meil? Me peame mõned string tema maja. Kõik asjad, et õpilane on. 

Nii et see loob struct nüüd. Niisiis, kuidas võiks loome õpilane? Kui meil on mõned muutuja, mis on räägime Walker siin nii me have-- me lihtsalt läheb nimetame seda käija. Ta vajab tüüp. Milline on sinu tüüp? Publik: Õpilane. ALLISON BUCHHOLTZ-AU: Student. Nii see lihtsalt tekitab objekti saate arvad, et on kõik need asjad. Sa lihtsalt loodud käija üliõpilane. Nüüd me peame olema võimelised määrata kõiki neid, eks? Nii et keegi ei mäleta, kuidas me juurde jooksul struct? Sihtrühm: Periood. ALLISON BUCHHOLTZ-AU: Periood Täpselt. Nii et kui me tahtsime anda Tema nimi, võiksime seda teha. Ilmselt see oleks olema-- see osa oleks siin asuma peamine, nii tegelikult, las ma teen seda. Tunnistada käesolev eespool peamised nii et me ei kasuta seda sees peamine. Nii et nüüd ma tahan seda teha ID, ja me lihtsalt teha mõned seal, ja siis me anda maja. Bam. Külm. 

Nüüd peaks me kunagi vaja juurdepääsu midagi hiljem nüüd-- äkki we-- kui me kunagi vaja juurde midagi, olgem lihtsalt teha int koopia ID. Ja ma tahan kopeerida Walker ID sellesse. Kuidas võiks seda teha? Sa pead juurde jooksul käija struktuure, et [? minna on?] [? E?]. Ja samamoodi, et me määras selle siia üles, kuidas võiks me kasutada seda kui me tahame annab väärtuseks midagi muud? Sihtrühm: Walker.id. ALLISON BUCHHOLTZ-AU: Jah, täpselt. Nii et see on päris palju kõik sa pead teadma, et structs. Sa lihtsalt pead mõtlema neid teise muutuja. Põhimõtteliselt luua oma enda muutuja tüüp, OK? Sa kasutad seda tunnistada muutujate mistahes viisil. Siin käija on ikka erinev. See lihtsalt on tüüp üliõpilane nüüd selle asemel tüübi int või tüüp string, või tüüp char. Kui oli lihtne rääkida umbes structs, see on sõna otseses mõttes lihtsalt luua oma andmete tüübi mis võimaldab teil grupp kõik need erinevad milliseid andmeid koos. Kas see on mõistlik? OK. See ja tutvumise punktidena. Päris palju kõik, mida vaja. 

OK, kust minu PowerPoint minna? Siin see on. Jah, see on imelik. Ahaa. OK, lahe. Muid asju või me tahad pea harjutada? Harjuta? OK. Awesome. Ma lähen väljumiseks. Kui mis tahes hetkel praktika küsimusi, Ma olen õnnelik, et uuendada ja läbida asju. Nii et mul on viktoriin null siin. Kui te tahate tõmmata püsti oma arvutis, lihtsalt meeldib võtta viis minuti sirvida. Võib-olla valida mõned top küsimused, kuhu tahad minna üle. Kui poisid ei suuda otsustada, me lihtsalt aeglaselt alustada tööd nende kaudu, aga ma olen kindel, et seal ei kavatse olla mõned küsimused, mida on eriti innukas rääkima ja on mulle läbi töötada koos teiega kõik. Nii lihtsalt minna ja võtta viis minutit. Kerige läbi. Ja see on viktoriin alates 2013. aastast. 

Sihtrühm: Zero? 

ALLISON BUCHHOLTZ-AU: Jah, viktoriin null. Me ei tee viktoriin üks värk. Me teeme, et paari nädala jooksul. Ka neile, kes tuli hilja, meil on komme, nii et ärge te tahate kommi? 

Sihtrühm: Muidugi. 

ALLISON BUCHHOLTZ-AU: Ma olen lihtsalt läheb sooritama ümber. Hei, kui te poisid siia alguses, saad rohkem kommi. See on hea. Ben, sa tahad kommi? Sa tahad mõnda neist? Seal on ka Snickers kui keegi tahab Snickers. Ma jätan need siia ja siia. Julgelt. Kas soovite enam? Sihtrühm: Kõik seada. Aitäh. 

ALLISON BUCHHOLTZ-AU: Mul oli kena väike pakk seal alguses. Te saate võtta mälumängu Ma saan olla viktoriin liigitamise poole. See on kaos. 900 eksamid. See saab olema nii lõbus. Kavatse olla suur. Ma olen päris kindel, et see on üks suurimaid töötajad liimimine ööde aastas. Kas keegi on teinud viktoriin null alates eelmisel aastal veel uudishimust? 

Sihtrühm: Parts ta. 

ALLISON BUCHHOLTZ-AU: Parts see, OK. Kas teil on küsimusi igal neist? Sihtrühm: Ma juba läks tööajal. Aitäh küll. ALLISON BUCHHOLTZ-AU: Noh, loodetavasti see on ikka omamoodi kasulik. Millal minna Tööajal on? Sihtrühm: Minu TF oli neid täna pärastlõunal. ALLISON BUCHHOLTZ-AU: Oh. Kes on sinu TF? Sihtrühm: Fred [? Wujaya?]. ALLISON BUCHHOLTZ-AU: Seal on nii palju TF. Nii palju. Hea küll. Igaüks on alustada, et ma ei saa kübeke alla, et me tahame töötada? Eeldan viiteid üks tabel. Mine seda. 

Sihtrühm: Äkki lüliti üks. ALLISON BUCHHOLTZ-AU: Nii number 12? Eeldan number 8 ja 9 on ilmselt need inimesed tahavad minna üle. 

Sihtrühm: Ja 10 ja 11. 

ALLISON BUCHHOLTZ-AU: Ja te teate saad ühe lehekülje märkmeid, eks? 

Sihtrühm: Jah, nii see, mis on me lasime panna seda. 

ALLISON BUCHHOLTZ-AU: Sa oled lubatud panna kõike, mida soovid. Ja see võib olla trükitud. Niipalju kui ma mäletan, meie olid trükitud. 

Sihtrühm: Seda saab teha tagasi ning mõlemad pooled? 

ALLISON BUCHHOLTZ-AU: Jah, mõlemad pooled. Nii et midagi hunnik ja [? kolp?] hunnik, oma jooksvate korda. Kasulik. Võib-olla vähe asju suunanäitajaks teile meelde tuletada. Süntaks asju. Võttes just nagu skelett Programmi saab olema super kasulik. Ma tean, et ma alati unustasin täpselt Ma pidin kirjutama int main, sest ma alati lihtsalt kopeerida kleebi mu eelmise P komplekt või see on juba olemas, nii et Ma kunagi kirjutasin selle, nii võttes, mis võib olla super kasulik. 

OK, siis miks meie seda ei tee Alustame number 8 siis? Hea küll. OK. Nii leiavad programmi alla. Nii et ilmselt, kui me näeme suunanäitajaks, see on ilmselt hea mõte alustada joonistamine, eks? Ma tahan teada, kus kõik mu suur tükki kriit läks. See on omamoodi tüütu. 

Nii et meil on siin mõned swap funktsiooni et aega võtab kaks suunanäitajaks. Nii antud juhul nad peaks tegelikult olema üleminek asjad versus meie algne swap funktsioon, mis kestis vaid ka koopiad. Nii et mida see tegema hakkab on-- Alustame peamine, sest see on kui 1. 

Nii et meil on mõned int x 1. Meil on mõned y mis on võrdne 2. Ja siis on meil mõned swap et aega võtab need. Ja vaatame, mis meil siin on. Ja meie table-- oh boy. Kuidas ma kavatsen seda teha? Ma juhtida minu lauas siin. Vaevalt seal. Vaevu tegemist. 1, 2, 3, 4, 5, 6, 7. Ja nad meile, et 1 on 1 ja 1 2. Külm. Awesome. Nii et 3. Ja seal [? 1.?] 

Hea küll. Ja siis aadress x on 0x123. Ja y on Ox127. Külm. Hea küll. Ma tahan teiega tööd selle vaid like-- tööd selle kallal inimestega enda ümber. Ma soovin, et oli öelnud, et kui olin alustamisest. Töö selle kallal. Proovige ja teha seda, mida ise paar minutit, ja siis ma tööd selle kallal koos sinuga. Kuna ainus viis sa oled tõesti lähed õppima on tehes seda ise. Ära muretse. Õnn kaasa. 

OK, siis miks ei ole me aeglaselt alustada tööd selle kaudu. Nii et igaüks saab pärast rida üks x on 1. Pärast rida kaks, x ja y on 1 ja 2, eks? Külm. Nii rida kolm on koht, kus asjad saada huvitav muidugi. 

Niisiis, mida me oleme teinud siin on meil nüüd vahetaks. Me ütleme, et x ja y on need punktid, või neil on aadress x ja y, õige? Nii antud juhul kolm, Mis on väärtus? oli möödunud aastal, on antud väärtus aadress x, eks? 

Sihtrühm: 1? 

ALLISON BUCHHOLTZ-AU: Nii me lisada see x? Mis on x aadressi? 

Sihtrühm: 0x123. 

ALLISON BUCHHOLTZ-AU: Täpselt. Aga milline on tegelikult osutab? Kui me käivitatav, milline väärtus oleks see meile. Sihtrühm: 1. ALLISON BUCHHOLTZ-AU: Oleks anna meile 1, sest see, mida me ütleme, on minna seda aadress, ütle meile, milline väärtus on. Mis oleks b? 

Sihtrühm: 0x127. ALLISON BUCHHOLTZ-AU: Täpselt. Nii et see on aadress, y. Ja mis siis [? dereference? ?] Sihtrühm: 2. ALLISON BUCHHOLTZ-AU: OK, nii et nüüd neli. Me ütlesime, on equal-- ning nüüd me oleme teha int temp on võrdne staar. Mis muudab? Seal on ainult üks asi, mis muudab siin. Mis see on? 

Sihtrühm: Temp. ALLISON BUCHHOLTZ-AU: temp. Nii saame kirjutada kõik need. Hea strateegia nende on lihtsalt figuring mis muutub, sest kõige sagedamini seal on ainult üks asi, mis on muutu igal hetkel, OK? Nii et me oleme määratud temp. 

Nüüd on meie järgmine punkt, viis, me on teinud star võrdne täht b. Mis muudab nüüd? 

Sihtrühm: Star. 

ALLISON BUCHHOLTZ-AU: Star, nii kõik muu jääb samaks. Ja mida see täht võrdsed? 

Sihtrühm: 2. ALLISON BUCHHOLTZ-AU: 2. Armas. Awesome. OK, ja siis nüüd on meil alustada b on võrdne temp. Nii et ainus asi muutmine on star b. Kõik muu jääb samaks. Ja mis on star b võrdub nüüd? Ja teie olete tabelist. Sest nüüd lõpus, kui me ütleme x ja y, me teame, et selles point-- me teame, et kui me muutunud star 2, mida see tegi see ütles OK, kell lahendada 0x123 siin muuta. Nüüd see oli 2. Ja siis sel hetkel, me ütlesime OK, minge täht b. Nii et minge aadressile 0x127 ja teha seda 1. Nüüd päris lõpus, kui me tegelikult tagasi pea-, meil tegelikult on, et x on võrdne 2 ja y on võrdne 1. Igaüks hea on? OK, lahe. Number 9. Te tööd selles. Ma lähen luua juhatuse nii saame teha seda läbi. See saab olema lööklaine. Suur lauad võivad olla tõesti jube, ma tean. Aga kui sa lihtsalt võtta neid üks rida juures aega, nad saavad palju vähem hirmutav. Hea küll. 

Nii et sa tead, et see on läbinud peamine esimene, eks? Initsialiseerib x ja y ja Seejärel üritab vahetada neid. Nii et isegi swap on suurem, reaalne võimalus seda läheb on see, et me läheme läbi peamised, ja siis helistab kuni vahetada, eks? Nii et igaüks teab seda. 

Nii et milline neist sa poisid tahavad alustada? Kas keegi on tõesti kindel umbes üks neist? Või isegi osaliselt selles kindel? Miks me ei alustada x? Mida me arvame x on? 

Sihtrühm: 1. ALLISON BUCHHOLTZ-AU: 1. Niisiis, miks on 2. Ja see on sellepärast, et suurt vahet siin on see, et me oleme ainult kulgeb eksemplaris, eks? Me ei kulgeb viitega. Nii et isegi lõpus Selle programmi x ja y on jäänud samaks, sest nad on vaid eksemplaris swap funktsiooni. Nad tegelikult ei muutu, eks? 

Nii kuidas a, b, ja temp? 

Sihtrühm: on b. 

ALLISON BUCHHOLTZ-AU: on b. Nii antud juhul oli x, mis on 1, eks? Nii et siin, lähme käime läbi. Nii et alguses, ja b on 1 ja 2 ja määratlemata. Nii et esialgu temp muutub määratud, et temp on 1. on võrdne b, siis saame 2 ja b on võrdne temp. Nüüd saate 1. 

Sihtrühm: Eelmise üks ta vahetasid ampersand x ja ampersand y. Mida see tähendab? ALLISON BUCHHOLTZ-AU: Nii et see tähendab, et sa kulgeb viitega. Nii et see tähendab et sa oled tegelikult möödaminnes aadressid, kus x ja y on salvestatud. Sihtrühm: Aga sa ei ole Vahetatakse aadress. ALLISON BUCHHOLTZ-AU: Sa ei ole Vahetatakse aadressid. Sa vahetuskaup, mis on nende sees. Nagu mida on sellel aadressil, ja sellepärast see toimib. Versus see programm siin, mida sa teed on loote eksemplari. Nii et teil on x ja y, mis on olemas kui oma muutujad siin. Aga siis, kui te kaotate need swap, see on sest kui loote kogu see muu komplekti. Nii et sa oled tegelikult kunagi liigutav x ja y. 

Sihtrühm: Kui ampersand x on see, mis on aadress x, mis oleks täht x olema? 

ALLISON BUCHHOLTZ-AU: Ampersand x on see, mis on aadress x, siis star-- hästi, sel juhul x ei viida. Sihtrühm: Oh, OK. Nii et sa seda teha ainult sest see ei ole pointer. ALLISON BUCHHOLTZ-AU: Õigus. Sa võid ainult teha staar midagi, mis on osuti. Äkki võiks seda teha asju, mis ei ole, kuid kompileerida, et sa Selleks, et hullud asjad juhtuks. Ja ma ei ole täpselt kindel, mis juhtuks. Teil on alati võimalik võtta aadressi midagi, aga sa ei saa käivitatav midagi, mis ei ole pointer. Kui see on mõistlik, see on hea vahet on. 

Nii et ei ole liiga halb, eks? Tabelid loodetavasti saada veidi vähem hirmutav. Hea küll. Ah, lõbus ones. Nüüd, kirjalikult oma koodi. Nii et ma lähen teile poisid tööle Sellel umbes neli minutit, ja siis me saame rääkida umbes, kuidas läheneda. Julgelt rääkida inimestega enda ümber. Ka see on huvitav. See on nagu kõik tüdrukud lõik kohe. Päris põnev. Välja arvatud Chang. Aga Chang ei ole tegelikult osa jagu. Awesome. Perfect. Nii et ma annan teile paar näpunäiteid. Juhul, kui teil on rohkem kui üks märk, kus sul on midagi muud nagu 123 või 1000 midagi, sa pead olema võimeline loop läbi ja muuta kõik need. Nii et seal on paar viisil, mida võiks teha, et aga sa kindlasti kavatse olla silmus kusagil seal loop nende kaudu, mis on selline nagu Give isegi kui helistate strlen, mis on selline nagu oh äkki soovid kasutada pikkuse stringi mingil moel. 

Hea küll. Mida te poisid arvate, võib olla üks esimesi asju, mida me tahame teha? Seal on paar juhtumeid siin me peame arvele, eks? Kas meil on midagi, mis on null. Mis meil on? Kohtuasjades. Null. Meil on nii, et see on midagi muud kui 09, eks? Ütleme, et ta on teel. Või on meil nii, et see kehtib. Kolm juhtumit mõelda. Nii et milline neist on teie arvates võiks olla Lihtsaim üks hoolitseda esimesena? Sihtrühm: Null. ALLISON BUCHHOLTZ-AU: juhtum on null. Mis siis me teeme seal? Sihtrühm: [kuuldamatu]. ALLISON BUCHHOLTZ-AU: Jah. Ja mida ma tahan teha? 

Sihtrühm: Tagasi 0. 

ALLISON BUCHHOLTZ-AU: Täpselt. Awesome. OK. Nüüd juhul, kui seda tähte ja nii, et see ei kehti. Me ei saa tegelikult hoolitseda Selle ühe silmuse, OK? Nii et üks võimalus seda teha it--, milline võiks olla Lihtne viis kontrollida, kas see on kehtiv. Meil oleks minna läbi Iga tähe ja teha seda, mida? 

Sihtrühm: Kontrolli, kas see on in-- 

ALLISON BUCHHOLTZ-AU: Õigus, saate vaadata kui see on 0 ja 9 vahel, eks? Ja siis, kui tegemist et see kehtib, me oleme läheb lõpuks iterating kaudu meie string niikuinii, eks? Nii et miks me ei proovida ja neid kombineerida ühte. Me läheme itereerima kaudu välja string, ja kui me teha, et me ei kavatse esimene seda vaadata, kui see kiri või kui see märk kehtib. Kui on, siis me ei kavatse täita operatsioon, et me peame muutma selle. Vastasel juhul saad tagasi 0, eks? 

Nii et enne kui me seda teeme, me ilmselt tahad muutuja et saame tagasi lõpus mis saab olema meie tegelik väärtus. Nii et me ei kavatse initsialiseerida mingi väärtus 0. Ja see, kuidas me alustame. Ma lähen, et saada lahti sellest. Niisiis, kuidas me saame itereerima kaudu string. Sihtrühm: For loop. ALLISON BUCHHOLTZ-AU: silmus. Mis on meie jaoks? 

Sihtrühm: i on 0. ALLISON BUCHHOLTZ-AU: Mm-hm. Ja mida me iterating kuni? 

Sihtrühm: str pikkus s. 

ALLISON BUCHHOLTZ-AU: OK, nüüd mäletan seal on parem. [Kuuldamatu]. 

Sihtrühm: Jah, me saame teha n võrdne. ALLISON BUCHHOLTZ-AU: Täpselt. 

Sihtrühm: i on väiksem kui n. ALLISON BUCHHOLTZ-AU: Ja miks kas me tahame seda teha? Kas sa mäletad põhjus? Sihtrühm: Me peame selle uuesti arvutama. ALLISON BUCHHOLTZ-AU: valgusküllane ja kaasaegne asukoht sel moel ainult arvutada strlen üks kord. Kui sa i on väiksem kui strlen s, see tähendab, et ta arvutab pikkus iga kord sa jooksed silmus, mis ei ole suur kulu energiat, kuid see on parem viis, et proovida ja teha asju korraga. Kui sul äkki hull string mis on muutumas iga iteratsiooni. Aga kui ta ööbib sama, salvestage see. Hea küll. Ja siis ma pluss pluss. Awesome. Meil on meie viis. Sihtrühm: tõesti kiiresti. Esiteks, nii oletame, et me lihtsalt Kas ma vähem kui strlen s, nad liigitamiseks meile disain üldse või lihtsalt õigsust? Nad ei ole. Me liigitamise õigsust jaoks viktoriine nii palju kui ma tean. Ma ei saa täis garantii, kuid enamasti Valdav enamus on korrektsus, sest sa oled alla palju aega piirata. Design Tavaliselt tähendab sul on aega mõelda umbes elegants oma olukorda. 

OK, nii et me oleme iterating kaudu. Nii et me peame kas kontrollige kas see märk kehtib või kui me suudame täita oma normaalse [? i?] funktsiooni. Me ei muretse, mida see on teine. Nii et miks me ei Vőta kui keegi ei mõtle umbes viis kontrollida, et kas see on kehtiv. Me teame, et see saab olema mõned kui tingimus, eks? Ja pidage meeles, see on ASCII, siis kuidas võiks näeme, kui see ei ole 0,1, 2, 3, 4, 5, 6, 7, 8 või 9. Sihtrühm: Kui alfa. 

ALLISON BUCHHOLTZ-AU: Nii et kui alfa oleks vaid andke meile teada, kas see on kirjas. Ja kui nad annavad meile sümbol, see on ikka pole päris kavatse vaadata. Nii et kui sa tõmba oma ASCII tabel, me teame, et 0 kuni 9 on üks segment. Ütle mulle numbrid, et nad vasta kui võimalik. Sihtrühm: 40. 

ALLISON BUCHHOLTZ-AU: Nii et valik on nagu 40-- Sihtrühm: Võib-olla. 48-57. Ma pole kindel. 

ALLISON BUCHHOLTZ-AU: 40-57? 

Sihtrühm: 48, ma arvan. ALLISON BUCHHOLTZ-AU: 48-57. Nii et me teame, et need ASCII symbols-- kui ASCII väärtus ei ole vahemikus 48 ja 57, see ei kehti, eks? Nii saaksime kasutada, et meie eelis olla? Kuidas me saada selle kirja kõigepealt välja lülitada? Kuidas me tutvumise see see märk? 

Sihtrühm: s sulg i. 

ALLISON BUCHHOLTZ-AU: Mm-hm. Sest me ei mõtle stringid massiivid mäleta. Niisiis, mida me tahame öelda? Me tahame öelda, kas see on-- ma annan sulle vihje. See on vähem kui. Mida sa arvad, et peab olema alla? Sihtrühm: 57? 

ALLISON BUCHHOLTZ-AU: 47, eks? Aga see tähendab ka, et kui 0 ühe [? kodarad?], kuna see on iseloomu 0. Sa võid ka panna 47. Võttes ASCII tabel, nagu sa näed, on lihtsalt midagi siis peaks olema oma viktoriini lehel. 

Niisiis, kui see on juhul, kui see on väiksem kui 0-- ei pruugi ja. See on ainult üks saab olema väiksem või suurem kui 9. Nii et te saate täitke see viimane on minu jaoks? Nii või s i on mis, Rhea? 

Sihtrühm: Suurem kui 9. 

ALLISON BUCHHOLTZ-AU: Ei. Kas see mõtet kõigile, kuidas me saime seal? Need probleemid, nad on nagu kui sa näha lahendusi, see on nagu oh, OK. Ja see on põhjus, miks praktikas aitab teid. OK, nii et me tagasi 0. Armas. Hea küll. Vastasel mida me tahame teha? See on huvitav osa kus see on natuke rohkem nagu matemaatika versus CS minu arvates. Kas kellelgi on aimu kuidas me võiksime seda teha? Nii tähtsam mõista, on esimene märk me viime läheb kõrgeima et number, eks? Nii et kui me vaatame ümberehitamiseks 123, esimest korda me itereerima on kavatse olla 1, kuid me peame et olla 100 aasta lõpuks, eks? Nii et üks asi, mida saate teha, on see, et iga järgneva kohaline võtate, korrutada oma väärtust 10, nii et selleks ajaks, kui jõuad lõpuks kõik on olnud tõstetud, eks? 

Nii et esimene kord, kui käivitad seda, mida on 1 oma väärtust. Teine kord, kui käivitada, siis korrutada oma väärtust 10. See uuendab seda nii, et see on nüüd 10 ja lisate oma järgmise väärtus. Ja siis korrutada, et 10 ja lisada teie järgmine väärtus. Ja see on põhjus, miks nad ütlevad seda nagu rohkem testimine matemaatika algoritm versus CS, kuid ma põikama. Ma ei kirjuta viktoriine. 

Nii et üks asi, mida me teha saame, on meil öelda väärtus korda võrdub 10. Nii et see läheb minema Sinu kohaline kord aega. Ja siis me lihtsalt tahame lisada. Me tahame lisada, mida me just, eks? Niisiis, kuidas me tegelikult teisendada meie ASCII iseloomu arvesse number et ta esindab? 

Nii et me teame, et 0 on võrdne 47, eks? Nii et kui 0 on 47, mida oleks me peame tegema, et see et tegelikult teeb see olema int 0? 

Sihtrühm: See on 48. ALLISON BUCHHOLTZ-AU: 48? Vabandust. Me lahutame 48, eks? Mäleta ASCII matemaatika? Me saame käsitleda neid lihtsalt nagu tavalised numbrid. Kui sa kohtled neid nagu numbrid, nad muutuvad numbrid tõhusalt. Nii et kui meil on s i, mis olgem öelda, on sel juhul võrdne 0. Nii s i antud juhul oleks ASCII-- ASCII int eest oleks 47. Nii võiksime subtract-- või 48. Sa võiksid teha, on üks võimalus. Kas keegi teab paremini kuidas me võiks teha 48? Me lihtsalt ütles, 0 on-- minna ASCII, mida võiks teha quote 0. Nii teeb seda omamoodi teha mõttes, kuidas see toimib? 

Sihtrühm: Sel hetkel, on väärtus 0 sest isegi kui sa korrutada see 10, sa oled hakanud läbi null, nii peaks see olema sisse lülitatud? 

ALLISON BUCHHOLTZ-AU: Nii et kui te tahan korrutada see enne, kui lisate, sest sel juhul jah, oleks veel olema-- minu osuti on puudu. Väärtust antud juhul esimese kord, kui me käivitada see null. Nii et sa oled lihtsalt lisades selle esimene number. Tähtis on, et järgmine kord sa itereerima, mida soovite nihutada it up enne kui lisate oma järgmise numbri kohta. Kas see selgitada sulle? OK. 

Mõnikord sa lähed saada imelik rohkem mathy asju. Kui teil oli enamik see, sa oled ikka veel et get-- sa lähed tegema päris hästi. Osaline krediit on väga suur asi CS50 viktoriine. Nii et kirjuta, mida sa tead. Kui sul on kõik välja arvatud siin, sa oled veel kavatsete teha tõesti hästi probleemi. Sest sa oled näidates, OK, ma peaaegu tean. Ma tean, et mul on vaja kinnitada, läbi. Ma tean, mida ma vajan, et kontrollida. Ma lihtsalt ei ole päris saada, kuidas teisendada see. Sa lähed olema OK. Jah, sa lähed kaotada paar punkti, aga sa ikka lähed, et saada hea punktide arvust midagi nagu, et kui sa oled puuduvad need kaks rida. Ma oleks nagu OK, see inimene teab, mida nad teevad. Matemaatika on raske. Nii et ma ütleksin, et sa oled hea. 

OK, nii et te poisid valmis proovige strlen koos osuti nüüd et kutid on osuti meistrid? Nii et ma lasen teil poisid tööle selle jaoks natuke. Kui keegi vajab täiendõpet. Nii et sa tahad kasutada pointer aritmeetika ja siis kui s on null, Sinu rakendamine peaks tagastama 0. Asjad nagu see, mis sind tõesti hea meel, et helistage strlen lõpus päeval. Arvan, et see võiks olla natuke lihtsam kui viimane, mis on hea. Ma annan sulle poisid veel minut, ja siis me töö läbi. Ja siis me saame minna lülitid. 

OK, valmis poisid? Võib-olla natuke. Nii et ma olen andnud teile oma kaks võimalust, kas pole? Kumbki kontrollida null ja tagastab 0 kui see on või tegelikult arvutada pikkusega. Nii et kes tahab kirjutada kontrollida null? Mine seda. 

Sihtrühm: Kui sulgudes s võrdub võrdub null return 0. ALLISON BUCHHOLTZ-AU: Armas. Ma armastan kui poole oma probleemi on just checking for null. Ma tean, et teiega viimase nädalal olin nagu check for null sõna otseses mõttes iga kord. OK, so-- 

Sihtrühm: Kui return 0 on ainult üks rida, me ikka vaja lokkis sulg? 

ALLISON BUCHHOLTZ-AU: Sul ei ole tehniliselt vajame neid nii kaua oled järjepidev. See on hea tava lihtsalt saada harjumuseks kasutamise lokkis traksid, kuid tehniliselt ei ole. Sa ei pea neid ühele reale. Me lihtsalt kipuvad soovitada seda inimesed hakanud programmi. 

Nii et nüüd, milline võiks me tahame teha siin? Nüüd me teame, et meie string on kehtiv. Me tahame hoida arvutama pikkus. Mis on ilmselt esimene asi, mida me tahame teha? 

Sihtrühm: Loo int see on pikk. ALLISON BUCHHOLTZ-AU: Täpselt. Sihtrühm: Ja me tahame, et seada see? ALLISON BUCHHOLTZ-AU: 0. Perfect. Hea küll. Mida sa teha tahad? See on tõesti suur see. Mine seda. 

Sihtrühm: Nii et sa ilmselt ei silmus. Ja siis pärast, kui helistate s oled saada aadressile Esimene asi, siis oleks alustada i võrdub 0. Ja siis niikaua x pluss ma ei ole tagasi kärpida 0. ALLISON BUCHHOLTZ-AU: null terminaator. Sihtrühm: null terminaator. Siis lisada üks pikk. 

ALLISON BUCHHOLTZ-AU: Jah. OK, nii saab keerata, et arvesse väga konkreetse koodi. Aga see on suurepärane idee. See on täpselt see, mida me teeme. Me ei kavatse olla iterating läbi koos osuti. Niisiis, mida me tahame teha, on selle asemel int siin, sest me oleme ei viita see. Me viidates algust string, et alustada on mõned aadress õige? 

Nii et me tahame pointer. Nii et me ei kavatse olla mõned char täht, sest see vastab meie s, eks? Nii et see on mingil hetkel me algväärtustamisel algust string, OK? Nii et olgem lihtsalt nimetame seda i. Kui see on stringi algus, mis läheb tuleb määrata? Ei 0. Me tahame, et see oleks alustada meie string. Mida kujutab algust meie string, mis meile on antud? 

Sihtrühm: Just s. 

ALLISON BUCHHOLTZ-AU: s. Nii et see loob uusi osuti et esindab algust meie string, OK? Teine võimalus mõelda on nagu siin on meie massiivi. See on meie string, s. Ütleme, et see on Esimene koht, ja see on 0x4. 04. See on meie s, mis leiab, et aadress. Ja me lihtsalt loodud veel üks nn i, mis lihtsalt viitab sama asi. Nii nad nii lihtsalt osutades algust meie string. See on lihtsalt graafiline kujutis. 

Nüüd, mida me tahame teha, on me tahame kinnitada, Meie tingimus iterating meie string. Nüüd shopping. On kauplus, poisid. Kas me tahame hoida ajakohastamine kuni jõuame null terminaator, eks? Niisiis, milline võiks see välja näeb? Kas me tahame i või kas me tahame star i on küsimus? Kas null terminaator aadress või midagi asub aadressil? Asub aadress, eks? 

Seega peame käivitatav iganes siin, sest see on vaid mõned aadress. Tegelikult saada alustamist peame käivitatav see nii et me tegelikult saada Mis on see esimene koht. Nii et kui me teeme täht i, mis me ei taha, et see võrdub? Sihtrühm: Tagasi kaldkriipsuga? 

ALLISON BUCHHOLTZ-AU: Ei. Kas on mõtet kõigile? Me peame minema meie string ja veenduge, et see ei ole lõpp. Ja siis me saame lihtsalt uuendada niimoodi. Tavaline ajakohastamist. Nii kaua, kui need on met, mida me peame tegema? 

Sihtrühm: Pikkus pluss pluss. 

ALLISON BUCHHOLTZ-AU: Mm-hm. Ja siis pärast silmus lõpeb, mida me tahame naasta? Sihtrühm: pikkus? ALLISON BUCHHOLTZ-AU: Pikkus. Seal sa lähed. Ilmselt liha see üks on arusaam selle jaoks silmus. Kas igaüks saada, kuidas see töötas? Ma olen õnnelik, et minna üle uuesti. 

Sihtrühm: teine osa, nii täht i seal, see on aadress first-- ALLISON BUCHHOLTZ-AU: See ei ole aadressi. See, mis on kell. Sihtrühm: See on tegelikult seal. ALLISON BUCHHOLTZ-AU: Ongi mis on tegelikult olemas. Nii et see on saying-- lasta mulle seda parem. Nii et see on 0x04 ja ma lihtsalt öelda, et ma lähen tegema seda oma nime. OK. Jah, ma tean, mul on viktoriin läbivaatamise täna. Palju viktoriin läbi. Ütleme, et see string on minu nimi, Allison. Väike räpane, aga see on olemas. Ja s esindab asukoha kus string algab, nii et ma lähen tegema seda real-- see on aadress, kui string hakkab, eks? 

Niisiis, mida me teeme siin on me tahame kasutada viiteid itereerima kaudu. Nii loome mõned osuti, i, et ka võrdub stringi algus. Ja igas punktis, tahame jätkata läbimas massiivi siin kuni me tabanud null terminaator. Nii et me alati tahtnud vaadata, mida on Iga nimetatud aadressid. 

Nii et meil on käivitatav i, nii et Esimest korda me seda teeme me öelda, OK, mis on aadressil 0x04? See on. OK, me oleme head. Juurdekasv pikkus. Liigu edasi järgmise üks. Nii i-- mäletan vihjeid tõus suurus iganes nad osutavad. Nii antud juhul, kuna see on char, siis saad uuendada üks. Nüüd me ei kavatse vaadata 5 mis tähendab, et see läheb siia. Nii ta ütleb OK, mine 0x05. Mis seal on? See on l. Ja hoian seda tehes kuni see tabab see üks. Ja ta ütleb OK, mis on sisse olenemata aadress see on? Null terminaator OK. Välja. Ja just tagasi pikkus. Sest sa vajad, mis on ka tegelikult et aadress, mitte aadress ise. 

On väga vähe kohti, kus sa tegelikult vajad aadress. Suurem osa ajast, kui te kasutate ja see on kui oled esimene määrates viit või kui sa kulgeb see teine ​​funktsioon. OK, kõik hea on? Kind of? OK. 

Seega tundub, me oleme sain umbes 12 minutit aega, nii me minna võibolla meie viimane probleem, ja siis seal on kõik kontseptsioone, mis on tulla Vahepeal saame kiiresti minna üle sellest. 

Nii lülitus hammasrattad on viimase probleem, lülitage avaldustega. Nii et teie töö on kirjutada see nii, et see käitub samal kuid ei kasuta lülitid. Jahune kätes. Nii et küsimusi selle ära nahkhiir? Puudub? OK. Kas kõik said aru, et kui juhul ei ole midagi pärast seda, see tähendab, et ta peaks järgmist etappi? Niisiis juhul 1 ja 2 antud juhul teha täpselt sama asja. Mõnikord punkt segadust. 

Hea küll. Igaüks on mingeid ideid? Jah? 

Sihtrühm: Nii saate lihtsalt teha, kui avaldustega. 

ALLISON BUCHHOLTZ-AU: Mm-hm. Mis on meie esimene? 

Sihtrühm: Kui n on võrdne 1, ja 2 read või n võrdsete võrdub 2, siis printida väike. Ja siis saate teha muud, kui? Või saab lihtsalt teha, kui? 

ALLISON BUCHHOLTZ-AU: Seda saab teha muud, kui? 

Sihtrühm: Kas oleks vahet, kui sa teeksid, kui? ALLISON BUCHHOLTZ-AU: Nii see on. Kas anyone-- nii, siis saad sama tulemuse kui kasutate ainult ifs versus Kui kasutate muud investeerimisfondid. Kas te poisid arvate põhjus miks sa tahad kasutada muud kui versus palju sid? Peab jõudsasti. Jah? 

Sihtrühm: Oleks kontrollima kõik ifs iga kord. 

ALLISON BUCHHOLTZ-AU: Nii et isegi kui see tabas see esimene, see oleks minna kontroll iga teine. Nii et sa tahad kasutada, kui teine ​​ifs juhtudel kui ainult üks neist kunagi kohaldada. Nii vastastikune välistamine on mida meil on kombeks öelda. Kui teil on hunnik IFS, see tähendab, et võibolla rohkem kui üks neist küsimusi ja võib-olla rohkem kui üks neist võib olla tõsi. Ja sa tahad neid mõlemaid täita, kui nad on tõsi. Kui soovite ainult üks neist tööle Nende teineteist välistavad juhtudel soovite kasutada muud kui, sest see kõik on pistmist tõhusust. Teie kood on lihtsalt paremini kavandatud kui ta järgib seda põhimõtet. Nii et antud juhul on meil muidu kui. Ja see oleks? 

Sihtrühm: n võrdub võrdub 3. ALLISON BUCHHOLTZ-AU: Perfect. Prindi keskmise. Ja siis meie viimane juhul, mis meil on? Else või siis, kui? Sihtrühm: Else. 

ALLISON BUCHHOLTZ-AU: Kas meil want-- Soovite else if sest meil on konkreetseid juhtumeid. See ei ole mingi saagi kõik. Kui sul oleks vaikimisi switch-- mäletan lülitid saab olla juhul, ja siis on vaikimisi. Kui teil oli default, see on omamoodi Teie teine ​​avaldus seal. Aga kui see on ainult juhul, see tähendab, et teil on vaja vaadata, kas see on kõik need. Nii selles asjas oleks 4 või 5. Me tahame välja printida. See on suur. Ja seal, kuhu lähed. Ja mis oleks teie programmi. 

Nii et sel juhul, kui me oli vaikimisi midagi, meil oleks teine mida iganes ta tahab, et teeme. Nii et see on hea vahet teada, et mõista. Kas see aitab koos lülitite jaoks? Perfect. Hea küll. 

Meil on umbes kaheksa minutit aega. Kas poisid on iga muu kõrge mõisted? Küsimused üldiselt? Jah? 

Sihtrühm: mul oli küsimus üks neist see oli umbes juhuslik number generaator viktoriin null. ALLISON BUCHHOLTZ-AU: Oh, et üks. Et üks on teine ​​kui see on rohkem matemaatika than-- jah. Lahendus selle-- isegi mina kui Ma näen seda, ma olen nagu mis see on. 

Sihtrühm: See oli number 7. 

ALLISON BUCHHOLTZ-AU: See on imelik minu arvates. Nii et põhimõtteliselt sa tahad kasutada drand48, mis annan teile mõned number 0 ja 1 vahel. Ja sa tahad seda kasutada nii et sa kuidagi saad a-- ja see on palju rohkem matemaatika probleem mulle kui ma arvan, et CS probleem. 

Nii, et sa it-- ja mõnikord on see lihtsalt niimoodi. Jällegi on need Juhul, kui see on selline samasuguste kirjutada, mida sa saab ja osaliselt õigeks. Nii et kui me tahame tagasi, me teame, et me oleme kavatsed kasutada drand48 kuidagi, eks? Miks me lihtsalt ei kübeke et maha. Me kasutame seda mingil moel. Nii, et neil on kutid kasutada on meeldib see, mida ma püüan selgitada. 

Nii et põhimõtteliselt, mis juhtub siin on, sest see on 0 ja 1 vahel, mida sa teed on sul korrutades by-- see on väga palju matemaatika küsimus. Lihtsalt täielik loobumine, see on täiesti matemaatika küsimus. Mida sa teed, on sest 0 ja 1 ning te tahan olla lähemal selles vahemikus, siis tegelikult nuputada, kuidas suur vahemik ja seejärel siis põhimõtteliselt skaala see üles, mis on see, mida see teeb. 

b miinus annab teile, et range, vahe numbrid. Võite korrutada 0 ja 1 ja seejärel lisate lihtsalt tähendab, et teie tagi see üles nii et see vahemikku ja b, mida ma tegelikult ei meeldi see probleem. Nagu ma ütlesin, see viktoriin on mõeldud hõlmama inimesed, kes on vähem mugav, kusagil vahepeal, ja mugavamaks. Nii et kui nad tegid seda nii, et see oli midagi et igaüks on vähem mugav koht oleks saada, oleks meil liiga palju inimesed punktisüsteem perfects, ja mugavam oleks igav. 

Nii et nad on alati need mingi aju teaser küsimused mis on mõeldud veidi raskem et võtta mõned loovat mõtlemist. Kui sa näed neid, ei saa liiga stumped. Ma tahaksin kindlasti öelda flip läbi oma viktoriin esimene. Probleemide lahendamiseks et sa tead, sa saad, sest puudub kasutamine jäädagi aasta probleem, kui on olemas kolm või nelja või viie lehel pärast, et saate hõlpsasti teha. 

Sihtrühm: Miks täpselt sa korrutada see valik? 

ALLISON BUCHHOLTZ-AU: Sa korrutada vahemikus, mis Tead, see on nagu kui palju pärast sa tahad? Nii et sa ei mõtle, sest see tagastab arvu 0 ja 1 vahel, sa ei mõtle seda protsendina. Nii et see on põhimõtteliselt öelda, kui meil on meie number rida siin, siin, ja b on siin. Sa oled nagu kui palju varem on? Kas kõik, mida me teeme. Nii et sa oled lihtsalt paludes osakaal selles vahemikus, mis mida see annab sulle. Ja siis põhimõtteliselt ainult IT, lisades. See on matemaatika aju teaser. 

Kui oli tekkinud viimase hetke nõu, ma ütleksin flip läbi küsimused, aru saada, mis need, mida tean, et nagu, oh ma sain selle. Peaaegu kindlasti nad ei kavatse olla küsimused, mida sa ei tea või et sa lähed, et oleks aega eest, et lüüa oma tugevaid külgi, OK? Te ei kavatse suur. Seal on palju küsimused põhjusel, nii, et teil on aega selline võimalus et näidata, mida sa oled tõesti hea. Nii et see on OK, kui sa oled ei ole hea kõike. Esita oma tugevusi. Jah? 

Sihtrühm: Nii see läheb tagasi midagi, mis on kärbitud? Jah, see on, sest drand tagasi 0 ja 1 vahel. Seda saad tagasi int, sest see saab kärpima kui lisame või korrutada seda. Külm. Kõik viimase hetke küsimusi? 

Te kavatsete teha suur. Sa lähed, et olla vapustav. Ja isegi kui ei ole, siis olema kommid siin järgmisel nädalal. Ja ma armastan sind. Ma armastan sind poisid sõltumata. Hea küll, igaüks, õnne. Ilusat aega. Sa lähed trahvi. Ja tead mis? Kahe päeva pärast, et see läheb olema üle, et ma on kaks midterms neljapäeval, nii vähemalt kutid ei tehta. Olgu, näeme poisid järgmisel nädalal.