SPEAKER: Labi, tāpēc, jums nav ticiet, bet pagājušajā nedēļā pirmdien, jo Pierce, es bija uz leju pagrabstāvā. Es nekad iet uz Pierce. Un es nekad iet atpakaļ, jo Es atstāju savu sīkumi vien par, piemēram, piecas minūtes un kāds nozaga manu datoru un mana tālrunis no manas mugursoma. Kas nozīmē, es saņēmu to atpakaļ, un tad mazāk nekā nedēļu vēlāk tas got nozagts vēlreiz. Un tad tas got ieslēgts - Find My iPhone turpina būt nelietderīgi. Tāpēc es turpinās mudināt Jūs to neizmantot. Izrādījās par vienu reizi, un tas bija MIT, , piemēram, 15 minūtes vēlāk, un persona nosauca šo tālruņa numuru, kas liecināja manā AT & T zvanu žurnālu. Tāpēc es devos tiešsaistē, ko sauc par šo tālruni numuru, un tas gāja taisni uz šo automātisko atbildētāju spāņu valodā. Un es neesmu dzirdējis par to kopš. Tāpēc man bija, lai saņemtu jaunu datoru un telefonu. Es zinu. Jā. Bet, ja jūs puiši vēlas mikroshēmu uz manu Datoru fonda pēc tam, tāpēc Esmu lūdza šeit. Just kidding. Bet tas bija tiešām skumji un traumatisku. Bet tas viss ir atpakaļ tagad, un tas bija iemesls, kāpēc p-komplekts 8 bija tik ilgi, jo Man nav dators. Un kāds nozaga to. Un es pa e-pastu, jautā, ja tie būtu kvalitātes jūsu p-noteikti 8. Bet viņi teica nē. Un man bija, piemēram, es varu būt mans dators atpakaļ? Un viņi, piemēram, nē. Just kidding. OK. Šī ir mūsu pēdējā sadaļā, un man ir pāris - mums ir tikai trīs lietas, par darba kārtībā. Mēs gatavojamies runāt mazliet par Q guide. Tad mēs esam gatavojas tērēt 15 minūtes vēsā demo. Tad mēs ejam visi saka ardievas viens pret otru. Jums nav tiešām ir nepieciešams jūsu datoriem vai pildspalvu vai papīra veikt piezīmes, vai sekot līdzi. Tāpēc es pieņemu, ja jums ir jūsu datoru augšu, tad jūs esat par Facebook. Vienkārši sakot. Ja vien jūs esat aizpildot Q rokasgrāmata, kas ir pirmais. Q rokasgrāmata ir atvērta. Jūs esat bijis e-pastu par to. Pēc tam, kad visi Q sīkumi tiek iesniegti gada beigām, man visu Q komentāri rādītājus no visiem kas izvēlas sniegt man atsauksmes. Un tad, kad jūs iet Q - Es nezinu, ja jūs varat darīt, Jeff, jo tu esi un paplašināšana studentu. Bet, ja jums iet ar Q, ja jums nav darījuši agrāk, jūs izvēlaties savu skolotājs, kas ir David Malan. Jums ir jādara viņam. Un tad jūs varat izvēlēties TFS. Un jūs varat izvēlēties tik daudz TFS, kā jūs vēlaties. Bet ir 60 no mums. Jums nav izvēlēties visiem. Jūs varat vienkārši paņemt mani, vai vienkārši paņemt pāris citiem cilvēkiem, ja jūs vēlaties, lai dot viņiem atgriezenisko saiti, kā arī. Un tad jūs saņemsiet punktus par visiem šiem dažādas asis, un tad jūs varat atstāt tās atsauksmes. Un tad, tāpat kā mēnesi vēlāk, Es nopirkšu visu šo atgriezenisko saiti. Un, tāpat kā atgriezeniskā saite jūs esat bijis kas man visā semestrī, es lasīt visu, kas. Un tas ir patiešām noderīga, un tas palīdz man aug kā skolotājai un kā individuāli. Tātad, lūdzu, aizņemt kādu laiku, lai to izdarītu. Mēs tikai gribam būt šeit lai, piemēram, 30 minūtes. Tātad, ja jūs vēlaties, beigās to, lai ņem piecas minūtes, un tikai aizpildīt Q, jo tajā nav ņemta vairāk laika nekā. Tas būtu brīnišķīgi, un jūs arī saņemsiet pakāpes atpakaļ ātrāk, ja Jūs aizpildīt Q. Tātad, lielākā daļa no jums ir darījuši, ka pirms - vai nē, apmēram puse no jums ir darījuši agrāk. Bet, ja jūs esat pirmkursnieks, tas, kas tas ir. Tas būs vienāds visām klasēm. Darīt. Tas aizņem piecas minūtes. Bet, ja jūs to nedaudz nopietni, tas nav ļaunākais pasaulē, jo es, protams, ņemt to nopietni. Tātad, ja jūs atstāt mani smiley sejas, Es saprotu, ka. Bet es arī priecātos, ja jūs atstāja mani vairāk nekā smiley sejas. Bet tas ir atkarīgs no jums. Es nevaru pateikt, - vai patīk lielas smaidiņu saskaras ar kapitālu D. ka gribētu vēl labāk. OK, tas ir viss, kas man ir par Q. Ja jūs ir kādi jautājumi, jūs varat lūgt me, bet diezgan pašsaprotami. Tikai, lūdzu, aizpildiet to. Es patiešām novērtējam to, un tas nozīmē daudz man. Labi, tas ir tas, ko mēs gatavojamies tērēt 15 minūtes iet cauri. Es esmu gatavojas parādīs dažas kodu. Es domāju, ka tas ir patiešām foršs, un tas got me more satraukti datorzinātnēs. Tāpēc es ceru, ka tas būs jādara Tas pats par jums visiem. Mēs gatavojamies atvērt - un tas viss kods Es sūtīšu pie jums vēlāk. Bet mēs esam tikai gatavojas atvērt - Es esmu savā terminālī - Mēs ejam, lai atvērtu šo programmu sauc [? MySum. ?] Vai visi lasīt, ka, vai Es būtu jānodrošina lielāka? Var kāds man pateikt, ko šis kods darīt, kad es palaist to, vai tas, ko šis Programma darīs, kad es palaist to? [? Avi,?] Ko jūs domājat tā gatavojas darīt? Apdare košļājamā. Jums nevajadzētu runāt ar muti vaļā. Mērķauditorija: Paiet ķekars argumenti, atrast summa no tiem atgriezties summa, un pēc tam to izdrukāt? Vai tā veic divus argumentus, un tad tas [nedzirdama]. Un tad izdrukā neatkarīgi rezultāti ir. SPEAKER: Close, ļoti tuvu. Ikviens vēlas, lai pievienotu [? ko Avi?] teica? Vai jums ir nepieciešams, lai dotu šo programmu jebkuri komandrindas argumentus? Mērķauditorija: Nē. SPEAKER: Nē. Kas notiek, ja jums nav arī tā jebkuri komandrindas argumentus? Es vienkārši uzrakstīt dot slash MySum. Mērķauditorija: 1 plus 2 ir vienāds ar 3. SPEAKER: 1 plus 2 ir vienāds ar 3. Un tas būs drukāt, ka out. Tas ir tieši labi. Jūs redzēsiet, ka drukas f line apakšā. Tas būs izdrukāt, B un Pēc tam no a un b summa. Un es domāju, jūs pieņemt, ka darbojas summa pareizi. Labs pieņēmums. OK, un kas notiek, ja es arī tā, ko arguments? [? Manu? ?] Mērķauditorija: Tas būs pievienot neatkarīgi Pirmais arguments ir b. Vai 2, sorry. SPEAKER: Tiesības, 2. Vai kāds zina, ko strtol dara? Tas ir būtībā atoi. Atoi ir faktiski iedomātā versija - vai vienkāršāku versiju strtol. Bet tas faktiski izmanto strtol. Un es atklāju, ka noteikti, jo es gribēju kaut kas līdzīgs atoi, un tad, kad es bija atoi, es izlasīju uz leju šeit. Un es atklāju "šo uzvedību ir tāds pats kā "strtol. Tātad, tas ir būtībā atoi par visiem nolūkiem un mērķiem. Un jūs redzat, es pat izmantot null un 10. Tas faktiski ļauj jums veikt virkni, un pārvērst to numuru, un izvēlieties ko bāze jūs vēlaties to darīt collas Tāpēc tas ir pamats 10 tepat. Es varētu darīt bāze divi par decimal, bāze 16 heksadecimālo. Tas ir diezgan foršs. Bet garš stāsts īss, tas aizņem divas numuri un pievieno tos kopā. Tā ļauj palaist to. Un jūs arī paziņojums, ka Ir dažas lietas, - tāpēc man ir makefile tieši šeit, un Atverot ka uz augšu, dažas lietas jūs pamanīsiet, ir dažādi. Jo īpaši, šis arguments tieši šeit, jūs, iespējams, neesmu redzējis, ka pirms tam. Parasti mēs apkopotu lietas ar domuzīmi nulles, nulles. Domuzīme nulle, nulle, nozīmē nedariet jebkurš optimizāciju, kompilatoru. Vai nav mēģināt un darīt kaut ko fancy, vai darīt kaut ko palaist ātrāk, vai arī saņemt atbrīvoties no mainīgajiem, kas ir nepieciešami. Nav optimizēt šo kodu vispār, Es esmu lūdzot trešajā līmenī optimizāciju. Tāpēc es esmu lūdzot kompilators darīt daudz optimizāciju. Jūs varat mainīt, ka makefile kad Jums ir šo kodu, ja vēlaties redzēt dažādas lietas. Ko mēs rādām sekundē. Tāpēc mēs palaist manu summu 1 plus 2 plus 3. Kāds man divus argumentus. Mērķauditorija: 4 un 5. SPEAKER: 4 un 5. Paldies. Liels, tas darbojas. Kādi ir daži citi labi argumenti mēģināt, lai pārliecinātos, ka tas darbojas? Kāds? Mērķauditorija: 0. SPEAKER: 0 un? Mērķauditorija: Negatīvs 3. SPEAKER: Tas darbojas. Bet tie bija laba izvēle. Labi, tāpēc iesim atpakaļ šeit. Tas ir mysum.c. Jūs pamanīsiet, ka ir arī kaut kas sauc sumfunction.c. Un tas saka, ak, tur ir kaut kas definēts sumfunction.c. Es neietilpst šo failu šeit jo man nav nepieciešams. Bet es saistīt to, kad es apkopot, kas esat ievērojuši. Pieņemsim ritiniet uz augšu. Mēs redzējām, kad mēs apkopoti mysum, tiesības tur mēs saistīta ar bināro no sumfunction.o. Un man nav nepieciešams header failu jo, protams, tur ir funkcija deklarācija. Tik asas ietver normāli tikai liek ar funkciju deklarācijā. Šeit es esmu vienkārši ielieciet to taisni kodā. Un tāpēc man ir nepieciešams darīt, ir saite binārā, ko es daru. Jebkurš guesses par to, kas ir in sumfunction.c? Kas kods, es esmu uzrakstījis in sumfunction.c? Mērķauditorija: [nedzirdama]. SPEAKER: Jebkurš guesses? Yeah? Mērķauditorija: Es domāju, definē daži [dzirdams]. SPEAKER: Jā. Tāpēc es rakstīt int summu int. Es rakstīt šo līniju, un tad man ir atvērts cirtaini lencēm, slēgta cirtaini lencēm. Ko jūs domājat, ka es rakstīt iekšā tiem cirtaini bikšturi, iekšpusē šo funkciju? Yeah? Mērķauditorija: Return vienāds. Procesors: Tas ir patiešām labs minējums. Kurš domā [? Manu?] Ir taisnība? Tajā teikts atgriezties plus b. Labi, ne visiem. [? Akshar,?] jums, too? Tu esi pārliecināts? OK. Kas? Mērķauditorija: Tu uzrakstīti tā nepareizi. SPEAKER: Nē, man nav. Jā, tikai kidding. Tev taisnība. Tas ir tieši tas, ko tā saka. Tas ir atpakaļ plus b. Tas padara daudz nozīmē. Labi, iesim atpakaļ šeit. Mēs redzam, cik pļaujmašīna - tas ir atgriešanās veidu. Atcerieties, ka mēs esam redzējuši, ka dienā vienu, atgriešanās no funkcijas veidu, bet iet pirms nosaukuma int funkcija. Lūk, es esmu uzrakstījis int. Ko jūs domājat, kas notiks, ja šajā funkcijas, man nav rakstīt int, bet Es rakstīt neparakstīts? Atšķirība, protams, ir tas, ka neparakstīts ir tikai pozitīvas veseli skaitļi, un int var būt pozitīva vai negatīva. Tāpēc es esmu mainījies atgriešanos Šīs funkcijas veidu. Šis kods nesakrīt šī atgriešanās rakstiet šeit. Ko jūs domājat, kas notiks kad es apkopotu? Jums vajadzētu kliegt uz mani. Nē Kliegt. Kas par to, kad es palaist programmu? Darīsim līdz 0 Negatīvas 3, vai negatīvs 1. Tas joprojām darbojas, kaut gan es saku tas ir atgriešanās neparakstītu vesels skaitlis. Nepārprotami tas neatgriezīsies absolūtā veselā. Tas atgriežas parakstīts skaitlim. Tā ir atgriešanās negatīvs 1. Labi, tas ir dīvaini. Kas par to, ja es iet šeit un darīt? Tāpēc es esmu mainījies viss no int uz neparakstītu. To var veikt tikai neparakstītu veseli skaitļi. Bet mēs joprojām uzskatām, ka rādīsim? Mērķauditorija: Jā. SPEAKER: Tas būs. Tas ir traki. Un mēs caurlaide skaidri piešķir skaitlis, mēs varam iet divus parakstīja skaitlis, tas joprojām darbojas. OK, jebkuras idejas, kāpēc tas joprojām darbi, vai to, kas notiek? Jā, Jeff. Mērķauditorija: Tas ir kaut ko darīt ar savu optimizācija, kas jums iezīmēts. SPEAKER: Nē. Mēs varētu mainīt optimizāciju, tas joprojām strādā. Es varu darīt, ka jums, bet - Mērķauditorija: Es ņemšu savu vārdu par to. SPEAKER: Jā. Atverot makefile tieši šeit, Es mainīja optimizāciju. Tātad, jūs varat darīt, domuzīme nulle, nulle. Tas joprojām strādā. Citas domas? Jūs puiši visi jāstrādā, lai Kādēļ to sagaida to darbu? Nē? Klusums. OK. Man ir jāgaida septiņas sekundes, tāpēc es lūdza jautājumu. Tik cool lieta par C, un jūs esat iespējams, radās pirms - jums varētu būt, tas varētu , pirmo reizi. Bet kā jūs visi zināt, kad es rakstīt kaut C, tas nav ietaupīt, piemēram, tas uz datora. Tas ir saglabāts kā tiem, un nulles. Tā iet no C koda montāžas kodu. Vai kāds redzējis montāžas kodu pirms, mašīnu montāžas kods? Mēs apskatīt sekundē. Tā iet no C koda montāžas kodu. Un jūs guys zināt posmi apkopošanas. Jums nācās atcerēties, ka viktorīnu vienu, un tad uzrakstiet to ārā uz viktorīnas nulles. Lielākā daļa cilvēku got it wrong. Es domāju, ka jūs guys pavirši to. Bet, jūs puiši ir labākais sadaļa uz viktorīnas, ko veidā. Kas ir laba. Tas nesāpēs jums. Vai nav bažas. Bet tas ir patiešām foršs. Labs darbs. Tā tas notiek, lai montāžas valodā, un tad iet uz tiem, un nulles. Un tiem, un nulles tiek saglabāti datoru, un tas, ko saglabāts a.out, un šajā gadījumā izpildāmo failu. Un dators darbojas tiem, un nulles. Tiesības? Mēs esam iemācījušies šo pirms. Tik cool lieta ir, tas neparakstīts doma, ideja par veidu ints neparakstītu, un tā tālāk, un tā tālāk, kas ir šeit C valodā. Tie pastāv. Bet veidi nepastāv tiem, un nulles. Veidi nav pat īsti pastāvēt montāžas valodas līmenī. Tātad tas ir kaut kas, kas pastāv C pasaules, bet tas nav datoru pasaules vai procesors pasaulē. Tas ir daži abstrakcija, ka C valoda ir iekļauts, lai mūsu dzīvi vieglāku. Tātad, beigās, dienā, varu rakstītu daudz dažādas lietas šeit, un tas nav kaut ko mainīt. Tāpēc, ka pastāv tikai C pasaulē. Tas neeksistē tiem, un nulles pasaulē. Un mūsu programmas izpildes, kas tiem, un nulles pasaulē. Tātad jūsu prāta acīmredzami nav izpūstas. Bet es domāju, ka ir forši. Jā, Jeff. Mērķauditorija: Tātad, ja tā vietā, darot int, jūs char. Un jums bija - SPEAKER: Darīsim to sec. Mērķauditorija: Jo tad jums neparakstīts iet no negatīvā 128 līdz 127 vai 0 līdz 255. SPEAKER: Tā simbols ir problemātiska. Vai kāds zina, kāpēc char būtu problemātiska, un tas būtu reāli mainīt lietas tiem un nullēm pasaulē? Mērķauditorija: Sakarā ar izmēru char. SPEAKER: Izmērs char ir 1. Tāpēc neparakstīts ir 4 baiti. Tāpēc char varētu skrūvējamu lietas uz augšu. Bet to, kas ir 4 baiti, ka pienācis saistīts ar char? Vai kas papildina vēl viena - Jūs varat ievietot vēl vienu rakstzīmi pēc char. Mērķauditorija: Char zvaigzne. SPEAKER: Char zvaigzne ir 4 baiti. Tātad, pieņemsim kaut ko darīt tas ir char zvaigzne. Tāpēc tas, iespējams, strādā, bet mēs esam gatavojas darīt kaut ko vēl trakāks nekā šis. Manuprāt, trakāks. Esmu tagad uzrakstījis funkcija, kas atgriež rādītājs, un tas aizņem rādītāju un neparakstīts vērtība - mēs mainīt šo atpakaļ int tāpēc mēs neesam veic pārāk daudz izmaiņu uzreiz. Un tas ir masīvs, ko sauc par, indeksi uz masīva un atgriež adresi. Mēs esam redzējuši šos operatorus pirms tam. Tas, ko jūs domājat, ka tas būs to darīt, savukārt, kad es palaist to? Ko jūs domājat, ka tas ir gatavojas darīt? Jebkurš guesses? Mērķauditorija: Segfault. SPEAKER: Kas? Segfault? Tas ir labs minējums. Toms saka to pašu. Jebkuri citi guesses? Kas domā, ka tas būs darīt to pašu? Kas domā, ka tas būs segfault? Tas pats. Piedodiet. Bet, protams, mēs ieliekam 1 un 2. Un tie abi ir spēkā, vai ne? Paskatīsimies, mēs varam doties uz Otrajā vietā no masīva. Bet kas notiks, ja mēs, kas b negatīvs skaitlis? Tas ir iespējams, labāk minējums par kaut segfaulting. Tas joprojām darbojas. Labi, tagad tas ir traks. Tas ir vienlīdz derīgas funkciju SUM. Tas dara to pašu precīzu lieta kā atgriešanās a un b. Var kāds paskaidrot, kāpēc tas ir labs Rezumējot funkciju, vai kāpēc tas darbojas? Kas te notiek? Kāpēc tas jādara tieši tas pats lietas kā mūsu veco summa funkciju? [? Akshar,?] kas notiek? Mērķauditorija: Jo, kad esat kas ir uzruna vieta atmiņa - un, kad jūs & zīmi, tā iet uz šīs atmiņas adresi. Un, kad jūs iet uz b, jūs esat veida pārvietojas soļus no šīs atmiņas adresi, jūs atpakaļ to. Tātad jūs faktiski, patiesībā, Pievienojot un b [nedzirdama]. Kur ir standarta operācijas uz šo deklarāciju? Tāpat kā, kur iekavas kritums? Ir atgriešanās adresi pirms vai pēc [dzirdams]? SPEAKER: Tas būs indeksēt B - vai indekss par -, un pēc tam atpakaļ adresi. Labi, tā bija visi saprastu ko [? Akshar?] teica un paskaidroja, kāpēc tas darbojas? Es gan nezināju, pirmo reizi, kad kāds paskaidroja man. Vai kāds vēlētos attēlu izskaidrot šo? Mēs ejam, lai pievērstu attēlu, ar ne marķieri, tas ir lieliski. Konstatēja dažas. Tāpēc mums ir masīvs, kas ir sērija kastes. Pirmais ir indekss 0, indekss 1, 2, 3, 4, dot, dot, dot. Tipisks masīvs. Un papildus tam indeksus, viņi visi ir atmiņas adreses. Tāpēc dosim šo atmiņas adresi 13, 14, 15, 16, 17, un tā tālāk. Visi ir šeit līdz šim. Tā ir adrese. Masīva, rādītājs nosaukums tiek saglabāts tur. Tas ir rādītājs, tā ir vieta atmiņā, sākuma masīva. Tātad, ja tas ir masīvs, varētu būt vērtība 13. Un, protams, mēs varam dot jebkura vērtība mēs gribam. Char zvaigzne, mēs varam sniegt jebkādu atmiņas adresi mēs gribam. Mēs varam dot to 0, mēs varam dot tai negatīvs 1 - negatīvs 1 neeksistē, tā, ka ir iespējams problemātiska, bet redzējāt, ka tas joprojām strādāja. Tātad, mēs varam sniegt jebkuru numuru, mēs gribam, jebkuru atmiņas adresi mēs gribam. Pēc tam, int b saka OK, iet šo numuru pakāpienu uz masīvu. Tātad, ja b ir vienāds ar 2, un ir vienāda ar 13, mēs esam pie atmiņas adresē 13. Un mēs ejam divus soļus, un tāpēc mēs esam šeit. Un Ampersand nozīmē atgriešanos adrese, šajā vietā. Un adrese ir, protams, 15. Lai mēs iegūtu 13 plus 2, vai plus b, kas ir 15. Jautājums ir, lai gan - Piedod. Vai tas noskaidrot lietas , kāpēc tas darbojas? Mērķauditorija: Kāpēc tas darbojas iet - lai jūs varētu būt masīva un iet uz negatīvo indeksu? SPEAKER: Tieši tā. Tāpēc mēs darījām negatīvi skaitļi, tā tas ir - tas ir jēga, lai gan, Pirmais [? Avi,?] Jums? Mērķauditorija: Jā es esmu tikai [Dzirdams], bet - SPEAKER: Jā, tas varētu atgriezties 15. Ja ir 13, un b ir 2, tas varētu atgriezties 15. Mērķauditorija: Tātad nulles indeksēšana nav kļuvis jautājums, vai ne? Tāpēc, ka jūs pārvietojas no 0. SPEAKER: Tieši tā. Tātad jūs pārvietojas - tāpēc, ja b ir 0, jūs nevarētu pārvietoties jebkur. Un jūs tikko atgriezies adresi - ja b ir 0, kas ir būtiski atgriežoties, ka adresi. Iet uz char zvaigzne un atpakaļ adrese ir tikai atgriežas, būtībā. Labi, jautājums ir, kāpēc negatīvie skaitļi strādā? Un tas ir patiešām atdzist lieta par šo, jo tas ir segfault. Un tas segfault, ja mēs tomēr kaut kas līdzīgs šim. Teiksim, int. Lai šis kods izskatās vienādi un vajadzētu izturēties vienādi. Būtībā, x ir atkritumu mainīgs, , un tāpēc tas būtu jārīkojas identiski. Veidosim šo - Ups - ar zvaigzni. Labi, mēs esam jau kļūst kļūdas šeit jo tas jau būs dusmīgs uz mani, jo tas jau ir zina, kas nāk. It īpaši, otrā. Adrese kaudzē atmiņas saistītas ar vietējo mainīgo. Būtībā, es neesmu gatavojas sastādīt tas, un tad es esmu gatavojas atsaukt darīt tas, ko mēs tikko izdarījām. Bet tāpēc, ka mēs esam patiesībā nekad piekļuvi, kas ir pie atmiņas vieta, tas nav gatavojas segfault. Mēs nekad faktiski meklē to, kas ir otrajā ailē vai to, kādā kastē Šī masīva. Mēs esam tikai sakot, šeit ir adrese par ko mēs meklējam, un atpakaļ šo adresi. Mēs nekad faktiski nonākšana masīvs apskatīt šajā vietā. Un tāpēc, ka mēs nekad pieskarties atmiņu, mums nav nokļūt nepatikšanās. Mēs nesaņem segfault. Ja mēs centāmies, atkal, pieskarieties, ka atmiņa, touch, kas bija pie A vai B - vai arī kronšteins b, un pieņemot bija 0 un - ja bija 0, pat, ka varētu būt diezgan slikti, jo mēs nevaram iet uz leju visu ceļu tur. Ja A un B abi bija 0, un mēs centāmies touch, kas tur bija, tad mēs būtu nokļūt nepatikšanās. Bet, ja mēs neaiztieciet to, kas ir tur, mēs vienkārši atgriezt adresi, tas ir faktiski nav gatavojas segfault jo tas ļauj veikt šīs darbības. Tas tikai izpaužas mad pie jums, un kļūst super dusmīgs, kad jūs mēģināt pieskarties faktisko atmiņas un atpakaļ, kas ir šajā atmiņas vietā. Vai tas ir jēga? Tas ir vienkārši traks daļa no C. Tātad, mums ir vēl viens no tiem. Kas domā, ka tas ir forši? Vairāk cilvēku. Tas ir labi. OK, tas ir mūsu pēdējais. Un es gribētu, lai jūs man pateikt, vai vai jūs domājat, ka tas būs darīt to pašu precīzu lieta. Es esmu šīs norakstīta kaut kur. Es neesmu atcerēties tos. Paskatīsimies, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Tāpēc tas ir masīvs, tagad, nav funkcija. Un tas ir masīvs, jo mums ir kvadrātveida kronšteini, ne cirtaini bikšturi. Un tas ir masīvs kāda veida? Ikviens, hmm? Mērķauditorija: To heksadecimālo numuri? SPEAKER: Bet kas ir C tipa? Viņiem visiem ir heksadecimālo skaitļu. Kas ir C tipa? Tā stāsta jums. Mērķauditorija: Tas ir neparakstītu simboli. SPEAKER: Tiesības, neparakstītu simboli. Un divas heksadecimālo numuru ir viens baits. Tāpēc tie ir 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. Tas ir masīvs 9 baitu. Labi, jūs droši vien jau zināt, atbilde uz šo jautājumu. Bet, ko jūs domājat, ka būs notikt, kad es palaist šo? Es saku, atkal, mysum.c, Es esmu gaidījis funkciju tas aizņem divas veselus skaitļus. Un es esmu, nevis sakot, ka summa ir masīvs rakstzīmes. Kas notiks, ja Es palaist. / Mysum un dara? Nu, pirmkārt, lielākā daļa no jums, iespējams, būs vienojas, ka make - ak nē, tikai kidding. What'd es daru nepareizi? Uh oh. Tas būtu cirtaini lencēm. Tas ir, kā jūs sāktu masīvs. Mans slikti. Tāpēc mēs jau redzējām pirms šā veida ir C līmeņa ieguvei, kas nav dators līmenī abstrakcijas. Tāpēc lielākā daļa no jums, iespējams, sagaidāms, ka tas veikt, vai arī pieņemot, ka tas būtu. Bet ko tad, kad es palaist. / Mysum? Kas notiks? Jebkurš guesses? Mērķauditorija: Tas būs izdrukāt vārdu. SPEAKER: Tas būs izdrukāt vārdu. Kas tas par vārdu? Mērķauditorija: [nedzirdama]. SPEAKER: Jebkuras citas guesses? OK, izdrukāt frāzi. Jums var būt jebkurš frāzi. Tas būs jūsu pusē. Ikviens, kurš ir atšķirīgs minējums? Anna, kāda ir jūsu minējums? Mērķauditorija: Tas būs izdrukāt - divi burti, vai [dzirdams] viens burts. SPEAKER: viens burts. Mērķauditorija: Vai es varu rēķināties, cik daudzi [dzirdams]? SPEAKER: Nine. Nu, es esmu gatavojas, lai palaistu to. Tas pats precīzu lieta. Tā piebilst divus skaitļus kopā. Nu, pieņemsim iet divus argumentus. Tas nav nepieciešams argumentus. Tāpēc es nezinu, kur tas varētu iespējams saņemt šos argumentus. Bet pieņemsim iet pie 100 un 0. Un tas piebilst 100 un 0. Tas ir neprāts. Es domāju, ka jā. Negatīvs 4, kas darbojas too. Jūs varat darīt visu, ko jūs vēlaties. Tas ir vienlīdz derīgi summa funkciju. Tas ir summa funkcija. Bet, nē, jūs sakāt, tas ir masīvs baitu. Tātad, kas notiek šeit? Tātad, atkal, iesim atpakaļ uz šo ideju ka mēs teicām pašā sākumā. Jums iet no C līmeņa kodu, lai montāžas valoda, lai tiem, un nulles. Tas ir heksadecimālo. Bet tas ir patiešām vienkārši no tiem, un nulles daudz. Tas ir 72 tiem, un nulles, vai ne? 72 tiem, un nulles. 9 baiti. Katrs baits ir 8 biti. Katrs bits ir viens vai nulle. Tātad 72 tiem vai nulles. Esmu tikko uzrakstījis to, kā šis - nevis rakstīt to, kā daudz tiem, un nulles. Bet tas iet no C līmenī valoda, to montāža valoda, kodu. Un tas izdrukāt ar kodu, kaut kur, šie 72 tiem, un nulles ka es esmu uzrakstījis šeit. Tātad, kaut kur, ka - iesim šeit - kaut kur mysum, programma, tur šie 72 tiem, un nulles, kas es esmu rakstīts un teica, lai rakstītu. Tagad, visiem guesses par to, ko tie 72 tiem, un nulles nozīmē? Mērķauditorija: Iespējams tas pats lietas kā atgriezties plus b. SPEAKER: Iespējams tas pats lietas kā atgriezties plus b. Pieņemsim pārbaudīt to. Pieņemsim izdomāt, kā I did this. Tātad, ja jūs iet atpakaļ šeit, es jums saku palaist šo komandu, objdump-S sumfunction.o. Iesim palaist to. objdump - obj, dump. Būtībā tā var sniegt man kāds es gribu redzēt. Tā var sniegt man montāžas valodu. Tā var sniegt man tos un nulles. Tā ir ton karogiem. Tas ir viens, mēs ejam izmantot tagad. Dot - kā redzat slaidiem - domuzīme kapitāla S saka, izkaisīt, pirmkods - Šī līnija ir no C - ar montāžu kodu, un ar tiem, un nulles. Un mēs ejam, lai palaistu tas par sumfunction.o. Jo tas būs vieglāk redzēt. Atkal - hmm? Mērķauditorija: Tu uzrakstīti tā nepareizi. SPEAKER: Bet es esmu faktiski gatavojas lai notīrītu to sekundi. Es esmu pirmo reizi gatavojas atvērt tikai sumfuntion.o. Mērķauditorija: Tu uzrakstīti tā nepareizs pirmo reizi. SPEAKER: Classic. Summa - ka ir grūti vārdu, though. Tu būsi pārsteigts. OK, tāpēc tas ir sumfunction.o. Es pat nevarēja pateikt. Tur ir daudz nullēm, nepārprotami daudz no nulles, un tur ir daži citi sīkumi, kas nav nulles. Bet lielākoties nulles. Izskatās, ka tur ir daži no tiem. Tik skaidri, tas ir grūti lasīt. Tas ir binārā valoda. Pieņemsim tagad atveriet to - ko? Ko es daru nepareizi? Vai es izskaidrot to pareizi? OK, tas ir neērts. Man vajag vienu sekundi, lai noskaidrotu , ko es daru nepareizi. Kas ir viena kļūda. Tas ir dīvaini. Ak, tas ir, kāpēc. Es esmu gatavojas doties atpakaļ uz mūsu sākotnējo viens, lai mēs varētu apskatīt objekta kods šo. Jo tur nav īsti gatavojas būt jebkas, kad mēs tikai izvirzīti tiem, un nulles iekšā Tur mēs ejam. Labi, lai ikviens varētu redzēt. Šī funkcija, kā jau teicu, izbāzt C līnijas - pirmkoda līnijām - ar dažiem montāžas instrukcijas. Te ir mūsu pirmkodu līniju. Šeit ir viens, šeit ir vēl viens. Šeit ir montāžas instrukciju. Tas ir tas, ko viņi izskatās. Montāžas instrukcijas - Jūs varat uzzināt vairāk par tiem, ja Jūs lietojat citi CS klasēm, bet viņi parasti instrukcija. Un tad avotu un galamērķi. Un tad vairāk nekā šeit ir bināro kodu , kas atbilst minētās montāžas instrukcija. Tātad, kā jūs varat redzēt, šī summa funkcija, beigās, dienā, ir trīs montāžas instrukciju. Tikai trīs. Viens mov - tas m-o-V apzīmē Move. Pievienot stendi Pievienot. Un r-e-t nozīmē Atgriezties. Tāpēc viens mov, viens add, viena atgriešanās. Un šie, nekā šeit, ir nulles un tiem, kas atbilst šim kodam. Tātad tie nulles, un tiem, ja jūs zināt, kas, jūs varat vienkārši ielieciet tiem taisni iekšā Un tad tas būs jādara pašā precīzu lieta. Jo, beigās, dienā, visi jūs izpildes ir gara sērija nulles un ones. Un tas, ko jūsu kods tiešām ir. Un iemesls - aplūkosim viena lieta. Vai es ir Makefile atvērts? Tātad, ja mēs devāmies atpakaļ svītra nulle, nulle šeit - žēl, kapitāla o, kapitāla o nulle, nav nulle, nulle. Un mēs to dara, tas būtu joprojām strādā vienādi. Bet tagad jūs ievērosiet, ka ir Daudz vairāk montāžas instrukcijas. Tas ir tāpēc, ka atkal, es jautāju kompilators nevar darīt jebkādu optimizāciju. Tāpēc es joprojām varētu veikt visus šos nulles un tiem, un mest tos, un kas varētu strādāt. Es tikko bija, ka optimizācijas dēļ tas ir mazliet vieglāk, tad, rakstīt, ka masīvs. Bet tas darbosies tikpat labi. Labi, mēs esam gatavojas darīt vienu pēdējo lietu, jo es domāju, ka ir stilīgākais daļa. Pat ja visiem ir skaidri jau izplaucis un mēms. Mūsu prāti ir izpūstas. [Dzirdams] Tātad, tie ir no cita CS klasē, kas ir super interesanti, ka esmu - CS61. Es ļoti iesakām jums ņemt to. Bet cool daļa par šo faktu, ka lietas ir tikai nulles, un tiem, ir tā, ka viss ir nulles un ones. Tātad jūs varat veikt failu, kuram pareizi nulles un tie, kuru vēlaties kaut kur tajā, un izmantot šo sadaļu nulles un tiem kā summa funkciju. Ko es ar to domāju? Es domāju, jūs varat veikt attēla failu, kas ir pareizs sērijas nulles un tiem, kas drukāt kaut ko , lai attēlu. Un viena programma varētu interpretēt ir attēlu, bet jūs to varat interpretēt, ja Jūs vēlaties, kā funkciju SUM. Tātad, ja mēs vēlējāmies, lai atvērtu, lai Piemēram, šis tēls. Iesim, Hello Kitty. Brīnišķīgi maz attēlu. Šeit ir, ka virkne no nulles un ones. Šos 72 nulles un ones pastāv šajā attēlā. Tātad, ko es varu darīt, tad ir rakstīt - Man ir atcerēties, kur viņi ir. Es uzskatu, ka sekundē. Bet mēs - ļaujiet man uzzināt, kur viņi ir. One sec. Darīsim - Mērķauditorija: [nedzirdama]. SPEAKER: Paldies. Tātad, ja mēs izpildīt šo programmu, kas vietā skan failu, tad iet šim indeksa failā. Un tad atkal, tāpat kā mysum, ņem divus skaitļus. Mēs varam pievienot numurus tieši tādas pašas kā mēs darījām agrāk, kas dodas uz parādīs, kā tas, ka beigās dienas, visas šīs lietas ir nulles un ones. Un tas ir tikai to, kā jūs izvēlaties tos interpretēt. Un, ja jūs patiešām izskatās Šajā attēlā - pieņemsim tuvinātu mazliet. Var ikviens redzēt to? Jūs pamanīsiet tieši šeit, tur ir daži dīvaini ugunskurs. Iesim - tas ir oriģinālais attēls. Jūs ievērosiet, šeit nav ugunskurs. Tas ir kods funkciju SUM, ir tā, ka maz ugunskurs labi tur. Un tiešām, atkal, ja jūs uzzinātu vairāk par to, jūs apzināties, ka tas Hello Kitty, kas ir vēl lielāks ugunskurs, ir kods, kas var pārņemt datoru, ja tas nav aizsargāts pienācīgi. Tātad jūs faktiski var palaist šo. Es neesmu gatavojas palaist to tieši tagad. Bet jūs varat palaist šo Sveiki Kitty attēls, un tas var pārņemt savā datorā. Tātad tas ir viss demo. Vai kāds ir kādi jautājumi, komentārus, bažas? Es domāju, ka šis stuff ir aizraujoši. Tas mani iedvesmoja, lai uzzinātu vairāk. Es ļoti ieteiktu, ja jūs interesē visu par CS, runāt ar mani. Pat ja es esmu sociālo zinību Koncentratoru, es esmu CS, vidējā, tāpēc Es joprojām zinu mazliet. Bet es, protams, zinu, ko klases, jums vajadzētu veikt. Es domāju, ka tas viss ir ļoti interesanti, un es aicinu jūs, protams, ir uzzināt vairāk, ja jūs interesē. Labi, man ir viena gala lieta. Piedodiet. Kādi jautājumi? Man nav pauzes gaidīt, ja kāds bija kādi jautājumi par to. Vai kāds būs CS koncentratoru? Vai domā par to? Viens, divi, trīs, četri. One - tikai viens. Annas ir vienīgā roka, kas ir izvirzīts autoritatīvi. Labi, tas ir cool. Assam, ko jūs gatavojas darīt? Mērķauditorija: [nedzirdama]. SPEAKER: Constantine? Mērķauditorija: fizika. SPEAKER: Paga, tas bija ātri. Jums ir bijusi slikta pieredze CS50? [Dzirdams], ko jūs gatavojas darīt? Mērķauditorija: Man nav ne jausmas. SPEAKER: Kurts? Mērķauditorija: Econ vai CS. SPEAKER: Econ vai CS. Tom? Mērķauditorija: Es esmu dara Stat. SPEAKER: Stat? OK. Kas tu esi? Mērķauditorija: Me? SPEAKER: Jā. Mērķauditorija: Stat. SPEAKER: Stat. Ak, tur jums iet. Toms, konsultējieties ar Alden. Emily, ko jūs? Mērķauditorija: Biomedical - SPEAKER: Vai jūs šajā sadaļā? Mērķauditorija: Nē. SPEAKER: OK, tas ir Emily. Viņa ir mans draugs. Acīmredzami nav tik labs draugs, tāpēc, ka viņa dod man grūti. Jūs varētu būt jaukāk man priekšā ikvienam, mans students - Mērķauditorija: Es daru savu Q guide. SPEAKER: Tiešām? Uh oh. Labi, tu esi pārsteidzošs. Es tevi tik ļoti mīlu. Oh boy. Anyway, es pagājušajā naktī, tāpat kā viss - Es esmu pārliecināts, ka visi, šķiet, patiešām uzsvēra tieši tagad. Es nezinu, ir pirmkursnieks - ir jūs guys sajūta uzsvēra? Es jūtos uzsvēra. Tas bija, piemēram, doties mājās Pateicības. Jūs, piemēram, es esmu gatavojas darīt visas šīs lietas. Mērķauditorija: Tas ir tik dažādi. SPEAKER: Jā, un jūs nākt atpakaļ. Jeff, jums nav sajūta, ka veidā? Mērķauditorija: Es tikai domāju, Es gribētu darīt mazliet. SPEAKER: Labi, lieliski. Tāpēc es nāku atpakaļ, un man nav izdarījis kaut ko. Un tas viss ir super stresa. Un es esmu bažas, patiesi bažas, par to, vai es esmu gatavojas pabeigt visu, man ir. Bet pagājušajā naktī, man nebija uzsvērts, Man bija tikai mazliet skumji. Tāpēc es rakstīja savā dienasgrāmatā par kas man bija skumji par. Un man bija skumji par šo sadaļu šajā klasē tuvojas beigām. Tā man bija tikai gatavojas lasīt jums puiši mazliet fragments no mana žurnāla, no pēdējā naktī. Vai es varu dabūt salvetes, daži audi no Tom? Nē, es esmu gatavojas raudāt. Man nav raudāt. Nav, ka jūs nevarat raudāt, Man vienkārši nav raudāt. Es pat nezinu, vai mans asaru dziedzeri strādāja - asaru kanāliem. Man nav raudāju ilgu laiku. Mērķauditorija: [nedzirdama]. SPEAKER: Labi, paldies. Labi, tur ir maz priekšvārds - tur ir dažas citas daļas savā dienasgrāmatā ieraksts, jo es cenšos žurnālā ik naktī pirms es saņēmu gulēt. Es ļoti ieteiktu journaling. Tas palīdz jums apstrādāt lietas, un arī būtu ļoti pateicīgs par jūsu dienā. Un tas padara to daudz vieglāk meklēt atpakaļ uz jūsu dienā, un saprast, ka tur bija daudz labu lietas, kas noticis. Pat ja jums justies patiesi uzsvēra naktī vai patiešām apbēdināts, vai tiešām skumji vai noguris. Ak, mans Dievs. Es pat nezinu, vai tas ir rakstīts, ka arī tāpēc, ka man nav korektūru to. Bet mēs to izlasītu. Es parasti nav lasīt manu žurnālu, protams. "Rīt, es ņemšu iemācīt manu galīgo CS50 sadaļā gadā. Tas ir traki, cik ātri laiks lido. Tomēr, es esmu pārsteigts par to, cik dažādi mana pieredze māca šogad bija nekā tad, kad es biju otrā kursa students. Par starteri, es noteikti zināt materiāls labāk. Bet nav pateikt savu pirmo kohortu studentu, kas. Vēl svarīgāk ir, tomēr, es sapratu ka prieks, kas nāk no stāvokļa up priekšā telpā, kas sākas no kā svešinieki, bet beidzas kā pēc Vismaz, Facebook draugi, ir ne pirmo gadu parazīts. Drīzāk, tas ir no zinot, ka nelielas veidā, jūs palīdzot talantīgs, pārdomāto, apburošs, un kaislīgi cilvēki mācās nedaudz vairāk par datorzinātnes. Jūs esat novirzot šo spuldzītes tikai bit savā ligzdā, tā, ka tā ir spējīga spīdēt spožāk nekā jūs, vai arī tie, varēja iedomāties pēc semestra sākumā. Jūs palīdzot pārvērst šos frowns otrādi leju un uzdodot jautājumus, kas sniegt atbalstu, bet joprojām ļauj studentiem piecelties par to pašu. Tas noteikti nav pārspīlēts saka, ka šī sadaļa ir mana mīļākā daļa nedēļas. Vai pat, ka es vilcināties teikt, ka tas visi pēc 05:30 katru nedēļu, zinot ka tas būs pārāk garš līdz brīdim, kad mēs atkal tiksimies. Tomēr, es esmu ārkārtīgi pateicīgs visi, kas ir devis man šo iespēja atdot citiem. Dāvidam par viņa pacietību un uzticību. Uz kino un ražošanas komandas, lai padarot mani izskatās nedaudz respektabls. Un, pats galvenais, lai maniem studentiem, bez kuriem man nav iemesla pavadīt 10 stundas norādītas labākais veids, kā pievērst norādes, vai arī ierīkot tabula delfīni, izmantojot JavaScript. Kā vienmēr, tas ir bijis svētība. " Tātad ar to, paldies puiši. Es redzu, ka jūs visi tajā CS50 izstādē, un hackathon, ja jūs tur. Un, ja jums ir jautājumi, es stick apkārt, kamēr tur ir ne vairāk. Bet es paldies puiši par brīnišķīgs gads. [Aplausi] SPEAKER: es varētu raudāt.