SPIKA: Sawa, hivyo, huwezi kuamini hivyo, lakini wiki iliyopita, Jumatatu, katika Pierce, mimi ilikuwa chini ya basement. Mimi kamwe kwenda Pierce. Na mimi nina kamwe kurejea tena, kwa sababu Mimi kushoto mambo peke yangu kwa, kama, dakika tano na mtu aliiba kompyuta zangu na simu nje ya mkoba wangu. Ambayo ina maana I got nyuma, na kisha chini ya wiki moja baadaye got kuibiwa tena. Na kisha got akageuka juu ya - Kupata iPhone yangu inaendelea kuwa msaada. Basi, mimi itaendelea kuhamasisha wewe si matumizi yake. Ni akageuka juu ya mara moja, na ilikuwa katika MIT, kama dakika 15 baadaye, na mtu kuitwa hii namba ya simu ambayo ilionyesha up katika AT & T yangu rekodi ya simu. Basi, mimi nikaenda online, iitwayo kwamba simu idadi, na ni alikwenda moja kwa moja hii kujibu mashine katika lugha ya Kihispaniola. Na mimi si habari ya tukio hilo tangu. Hivyo nilikuwa na kupata mpya kompyuta na simu. Mimi najua. Yeah. Lakini kama wewe guys wanataka kuingiza katika wangu mfuko wa kompyuta baada ya hayo, ni kwa nini Nimekuwa aliuliza hapa. Just kidding. Lakini hiyo ilikuwa kweli kusikitisha na kiwewe. Lakini zote ni nyuma sasa, na hiyo ndiyo sababu p-kuweka 8 ilichukua muda mrefu, kwa sababu Sikuwa na kompyuta. Na mtu aliiba yake. Na mimi yaliyopelekwa, kuuliza kama ingekuwa daraja p-kuweka 8 yako. Lakini walisema hakuna. Na mimi nilikuwa kama, naweza kuwa na kompyuta yangu nyuma? Na wao ni kama, no. Just kidding. OK. Hii ni sehemu ya mwisho, na mimi na michache ya - sisi tu na tatu mambo katika ajenda. Sisi ni kwenda kuzungumza kidogo kuhusu mwongozo Q. Kisha tunakwenda kutumia 15 dakika juu ya demo baridi. Kisha tunakwenda wote wanasema kwaheri kwa mtu mwingine. Wewe si kweli wanahitaji kompyuta yako au kalamu au karatasi kwa kuchukua maelezo, au kufuata pamoja. Hivyo mimi kudhani kama una kompyuta yako up, basi ni juu ya Facebook. Kusema tu. Kama wewe ni kujaza Q mwongozo, ambayo ni ya kwanza. Mwongozo Q ni wazi. Umeshapata email kuhusu hilo. Mara baada ya mambo yote Q ni in katika mwisho wa mwaka, mimi kupata yote ya Q maoni katika alama kutoka kwa kila mtu ambaye anachagua nipe maoni. Na hivyo wakati wewe kwenda katika Q - Mimi sijui kama unaweza kufanya hivyo, Jeff, kwa sababu wewe ni na ugani mwanafunzi. Lakini wakati wa kwenda katika Q, kama una si nimefanya hivyo kabla, unaweza kuchukua yako mwalimu, ambayo ni David Malan. Una kufanya naye. Na kisha unaweza kuchukua TFS. Na unaweza kuchukua kama wengi TFS kama unataka. Lakini kuna 60 ya kwetu. Huwezi kuwa na kuchukua kila mtu. Unaweza tu kuchukua yangu, au kuchukua tu wanandoa watu wengine, kama unataka, kwa kutoa maoni yao pia. Na kisha kupata alama juu ya haya yote shoka mbalimbali, na kisha unaweza kuondoka maoni yao. Na kisha, kama mwezi mmoja baadaye, Mimi itabidi kupata maoni kwamba wote. Na kama maoni tumekuwa kunipa katika muhula, mimi kusoma yote. Na ni kweli kusaidia, na inasaidia mimi kukua kama mwalimu na kama mtu binafsi. Kwa hiyo, tafadhali, kuchukua muda wa kufanya hivyo. Sisi ni kwenda tu kuwa hapa kwa, kama, dakika 30. Hivyo kama unataka, mwishoni mwa hii, kwa kuchukua dakika tano, na tu kujaza Q, kwa sababu haina kuchukua wakati wowote zaidi. Hiyo itakuwa ajabu, na wewe pia kupata darasa wako nyuma kwa haraka zaidi ikiwa kujaza Swali: Kwa hiyo wengi umefanya kwamba kabla ya - au hakuna, karibu nusu ya ninyi wamefanya hivyo kabla ya. Lakini kama wewe ni Freshman, kwamba ni nini kwamba ni. Kutakuwa na kuwa sawa kwa madaraja yote. Kufanya hivyo. Inachukua dakika tano. Lakini pia, kama wewe kufanya ni kidogo umakini, kwamba si jambo mbaya duniani, kwa sababu mimi bila ya shaka kuchukua umakini. Hivyo kama wewe kuondoka smiley uso, Nami kufahamu kwamba. Lakini napenda pia kufahamu kama kushoto mimi zaidi kuliko smiley uso. Lakini ni juu yako. Mimi siwezi kusema wewe - au kama smiley kubwa uso, na mji mkuu wa D. kwamba d kuwa bora zaidi. OK, kwamba wote mimi na kwa Swali: Kama una maswali yoyote, unaweza kuuliza yangu, lakini pretty maelezo binafsi. Tu, tafadhali, kujaza fomu hiyo. Kweli napenda kufahamu ni, na maana yake ni mengi kwangu. OK, hii ni nini tunakwenda kutumia Dakika 15 kwenda kupitia. Mimi nina kwenda kuonyesha baadhi ya kanuni. Nadhani hii ni kweli baridi, na hii got me zaidi msisimko katika sayansi ya kompyuta. Hivyo natumaini itakuwa kufanya sawa kwa ajili yenu. Sisi ni kwenda kufungua - na yote haya code Mimi nitawapelekeni kwa baadaye. Lakini sisi ni kwenda tu kufungua - Mimi nina katika terminal yangu - tunakwenda kufungua mpango huu aitwaye [? MySum. ?] Je, kila mtu kusoma kwamba, au lazima mimi kufanya hivyo kubwa? Je, mtu yeyote kuniambia nini kanuni hii itakuwa kufanya wakati mimi kukimbia, au nini hii mpango wa kufanya wakati mimi kuendesha? [? Avi,?] Unafikiri nini ni kwenda kufanya nini? Kumaliza kutafuna. Unapaswa kuzungumza na mdomo wako wazi. Watazamaji: Je, ni kuchukua kundi la hoja, kupata hesabu yao kurudi jumla, na kisha magazeti ya nje? Au inachukua katika hoja mbili, na kisha ni gani [inaudible]. Na kisha Prints nje chochote matokeo ni. SPIKA: Close, kwa kweli karibu. Mtu yeyote unataka kuongeza [? nini Avi?] alisema? Je, unahitaji kutoa mpango huu amri yoyote-line hoja? Watazamaji: Hapana SPIKA: Hapana Kile kinachotokea kama wewe si kuwapa amri yoyote-line hoja? Mimi kuandika tu dot slash MySum. Watazamaji: 1 plus 2 ni sawa na 3. SPIKA: 1 plus 2 ni sawa na 3. Na kutakuwa na magazeti kwamba nje. Hiyo ni kweli kabisa. Utaona kwamba magazeti f line chini. Kutakuwa na magazeti nje, b, na kisha Jumla ya a na b. Na mimi nadhani kudhani kwamba Jumla kazi kwa usahihi. Nzuri dhana. OK, na kile kinachotokea kama mimi kuwapa hoja nini? [? Manu? ?] Watazamaji: Ni itabidi kuongeza chochote Hoja ya kwanza ni kwa b. Au 2, sorry. SPIKA: Haki, na 2. Je, mtu yeyote kujua nini strtol gani? Ni kimsingi atoi. Atoi ni kweli dhana toleo la - au toleo rahisi ya strtol. Lakini kwa kweli anatumia strtol. Na nimeona kwamba nje kwa sababu nilitaka kitu kama atoi, na kisha wakati mimi hakuwa atoi, mimi kusoma hapa chini. Na mimi kupatikana "tabia hii ni sawa na "strtol. Hivyo kimsingi atoi kwa nia na madhumuni yote. Na unaweza kuona mimi hata kutumia null na 10. Hii kwa kweli inakuwezesha kuchukua kamba, na kurejea katika idadi, na kuchagua nini msingi unataka kufanya hivyo in Hivyo hii ni ya msingi 10 hapa hapa. Mimi wangefanya msingi mbili kwa ajili ya decimal, msingi 16 kwa hexadesimoli. Ni pretty cool. Lakini kwa muda mrefu hadithi fupi, hii inachukua mbili idadi na anaongeza pamoja. Basi hebu kukimbia. Na wewe utakuwa pia taarifa, kuna ni baadhi ya mambo - hivyo nina makefile hapa, na ikiwa wazi kuwa juu, baadhi ya mambo utasikia taarifa ni tofauti. Hasa, hoja hii haki hapa, pengine hawajaona kwamba kabla ya. Kwa ujumla, sisi kukusanya mambo na dash zero, zero. Dash zero, zero, ina maana si kufanya optimizations yoyote, compiler. Je, si kujaribu na kufanya kitu chochote dhana tu, au kufanya kitu chochote kukimbia kwa haraka zaidi, au kupata kuondoa vigezo kwamba ni muhimu. Je, si kuongeza kanuni hii wakati wote, Mimi nina kuuliza kwa mara ya tatu ngazi ya optimization. Hivyo mimi nina kuuliza compiler kufanya mengi ya optimizations. Unaweza kubadilisha kwamba katika makefile wakati una kanuni hii, kama unataka kuona mambo mbalimbali. Ambayo tutaweza kuonyesha katika pili. Hivyo sisi kukimbia Jumla yangu 1 plus 2 pamoja na 3. Mtu nipe hoja mbili. Watazamaji: 4 na 5. SPIKA: 4 na 5. Asante. Kubwa, ni kazi. Ni baadhi ya hoja nyingine nzuri nini kujaribu, ili kuhakikisha hili linafanyika? Mtu yeyote? Watazamaji: 0. SPIKA: 0 na? Watazamaji: Negative 3. SPIKA: Ni kazi. Lakini hao walikuwa uchaguzi mzuri. OK, hivyo hebu kwenda hapa. Hii ni mysum.c. Utagundua pia kuna kitu aitwaye sumfunction.c. Na hii anasema, oh, kuna kitu inavyoelezwa katika sumfunction.c. Mimi si ni pamoja na faili hili katika hapa kwa sababu mimi si haja. Lakini mimi kuhusisha katika wakati mimi kukusanya, ambayo niliona. Hebu kitabu up. Tuliona wakati sisi ulioandaliwa mysum, haki huko, sisi wanaohusishwa katika binary kutoka sumfunction.o. Na mimi si haja header file kwa sababu, bila shaka, kuna kazi tamko hilo. Hivyo mkali ni pamoja na kawaida tu unaweka katika kazi tamko hilo. Hapa nimekuwa tu ya kuweka moja kwa moja katika kanuni. Na hivyo mimi haja ya kufanya ni kiungo katika binary, ambayo mimi kufanya. Guesses yoyote kwa nini ni katika sumfunction.c? Nini code Nimeandika katika sumfunction.c? Watazamaji: [inaudible]. SPIKA: guesses yoyote? Yeah? Watazamaji: Nadhani, amefafanua baadhi [inaudible]. SPIKA: Ndiyo. Hivyo mimi kuandika int Jumla int. Mimi kuandika mstari huu, na kisha nina wazi curly brace, kufungwa curly brace. Je, unafikiri mimi kuandika ndani ya wale braces curly, ndani ya kazi hiyo? Yeah? Watazamaji: Return sawa. Processor: Hiyo ni dhana nzuri kwa kweli. Ambaye anadhani [? Manu?] Ni sawa? Ni anasema kurudi pamoja na b. OK, si kila mtu. [? Akshar,?] kufanya, pia? Una uhakika? OK. Nini? Watazamaji: You yameandikwa ni makosa. SPIKA: Hapana, mimi hakufanya hivyo. Yeah, just kidding. Wewe ni haki. Hiyo ni nini hasa inasema. Ni kurudi pamoja na b. Kwamba inafanya mengi ya akili. OK, hebu kwenda nyuma hapa. Tunaona jinsi header - kwamba aina ya kurudi. Kumbuka, tumeona siku hiyo moja, kurudi aina ya kazi, lakini huenda kabla ya jina la int kazi. Hapa, Nimeandika int. Unafikiri kitatokea kama katika hii kazi, mimi wala kuandika int, lakini Mimi kuandika unsigned? tofauti, bila shaka, ni kuwa unsigned inawakilisha chanya tu integers, na int inaweza kuwa chanya au hasi. Hivyo nimekuwa iliyopita kurudi aina ya kazi hii. Kanuni hii hailingani kurudi aina hii hapa. Je, unafikiri kitatokea wakati mimi kukusanya? Unapaswa kelele saa yangu. No mayowe. Nini kuhusu wakati mimi kukimbia mpango? Hebu kufanya kabla ya 0 hasi 3, au hasi 1. Bado kazi, ingawa mimi kusema ni kurudi integer unsigned. Wazi ni si kurudi unsigned integer. Ni kurudi integer saini. Ni kurudi hasi 1. OK, hiyo ni weird. Je kuhusu kama mimi kwenda katika hapa na kufanya hivyo? Hivyo nimekuwa iliyopita kila kitu kutoka int kwa unsigned. Ni unaweza tu kuchukua integers unsigned. Lakini sisi bado nadhani kutakuwa na kukimbia? Watazamaji: Ndiyo. SPIKA: Ni mapenzi. Kwamba mambo. Na sisi kupita katika wazi kwa ajili integer, tunaweza kupitisha mbili saini integer, bado kazi. OK, mawazo yoyote ya kwa nini bado kazi, au nini kinaendelea? Yeah, Jeff. Watazamaji: Ni kitu cha kufanya na optimization yako kwamba yalionyesha. SPIKA: Hapana Tunaweza kubadili optimization, bado ingekuwa kazi. Mimi anaweza kufanya hivyo kwa ajili yenu, lakini - Watazamaji: Mimi itabidi neno lako kwa ajili yake. SPIKA: Yeah. Kama wewe kufungua makefile hapa, Mimi iliyopita optimization. Hivyo unaweza kufanya dash zero, zero. Ni bado kazi. Mawazo mengine? You guys yote inatarajiwa kufanya kazi, hivyo why'd unatarajia ni kufanya kazi? No? Kimya. OK. Mimi na kusubiri sekunde saba, kwa sababu mimi aliuliza swali. Hivyo jambo zuri kuhusu C, na wameweza pengine uzoefu kabla - wewe wanaweza kuwa na, hii nguvu kuwa mara ya kwanza. Lakini kama wote tunajua, wakati mimi kuandika kitu katika C, haina kuokoa kama hii kwenye kompyuta. Ni kuokolewa kama ndio na zeroes. Ni inakwenda kutoka C code mkutano code. Je, mtu yeyote kuonekana mkutano code kabla, mashine mkutano kanuni? Tutaangalia katika pili. Ni inakwenda kutoka C code mkutano code. Na nyie kujua hatua za uandishi. Alikuwa na kukariri kwamba kwa jaribio moja, na kisha kuandika ni nje ya jaribio sifuri. Watu wengi got kufanya vibaya. Nadhani guys misumari hiyo. Lakini, you guys ni sehemu ya bora kwa mafumbo, kwa njia. Ambayo ni ya kutisha. Itakuwa si kuumiza wewe. Je, si kuwa na wasiwasi. Lakini ni kweli baridi. Kazi nzuri. Kwa hiyo unaendelea kwa lugha kanisa, na kisha unaendelea na wale na zeroes. Na wale na zeroes ni kuokolewa kwenye kompyuta, na kwamba ni nini kuokolewa katika a.out, au katika kesi hii, kutekelezwa file. Na kompyuta anaendesha ndio na zeroes. Haki? Tumejifunza hili kabla. Hivyo jambo zuri ni, hii unsigned wazo, wazo la aina ints unsigned, nakadhalika, nakadhalika, hiyo ni hapa katika C lugha. Wale kuwepo. Lakini aina hazipo katika ndio na zeroes. Aina si kweli hata zipo katika ngazi ya lugha ya mkutano. Hivyo hiyo ni kitu ambayo ipo katika C dunia lakini haipo katika kompyuta dunia au processor dunia. Hiyo ni baadhi ya kufikirika kwamba C lugha imeingiza, kufanya yetu anaishi rahisi. Hivyo mwisho wa siku, siwezi kuandika mambo mengi tofauti hapa, na haina tofauti. Kwa sababu hiyo ipo tu katika C dunia. Haipo katika ndio na zeroes dunia. Na mpango wetu utekelezaji katika ndio na zeroes dunia. Hivyo akili yako wazi si barugumu bado. Lakini nadhani kwamba baridi. Yeah, Jeff. Watazamaji: Hivyo, kama badala ya kufanya int, unaweza kufanya char. Na walikuwa - SPIKA: Hebu kufanya hivyo katika sec. Watazamaji: Kwa sababu basi kupata unsigned kwenda hasi 128 kwa 127 au 0-255. SPIKA: Kwa hiyo char ni tatizo. Je, mtu yeyote kujua kwa nini char itakuwa tatizo, na ingekuwa kweli kubadilisha mambo katika wale na zeroes dunia? Watazamaji: Kwa sababu ya ukubwa wa char. SPIKA: Ukubwa wa char ni 1. Hivyo unsigned ni pia 4 ka. Hivyo char bila screw mambo up. Lakini ni nini 4 ka kwamba kuhusiana na char? Au kwamba anaongeza moja ya ziada - unaweza kuweka moja zaidi tabia ya baada ya char. Watazamaji: Char nyota. SPIKA: Char nyota ina 4 ka. Basi hebu kufanya kitu kwamba nyota char. Hivyo hii itakuwa pengine kazi, lakini sisi ni kwenda kufanya kitu hata crazier zaidi kuliko huu. Kwa maoni yangu, crazier. Nimekuwa sasa imeandikwa kazi kwamba anarudi pointer, na inachukua pointer na thamani unsigned - tutaweza mabadiliko ya nyuma hii int hivyo sisi ni si kufanya mabadiliko mengi sana kwa wakati mmoja. Na ina safu kuitwa, bahati katika safu, na anarudi barua pepe ya. Tumeona kampuni ya hizi kabla. Hii, unafikiri hii ni ya kwenda kufanya, katika kurudi, wakati mimi kuendesha? Je, unafikiri ni kwenda kufanya nini? Guesses yoyote? Watazamaji: Segfault. SPIKA: Nini? Segfault? Hiyo ni dhana nzuri. Tom anasema kitu kimoja. Yoyote guesses wengine? Ambaye anadhani ni kwenda kufanya kitu kimoja? Ambaye anadhani ni kwenda segfault? Ni haina kitu kimoja. Sorry. Lakini, bila shaka, sisi kuweka katika 1 na 2. Na wale wote ni halali, sawa? Hebu angalia, tunaweza kwenda Sehemu ya pili ya safu. Lakini nini kama sisi alifanya b namba hasi? Kwamba pengine ni bora nadhani kwa ajili ya kitu segfaulting. Ni bado kazi. OK, hii ni sasa mambo. Hii ni ya sawa halali Jumla kazi. Hii haina kitu kimoja halisi kama kurudi a na b. Je, mtu yeyote kueleza kwa nini hii ni nzuri kuhitimisha kazi, au kwa nini hii kazi? Kile kinachotokea hapa? Kwa nini hii kufanya exact kitu kama Jumla wetu wa kale kazi? [? Akshar,?] nini kinaendelea? Watazamaji: Kwa sababu wakati una a kwamba hotuba ya eneo kumbukumbu - na wakati wa kufanya Ampersand, ni inakwenda kwamba kumbukumbu anwani. Na wakati wa kwenda B, wewe ni aina ya kusonga hatua kutoka kumbukumbu ya mitaani, wewe ni kurudi hiyo. Hivyo wewe ni kweli, kwa kweli, kuongeza a na b [inaudible]. Ambapo ni shughuli kiwango juu ya kwamba kurudi? Kama, wapi mabano kuanguka? Ni kurudi kwa anwani juu ya a kabla au baada ya [inaudible]? SPIKA: Ni kwenda index katika b - au index katika - na kisha kurudi anwani. OK, ndivyo kila mtu kuelewa nini [? Akshar?] alisema, na alielezea, kwa nini hii kazi? Mimi si, mara ya kwanza mtu alielezea hii kwangu. Je, mtu yeyote kama picha kwa kuelezea hili? Tunakwenda kuchora picha, na hakuna markers, kwamba ni kubwa. Baadhi ya kupatikana na. Hivyo tuna safu kwamba mfululizo wa masanduku. Wa kwanza ni index 0, index 1, 2, 3, 4, dot, dot, dot. safu ya kawaida. Na pamoja na kuwa na fahirisi, wote wana anwani kumbukumbu. Basi hebu kutoa anwani hii kumbukumbu 13, 14, 15, 16, 17, na kadhalika. Kila mtu hapa hadi sasa. Hivyo ni anwani. jina la safu, pointer ni kuokolewa huko. Ni pointer, ni eneo la kumbukumbu, ya kuanza kwa safu. Hivyo kama hii walikuwa safu, a itakuwa thamani ya 13. Na, bila shaka, tunaweza kutoa a thamani yoyote tunataka. Char nyota, tunaweza kutoa yoyote kumbukumbu anwani tunataka. Tunaweza kuwapa 0, tunaweza kuwapa hasi 1 - hasi 1 haipo, hivyo kwamba pengine na matatizo, lakini ninyi kuona kwamba bado kazi. Ili tuweze kutoa idadi yoyote tunataka, kumbukumbu anwani yoyote tunataka. Basi, int b anasema, OK, kwenda namba hii ya hatua katika safu. Hivyo kama b sawa na 2, na a ni sawa na 13, tuko katika kumbukumbu anwani 13. Na sisi kwenda hatua mbili katika, na hivyo sisi ni hapa. Na Ampersand maana kurudi barua pepe ya eneo hili. Na anwani ni, bila shaka, 15. Ili tuweze kupata 13 plus 2, au pamoja na b, ambayo ni 15. swali ni, ingawa - Mimi nina sorry. Je, hiyo kufafanua mambo kwa nini hii kazi? Watazamaji: Kwa nini kazi kwenda - hivyo unaweza kuwa na safu na kwenda index mbaya? SPIKA: Haki. Kwa hiyo sisi alifanya idadi hasi, hivyo kwamba - hii haina mantiki hata hivyo, kwanza, [? Avi,?] kwa ajili yenu? Watazamaji: Yeah Mimi tu [Inaudible], lakini - SPIKA: Yeah, hii atarudi 15. Kama miaka 13, na b mara 2, hii atarudi 15. Watazamaji: Kwa hiyo kuwekwa kwa zero haina kuwa suala, sawa? Kwa sababu wewe ni kusonga kutoka 0. SPIKA: Haki. Hivyo wewe ni kusonga - hivyo kama b alikuwa 0, bila kuhamia mahali popote. Na d tu akarudi anwani - kama b alikuwa 0, kwamba kimsingi kurudi kwamba pepe ya. Kupita katika char nyota a na kurudi barua pepe ya ni kurudi tu, kimsingi. OK, swali ni kwa nini idadi hasi kazi? Na kwamba ni jambo kweli cool kuhusu hii, kwa sababu hii lazima segfault. Na hiyo segfault kama sisi alifanya kitu kama hiki. Hebu kusema, int. Hivyo kanuni hii inaonekana kufanana na wanapaswa kuishi maisha identically. Kimsingi, x ni variable takataka, na hivyo hii lazima kuishi identically. Hebu kufanya hili - oops - katika nyota. OK, tuko tayari kupata makosa hapa, kwa sababu ni tayari kwenda kuwa na hasira mimi kwa sababu tayari anajua nini ijayo. Hasa, moja ya pili. Barua pepe ya sifa kumbukumbu kuhusishwa na kutofautiana ndani. Kimsingi, mimi si kwenda kukusanya huu, na kisha mimi nina kwenda kuondoa kufanya kile sisi tu alivyofanya. Lakini kwa sababu sisi ni kamwe kweli kupata nini katika kumbukumbu eneo, si kwenda kwa segfault. Sisi ni kweli kamwe kuangalia nini katika sanduku ya pili au nini katika sanduku yoyote ya safu hii. Sisi ni tu kusema, hapa anwani ya kitu sisi ni kuangalia kwa na kurudi anwani hiyo. Sisi ni kweli kamwe kwenda katika safu ya kuangalia katika eneo hilo. Na kwa sababu sisi kamwe kugusa kumbukumbu, hatuwezi kupata katika matatizo. Hatuna kupata segfault. Kama sisi alijaribu tena, kugusa kwamba kumbukumbu, kugusa nini kwenye a au b - au bracket b, na kuchukua a ilikuwa 0 na - kama alikuwa 0, hata, ambayo itakuwa pretty mbaya, kwa sababu hatuwezi kwenda chini njia yote huko. Kama na b wote wawili walikuwa 0, na sisi alijaribu kugusa nini huko, basi sisi ingekuwa kupata shida. Lakini kama sisi wala kugusa nini huko, sisi tu kurudi mitaani, ni kweli si kwenda segfault kwa sababu inakuwezesha kufanya shughuli hizo. Ni tu anapata wazimu wewe, na anapata super hasira, wakati wewe kujaribu na kugusa kumbukumbu halisi na kurudi nini wakati huo eneo la kumbukumbu. Je, hiyo mantiki? Hiyo ni sehemu tu ya mambo ya C. Kwa hiyo, tuna moja zaidi ya haya. Ambaye anadhani hii ni ya baridi? Watu wengi zaidi. Hiyo ni nzuri. OK, hii ni moja yetu ya mwisho. Na napenda wewe niambie kama au unafikiri hii ni ya kwenda kufanya kitu kimoja halisi. Mimi haya kuandikwa mahali fulani. Mimi si kukariri yao. Hebu angalia, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Hivyo hii ni safu, sasa, si kazi. Na ni safu kwa sababu tuna mraba mabano, braces si curly. Na ni safu ya aina gani? Mtu yeyote, hmm? Watazamaji: idadi yao hexadesimoli? SPIKA: Lakini nini C aina? Wote kuwa na idadi hexadesimoli. Nini C aina? Hukueleza. Watazamaji: Ni chars unsigned. SPIKA: Haki, unsigned chars. Na namba mbili hexadesimoli ni byte moja. Basi hizi ni 1, 2, 3, 4, 5, 6, 7, 8, 9 ka. Ni safu ya 9 ka. OK, pengine tayari kujua jibu kwa swali hili. Lakini, unafikiri kufanya nini mapenzi kutokea wakati mimi kukimbia hii? Nasema, tena, katika mysum.c, Mimi wanatarajia kazi kwamba inachukua integers mbili. Na mimi nina badala kusema kwamba Jumla ni safu ya wahusika. Ni nini kinaenda kutokea wakati Mimi kukimbia. / Mysum na kufanya? Naam, kwanza, wengi wenu pengine kukubaliana kwamba kufanya - oh no, just kidding. What'd mimi kufanya makosa? Uh oh. Kwamba lazima braces curly. Kwamba ni jinsi gani initialize safu. My mbaya. Hivyo sisi tayari aliona kabla ya aina ya kuwa ni C-ngazi ya kufikirika, si ngazi ya kompyuta kufikirika tu. Kwa hiyo wengi pengine inatarajiwa kwa kufanya, au kuchukua ni kuwa kufanya. Lakini nini wakati mimi kukimbia. / Mysum? Nini kinaendelea kutokea? Guesses yoyote? Watazamaji: Ni kwenda magazeti nje neno. SPIKA: Ni kwenda magazeti nje neno. Neno nini? Watazamaji: [inaudible]. SPIKA: yoyote guesses wengine? OK, magazeti nje ya maneno. Unaweza kuwa na maneno yoyote. Hiyo itakuwa upande wako. Mtu yeyote ambaye ana nadhani tofauti? Anna, nini nadhani yako? Watazamaji: Ni utakuwa magazeti nje - barua mbili, au [inaudible] barua moja. SPIKA: barua One. Watazamaji: Je, mimi kuhesabu ni wengi [inaudible]? SPIKA: Tisa. Naam, mimi nina kwenda kukimbia. Ni gani huo kitu halisi. Inaongeza namba mbili pamoja. Naam, hebu kupita hoja mbili. Haina kuchukua hoja. Basi, mimi sijui ambapo inaweza uwezekano wa kupata hoja hizi. Lakini hebu kupita katika 100 na 0. Na inaongeza 100 na 0. Hiyo ni mwendawazimu. Nadhani hivyo. Hasi 4, kwamba kazi pia. Unaweza kufanya kitu chochote unataka. Hii ni sawa halali Jumla kazi. Hii ni jumla kazi. Lakini, hakuna, wewe ni kusema kwamba ni safu ya ka. Hivyo ni nini kinaendelea hapa? Kwa hiyo, tena, hebu kwenda nyuma na wazo hili kwamba sisi alisema katika mwanzo. Wewe kwenda kutoka C ngazi code ya kanisa lugha, na wale na zeroes. Hii ni hexadesimoli. Lakini hii ni kweli tu mengi ya wale na zeroes. Hii ni 72 ndio na zeroes, sawa? 72 ndio na zeroes. 9 ka. Kila byte ina 8 bits. Kila kidogo ni moja au sifuri. Hivyo 72 ndio au zeroes. Nimekuwa tu imeandikwa kama hii - badala ya kuandika nje kama mengi ya ndio na zeroes. Lakini hii kwenda kutoka C ngazi ya lugha ya kanisa lugha, na kanuni. Na hii magazeti nje katika kanuni, mahali fulani, hawa wadogo 72 na zeroes kwamba nimepata imeandikwa hapa. Hivyo mahali fulani katika kwamba - hebu kwenda hapa - mahali fulani katika mysum, mpango, kuna ni hawa wadogo 72 na zeroes kwamba nimekuwa Imeandikwa na habari kuandika. Sasa, guesses yoyote kwa nini wale 72 ndio na zeroes maana yake nini? Watazamaji: Pengine hiyo kitu kama kurudi pamoja na b. SPIKA: Pengine hiyo kitu kama kurudi pamoja na b. Hebu kuthibitisha kwamba. Hebu kufikiri ni jinsi gani mimi alifanya hivyo. Hivyo kama wewe kurudi hapa, nawaambia kukimbia amri hii, objdump-S sumfunction.o. Hebu kwenda kukimbia. objdump - obj, dampo. Kimsingi unaweza kunipa chochote mimi nataka kuona. Ni unaweza kunipa lugha mkutano. Ni unaweza kunipa ndio na zeroes. Ina tani ya bendera. Hii ni moja tunakwenda kutumia kwa sasa. Dot - kama unaweza kuona katika slides - dash mji mkuu wa S anasema, intersperse, chanzo code - mstari huu ni kutoka C - na kanisa kanuni na pamoja na wale na zeroes. Na sisi ni kwenda kukimbia kwenye sumfunction.o. Kwa sababu utakuwa rahisi kuona. Tena - hmm? Watazamaji: You yameandikwa ni makosa. SPIKA: Lakini mimi nina kweli kwenda wazi kwa ajili ya pili. Mimi kwanza kwenda kufungua tu sumfuntion.o. Watazamaji: You yameandikwa ni makosa mara ya kwanza. SPIKA: Classic. Jumla - kwamba ni neno ngumu, ingawa. Ningependa kuwa na kushangaa. OK, hivyo hii ni sumfunction.o. Mimi naweza hata kukuambia. Kuna mengi ya zeroes, ni wazi mengi ya zeroes, na kuna mengine mambo ambayo si zeroes. Lakini zaidi zeroes. Inaonekana kama kuna baadhi ya ndio. Hivyo ni wazi, hii ni vigumu kusoma. Hiyo ni lugha binary. Hebu sasa kufungua - nini? Je, Mimi kufanya makosa? Je, mimi Spell kwa usahihi? OK, hii ni Awkward. Mimi haja ya pili moja kwa kufikiri nje nini mimi kufanya makosa. Hiyo ni hitilafu moja. Hiyo ni weird. Oh, kwamba ni kwa nini. Mimi nina kwenda nyuma ya awali wetu moja, ili tuweze kuangalia kitu kanuni za hii. Kwa sababu kuna si kweli kwenda kuwa kitu chochote wakati sisi tu ya kuweka ndio na zeroes in Kuna sisi kwenda. OK, hivyo kila mtu anaweza kuona hili. Kazi hii, kama nilivyosema, kuweka nje mistari C - chanzo code mistari - pamoja na baadhi ya maelekezo ya mkutano. Hapa ni chanzo code line yetu. Hapa ni moja, hapa mwingine. Hapa ni mafundisho mkutano. Hiyo ni nini wao kuangalia kama. Bunge maelekezo - unaweza kujifunza zaidi ya haya kama wewe kuchukua madarasa mengine CS, lakini wao ni ujumla mafundisho. Na kisha chanzo na marudio. Na kisha juu ya hapa ni kanuni binary kwamba sambamba na kanisa mafundisho. Hivyo kama unaweza kuona, hii kazi jumla, mwisho wa siku, ni tatu mkutano maelekezo. Tatu tu. Moja MOV - hii m-o-v anasimama kwa Move. Kuongeza anasimama kwa Add. Na r-e-t anasimama kwa marejeo. Hivyo MOV mmoja, kuongeza, kurudi moja. Na hawa, zaidi ya hapa, ni zeroes na wale ambao yanahusiana na kwamba kanuni. Hivyo wale zeroes na ndio, kama wewe kujua hizo, unaweza tu ya kuweka wale moja kwa moja in Na kisha itabidi kufanya hiyo hiyo kitu. Kwa sababu, mwisho wa siku, kila wewe ni utekelezaji ni mfululizo wa zeroes na ndio. Na kwamba ni nini code yako kweli ni. Na sababu - hebu tuangalie kitu kimoja. Je, mimi na makefile wazi? Hivyo kama sisi kurudi dash sifuri, sifuri hapa - sorry, mji mkuu wa o, mji mkuu wa o sifuri, si zero, zero. Na tulifanya, itakuwa bado kazi hiyo. Lakini sasa taarifa kuwa kuna mengi zaidi mkutano maelekezo. Hii ni kwa sababu, tena, mimi aliuliza mkusanyaji si kufanya optimization yoyote. Ili niweze bado kuchukua yote haya zeroes na ndio, na kuwatupa katika, na kwamba itakuwa kazi. Mimi tu alifanya optimizations, kwa sababu ni rahisi kidogo, basi, kuandika kwamba safu. Lakini hii kazi tu kama pia. OK, tunakwenda kufanya jambo moja la mwisho, kwa sababu nadhani ni coolest sehemu. Hata kama kila mtu ni wazi tayari barugumu na kusema. Akili zetu ni barugumu. [Inaudible] Kwa hiyo, haya ni ya darasa mbalimbali CS, ambayo ni super ya kuvutia, kwamba mimi wamechukua - CS61. Mimi sana moyo kuchukua yake. Lakini sehemu ya baridi kuhusu ukweli huu, kwamba mambo ni zeroes na wale tu, ni kwamba kila kitu ni zeroes na ndio. Hivyo unaweza kuchukua faili ambayo ina zeroes sahihi na ndio unataka mahali fulani katika hayo, na kutumia sehemu ya zeroes na kama ndio Jumla kazi. Je, ina maana kwa kuwa? I mean unaweza kuchukua picha faili kwamba ina mfululizo sahihi ya zeroes na wale walio magazeti kitu nje wa picha. Na mpango mtu anaweza kutafsiri ni picha, lakini unaweza kutafsiri, kama unataka, kama Jumla kazi. Hivyo kama sisi alitaka kufungua, kwa mfano, picha hii. Hebu kwenda, Hello Kitty. Ajabu kidogo picha. Katika hapa kuna string kwamba ya zeroes na ndio. Wale zeroes 72 na wale kuwepo katika picha hii. Hivyo nini siwezi kufanya, basi, ni kuandika - Mimi na kukumbuka ambapo wao ni. Mimi utapata kwamba katika pili. Lakini sisi kufanya - napenda kujua walipo. Moja sec. Hebu kufanya - Watazamaji: [inaudible]. SPIKA: Shukrani. Hivyo kama sisi nitafanya mpango huu, ambayo badala wasomaji katika faili, kisha unaendelea kwa ripoti hii katika faili. Na kisha, tena, kama vile mysum, inachukua namba mbili. Tunaweza kuongeza idadi ya sawa kama sisi kufanya kabla ya, ambayo inakwenda kuonyesha jinsi ukweli kwamba, mwishoni mwa ya siku, mambo yote haya ni zeroes na ndio. Na ni tu jinsi ya kuchagua kutafsiri yao. Na kama kweli ukiangalia katika picha hii - hebu kuvuta kidogo. Je, kila mtu kuona? Utagundua haki hapa, kuna baadhi smudge weird. Hebu kwenda - hii ni picha ya awali. Utagundua hapa hakuna smudge. Hiyo ni kanuni kwa ajili ya Jumla kazi, ni kwamba smudge kidogo pale. Na kwa kweli, tena, kama wewe kujifunza zaidi kuhusu hili, utasikia kutambua kwamba hii Hello Kitty, ambayo ina hata kubwa smudge, ina kificho kwamba inaweza kuchukua zaidi ya kompyuta kama si ya ulinzi ipasavyo. Hivyo unaweza kweli kuendesha hii. Mimi si kwenda kuendesha hivi sasa. Lakini unaweza kuendesha hii Habari Kitty picha, na inaweza kuchukua kompyuta yako. Ili wote kwa demo. Je, mtu yeyote una maswali yoyote, maoni, wasiwasi? Nadhani mambo haya ni ya kuvutia. Ni aliongoza mimi kujifunza zaidi. Mimi sana kupendekeza, kama wewe ni nia wakati wote juu ya CS, kuzungumza na mimi. Hata mimi nina Maarifa Concentrator, mimi nina CS, sekondari, hivyo Mimi bado kujua kidogo. Lakini mimi hakika kujua nini madarasa unapaswa kuchukua. Nadhani ni kweli yote ya kuvutia, na mimi moyo, bila shaka, kwa kujifunza zaidi kama wewe ni nia. OK, nina jambo moja la mwisho. Sorry. Maswali yoyote? Sikuweza kutulia kusubiri kama mtu yeyote na maswali yoyote juu ya hilo. Je kuna mtu yeyote kwenda kuwa CS Concentrator? Au kufikiri juu yake? Moja, mbili, tatu, nne. One - moja tu. Anna ni mkono tu kwamba kukulia kwa mamlaka. OK, kwamba ni baridi. Assam, ni wewe kwenda kufanya? Watazamaji: [inaudible]. SPIKA: Constantine? Watazamaji: Fizikia. SPIKA: Whoa, kwamba alikuwa haraka. Wewe alikuwa na uzoefu mbaya katika CS50? [Inaudible], ni wewe kwenda kufanya nini? Watazamaji: Mimi sijui. SPIKA: Curt? Watazamaji: Econ au CS. SPIKA: Econ au CS. Tom? Watazamaji: Mimi kufanya Stat. SPIKA: Stat? OK. Wewe ni nini? Watazamaji: Me? SPIKA: Yeah. Watazamaji: Stat. SPIKA: Stat. Oh, kuna kwenda. Tom, kuzungumza na Alden. Emily, nini ni? Watazamaji: matibabu - SPIKA: Je, wewe katika sehemu hii? Watazamaji: Hapana SPIKA: Sawa, hiyo ni Emily. Yeye ni rafiki yangu. Ni wazi kwamba nzuri ya rafiki, kwa sababu yeye anitiaye wakati mgumu. Unaweza kuwa nicer kwangu mbele ya kila mtu, mwanafunzi wangu - Watazamaji: Mimi kufanya Q mwongozo wako. SPIKA: Kweli? Uh oh. OK, wewe ni ajabu. Nampenda sana. Oh boy. Hata hivyo, mimi, jana usiku, kama kila kitu - Mimi nina uhakika kila mtu inaonekana kweli alisisitiza hivi sasa. Mimi sijui, ni Freshman - ni nyie hisia alisisitiza? Mimi nina hisia alisisitiza. Ilikuwa ni kama, unaweza kwenda nyumbani kwa shukrani. Wewe ni kama, mimi nina kwenda kwa kufanya mambo hayo yote. Watazamaji: Ni tofauti. SPIKA: Yeah, na kurudi tena. Jeff, hujisikii kwa njia hiyo? Watazamaji: Mimi tu mawazo Ningependa kufanya kidogo. SPIKA: Sawa, kubwa. Basi, mimi kuja nyuma, na mimi na si kufanyika kitu chochote. Na ni wote super na ukata mkali. Na mimi nina wasiwasi, dhati ya wasiwasi, juu ya iwapo au mimi nina kwenda kumaliza kila kitu mimi na. Lakini jana usiku, mimi si alisisitiza, Mimi nilikuwa kidogo tu huzuni. Hivyo mimi aliandika katika kitabu changu juu ya nini nilikuwa kusikitisha juu. Na mimi nilikuwa kusikitisha kuhusu sehemu hii katika darasa hili kuja mwisho. Basi, mimi mara tu kwenda kusoma kwa nyie snippet kidogo ya kitabu changu, kutoka jana usiku. Ninaweza kupata baadhi leso, baadhi tishu kutoka Tom? Hapana, mimi nina kwenda kulia. Mimi si kulia. Si kwamba huwezi kulia, Mimi si tu kulia. Mimi wala hata kujua kama machozi yangu tezi kazi - ducts machozi. Mimi sina kelele kwa muda mrefu. Watazamaji: [inaudible]. SPIKA: Sawa, shukrani. OK, kuna utangulizi kidogo - kuna baadhi ya maeneo mengine ya kitabu changu kuingia, kwa sababu mimi kujaribu jarida kila usiku kabla ya I got kitanda. Mimi sana kupendekeza journaling. Ni husaidia mchakato wa mambo, na pia kuwa shukrani sana ya siku yako. Na inafanya ni rahisi sana kwa kuangalia nyuma juu ya siku yako na kutambua kwamba kulikuwa na mengi ya mema mambo yaliyotokea. Hata kama wewe kujisikia kweli alisisitiza wakati wa usiku au kweli upset, au kweli kusikitisha au amechoka. Oh, mungu wangu. Mimi wala hata kujua kama ni imeandikwa kwamba vizuri kwa sababu sikuwa sahihisha yake. Lakini tutaweza kusoma. Mimi kwa kawaida si kusoma yangu journal, ni wazi. "Kesho, mimi itabidi kufundisha mwisho wangu CS50 sehemu ya mwaka. Ni mambo gani wakati kwa haraka nzi. Hata hivyo, mimi nina akampiga kwa jinsi mbalimbali uzoefu wangu kufundisha mwaka huu ilikuwa kuliko wakati mimi nilikuwa sophomore. Kwa kuanzia, mimi dhahiri kujua nyenzo bora. Lakini usimwambie cohort yangu ya kwanza ya wanafunzi hiyo. Muhimu zaidi, hata hivyo, mimi barabara furaha kwamba linatokana na msimamo up mbele ya chumba kile kuanza nje kama wageni, lakini mwisho juu kama, katika angalau, marafiki Facebook, ni si mwaka wa kwanza fluke. Badala yake, ni kwa kujua kwamba, katika baadhi njia ndogo, wewe ni kusaidia wenye vipaji, wasiwasi, kupendeza, na watu passionate kujifunza kidogo zaidi kuhusu sayansi ya kompyuta. Wewe ni kuhama kwamba mwanga bulb tu kidogo katika tundu yake, ili ni uwezo kuangaza mkali kuliko wewe, au ni wao, inaweza kuwa na kufikiri katika muhula mwanzo. Wewe ni kusaidia kugeuka wale frowns kichwa chini na kuuliza maswali ambayo kutoa msaada, lakini bado kuruhusu wanafunzi kusimama juu yao wenyewe. Ni hakika si exaggeration kwa kusema kwamba sehemu hii ni favorite yangu sehemu ya wiki. Au hata kuwa mimi usisite kusema, kwamba ni wote, saa 5:30 kila wiki, kujua kwamba kutakuwa na kuwa na njia ya muda mrefu pia mpaka sisi kukutana tena. Hata hivyo, mimi nina incredibly kushukuru kwa kila mtu ambaye kunipa hii nafasi ya kutoa nyuma kwa wengine. Daudi, kwa uvumilivu wake na uaminifu. Filamu na uzalishaji wafanyakazi, kwa maamuzi yangu kuangalia kiasi fulani heshima. Na muhimu zaidi, kwa wanafunzi wangu, ambao bila ya wao Ningependa kuwa hakuna sababu ya kutumia masaa 10 kuhesabia bora njia ya kuteka kuyatumia, au kuweka nje a meza ya dolphins, kupitia JavaScript. Kama kawaida, imekuwa ni baraka. " Hivyo, pamoja na kwamba, asante guys. Mimi nitawaoneni wote katika CS50 haki, na hackathon, kama wewe ni huko. Na kama una maswali, mimi itabidi fimbo kuzunguka mpaka hakuna zaidi. Lakini mimi ninakushukuru kwa guys kwa mwaka ajabu. [Makofi] SPIKA: nipate kulia.