[Mizik tèm] Oratè 1: Hi, tout moun. Byenveni tounen nan seksyon. Lovely jou out-- ki se poukisa, mwen se asire w, te gen sèlman kat nan ou isit la epi yo pa pake abityèl nou an. Mwen te malad nan fen semèn sa. Se konsa, mwen pa gen Starburst pou ou guys. Apre sa, mwen ka kòmanse touse fò anpil nan tout sa a. Se konsa, jis pote avè m '. Mwen pral reyèlman eseye epi pou yo jwenn nan sa a premye, menm si, mwen anvan m 'gen yon atak touse. Men, jis dwe fasil sou m 'yon ti kras bit-- ki nan tout mwen mande. Se konsa, ajanda nou an pou today-- jis yon reminder-- egzamen ou an se semèn pwochèn. Mwen te di nou sa a semèn pase a se konsa li pa ta trape ou nan gad. Se konsa, mwen fè ou sonje ankò. Semèn pwochen an egzamen ou yo. Pou sa fini, semèn pwochen an seksyon pral pi plis of-- m ap eseye ak travay nan kèk revizyon. Se konsa, si ou nèg te kapab ede m 'soti pa voye m' bagay sa yo ke w ap konfòtab ak, ke w ap enkyete w sou, sijè ki ou ta renmen pou m 'yo kouvri, ki ta dwe gwo. Se konsa, mwen ka eseye ak travay yo nan seksyon nou an semèn pwochèn oswa voye ba ou materyèl siplemantè oswa preparasyon ke ou pa ta ka jwenn yon lòt kote. Yeah! Plis moun ap vini! Mwen te panse, mwen te fè sa seryezman dènye semèn, ki pa gen yon vle retounen? Mwen se pè. Se konsa, twa lòt bagay sa yo ke nou ap ale nan ale sou se Reoryantasyon, dosye mwen / O, ak Lè sa a, endikasyon ak dinamik memwa. Mwen si ou ap tout super eksite sou bagèt pi renmen sijè tout moun la, konsa senp yo konprann. Mwen si ke ou nèg tout te resevwa sa, dwa? Se konsa, premye bagay premye, redirection-- sa a se fondamantalman jis yon fason kontwole ki jan ou D ' bagay sa yo nan pwogram ou an, ki jan ou bagay sa yo pwodiksyon soti nan pwogram ou an. Fason prensipal ke ou nèg yo te kominike avèk li se jis nan soti estanda ak ekran ekri an lèt detache ou isit la. Men, gen fason yo pipe-- jan nou wè isit la se youn nan kalite words-- nou an nan tiyo ke enfòmasyon oswa ke done nan yon dosye ki sòti nan yon dosye. Se jis nan diferan fason pou ap resevwa bagay sa yo nan pwogram ou an ak soti nan pwogram ou an, olye pou yo jis enprime yo nan ekran sa a oswa Anthrax bagay soti nan liy la lòd. Se konsa, premye a se yon sèl ti kras pi gran pase Lambda. Se konsa, li jis simagri output-- pwodiksyon an nan yon dosye olye pou yo ekran an. Se konsa, si ou te gen yon bagay ki enprime "Alo, mond!" nan ekran an, si ou mete l 'olye pou output.text, ki kreye sa a ranpli rele output.text. Men, lè ou louvri li, li pral di "Hello, mond!" nan la. Sa a kapab itil super si ou gen yon ton nan erè aktyèlman, jan nou wè nan yon sèl sa a. Si ou fè sa de Lambda, li pral enprime mesaj yo erè. Se konsa, si w ap gen yon pwoblèm ak konpile, li gen yon anpil nan erè ak w ap resevwa anbourbe desann nan ap woulo liv atravè nan liy lòd ou nan tout yo, ou kapab jis enprime yo nan yon dosye li an, louvri moute ki dosye pou ke ou ka woulo liv atravè yo pi fasil. Mwen aktyèlman itilize ke yon lè anpil mwen te debogaj 181 psets mwen an pou aprantisaj machin. Se konsa, li kapab itil super pita sou. Li la tou itil si ou gen yon pwogram ke petèt se génération yon bibliyotèk oswa génération kèk seri nan strings, epi ou bezwen pou kapab wè ke li nan génération yo byen. Sa a se yon fason a fè sa. Se konsa, si ou enprime yo nan yon dosye, ou ka egzaminen yo pi fasil, dwa? Parapò ak ap eseye woulo liv nan liy lòd ou yo. Lè sa a, yon sèl bagay yo sonje se ke ak jis pi gwo a pase Lambda, si ou ap ekri nan yon dosye ki deja exists-- se konsa tankou si nou kouri premye a sa a tan, nou mete l 'nan output.text, ak Lè sa a nou te gen yon pwogram dezyèm ki enprime sa a kòm pwogram de ak te fè yon pi gran pase output.text, li pral recouvrir that-- konsa recouvrir sa ki te tout tan nan ki dosye yo kòmanse avèk yo. Se konsa, si ou vle kole nan yon dosye, jan nou wè isit la, ou jis fè de pi gran pase siy. Epi li pral kole nan li. Li pa pral recouvrir li. Se konsa, si ou bezwen kouri miltip pwogram ak kalite kenbe tras nan sa yo tout yo retounen nan ou nan yon dosye, sa a, se yon fason yo fè li. Si ou pa pran swen sa ki nan nan dosye ou ak li a pèmèt yo dwe ranplase, ou ka jis sèvi ak yon pi gwo yon sèl pase. ki fè sans a tout moun? ODYANS: Tankou dot koupe alo pi gwo pase tèks pwodiksyon dot, tankou de fwa, li pral jis sèlman montre sou pwodiksyon dot tèks yon dezyèm time-- Oratè 1: Dwa. Se konsa, li ta fondamantalman jis konplètman recouvrir sa ki te gen yo kòmanse avèk yo. Si sa a ranpli isit la a, output.text deja ki egziste, fondamantalman tou sa ou rele ki ankò ak yon pi gwo yon sèl pase ou ka jis panse a li kòm tankou li ranplase dosye a. Menm jan ak lè w ap ekonomize yon Pawòl dokiman ak ou sove kòm, epi ou kenbe menm non yo, ak li konplètman ranplas l-- sa a se sòt nan menm nan bagay. Nenpòt moun ki gen nenpòt kesyon sou jis sorti nan yon dosye? Awesome. Se konsa, evidamman, si ou ranvèse a flèch direksyon, li ka fè opinyon. Se konsa, lè ou nèg te gen tankou Seza tande kòz oswa Visioneer epi ou te gen nan yon bagay D ', ou te gen yon liy lòd agiman ki aktyèlman opinyon li. Sa a se yon lòt fason yo fè sa. Se konsa, olye pou yo ap tann pou yon èd memwa lòd, tankou lè ou te mande pou ou mesaj nan Seza tande kòz oswa Visioneer, si ou te gen yon dosye tèks ki te gen mesaj ou a, ou ta ka jis tape l 'nan sa. Se konsa, si sa a te tankou dot koupe Seza 3 mwens pase tèks opinyon flèch, ki se mesaj ou a, ki ta kouri jis anfòm. Lè pwogram Seza ou aktyèlman mande pou enfòmasyon nan men gwoup itilizatè a, li ta deja gen li paske ou te tape nan sa a dosye. Se jis yon lòt fason. Jis yon ranvèse nan output-- jis opinyon pou done ou. Lè sa a, dènye yon sèl la se tiyo. Se konsa, fre bèl sa a yon sèl la. Paske li pèmèt ou pran pwodiksyon an nan yon sèl pwogram li mete l 'kòm D 'nan yon lòt pwogram. Mwen pa konnen si nenpòt nan ou te jwe ak Decoder nan ki ta ka gen CS50 ban nou, men li ta pèmèt ou pran kèk echantiyon ranpli, tape l 'nan chifreman ou, ak Lè sa a soti nan gen tape ki nan dekripte ou a asire w li te tounen soti menm bagay la. Se konsa, li kalite tankou twa-fason bouk. Ale pou li. ODYANS: Si yon pwogram gen plizyè entrain, ki gen la yon fason yo di li ki opinyon yo sèvi ak dosye a tèks oswa pwodiksyon an pou? Oratè 1: Li te gen miltip entrain. Kèlkeswa ranpli input-- ou lè li nan mande pou opinyon ki premye fwa, li nan pral asime, mwen panse ke, li nan ale nan tiyo nan dosye a tout antye. Se konsa, si ou gen plizyè entrain, w ap ale nan dwe kanalizasyon nan dosye miltip. Se konsa, si w ap mande pou mesaj twa fwa nan kòd ou a, w ap ale nan dwe mete nan twa dosye diferan. Epi li vin fou. Epi ou pa ta dwe gen enkyete sou sa kounye a. Men, sa a lide la. Se konsa, yeah, tiyo se jis pwodiksyon nan yon sèl pwogram sèvi ak D 'nan lòt la. Tout moun bon a? Fre. OK. Ou pwobableman pa pral gen fè twòp ak li. Men, ou ta dwe konprann fason ou ka itilize sa a. E gen kèk ka ki ou ta ka vle sèvi ak li. Se konsa, ranpli I / O-- Mwen konnen sa w ap saying-- nou ap itilize yo lekti soti nan ak ekri nan ekran nou an la, ki se estanda nan ak estanda deyò. Epi sa a, ki sa ou mesye yo te fè depi nan konmansman an nan klas isit la. Men, ou ka tou li ak ekri dosye, ki se tout dosye mwen / O-- konsa ranpli D ', pwodiksyon se tout li vle di pou. Se konsa, sa fondamantalman vle di ke ou ka magazen done ou kounye a. Lè ou jis enprime li nan la ekran, li nan fondamantalman ale, dwa? Le pli vit ke ou fè "Alo mond "ak kouri" Alo mond " li simagri "Hello mond" nan ekran an. Men, ou pa ka vrèman fè anyen ak li soti nan la. Si ou sere nan yon tèks dosye, sa a, toudenkou ou gen sa a done ke w ap pèmèt manipile oswa mete l 'nan yon dosye, oswa mete l 'nan yon pwogram pita. Youn nan rezon ki poukisa nou fè sa a se jis kòm yon fason nan magazen done pou pita itilize. Mwen gen yon koup nan etap isit la jis mache nan estanda Mwen / O. Nan etap yon sèl, ou bezwen yo kreye yon referans nan dosye a ak tout kaskèt POTE dosye zetwal. Se konsa, ki ka kreye yon konsèy nan yon dosye. Se konsa, Lè sa a, ou vle louvri li. Epi ou di, literalman, jis dosye egal fopen. Lè sa a ki pral retounen yon konsèy nan dosye a ou jis louvri. Mwen te wè yon koup la ou mesye nan lè biwo louvri. Men, youn nan bagay ki se endikasyon remember-- ka gen kèk adrès oswa nil, dwa? Si nou janm genyen yon ka kote yon bagay ka retounen nil, ki sa nou dwe fè anvan nou janm sèvi ak li? Nou bezwen yo tcheke si li nan nil oswa ou pa, dwa? Paske gen kèk nan nou te ka jwenn pwoblèm nan ki kote tou sa objè te ke yo te retounen nan levasyon te nil. Ou te eseye fè kèk fonksyon sou li. Ak sit òdinatè w lan rproche. Dwa? Mwen parye yon koup la ou te ka jwenn ke pwoblèm. Se konsa, avèk fopen, fopen ap swa retounen yon konsèy nan dosye a, oswa si gen yon bagay ale mal, li a pral retounen nil. Se konsa, ou toujou bezwen yo tcheke ke li pa te retounen nil anvan ou eseye fè nenpòt lòt bagay. Sa a se tankou yon paradigm estanda ke w ap ale nan bezwen isit la. Si gen nan tout tan tout tan yon chans ke yon bagay kapab retounen nil, tcheke a asire w li pa anvan ou kontinye. Sinon, w ap ale yo ka resevwa fot sit bèl. E pa gen yon sèl renmen fè fas ak sa yo. Se konsa, jan nou wè isit la, agiman an premye se jis chemen ki mennen nan dosye a. Si ke dosye pa egziste, li a pral kreye ki dosye. Epi li jis pral fè vid. Lè sa a, agiman nan dezyèm se mòd la ke ou vle. nou vle li nan sa a ranpli? ou vle ekri soti nan li? ou vle kole? Se konsa, aktyèlman ki sa mwen jis said-- si dosye a pa egziste ak w ap eseye li soti nan li, li k ap pase yo voye jete yon erè. Si dosye a name-- renmen si file.text pa egziste ankò epi ou vle ekri nan li, li pral kreye yon dosye vid rele file.text pou ou. Men, si ou vle kole, ou ta dwe fè menm bagay la. ki fè sans? Si w ap eseye li soti nan yon dosye ki pa egziste ankò, li pral voye jete yon erè. Sinon, li pral kreye dosye a pou ou fè sa ou vle nan li. Fre. Koulye a, nou ka li soti nan dosye a. Lè sa a se jis kalite ale a fonksyon yo diferan ke nou gen pou dosye mwen / O. Volonte sa a ap nesesè nan pset semèn sa a la, si mwen sonje kòrèkteman. Wi, li absoliman pral nesesè nan pset semèn sa a la. Se konsa, fgetc retounen pèsonaj la kap vini an. fje jis retounen yon liy nan tèks. Li pral retounen anyen jiska yon liy nouvo, epi li pral kraze. Se konsa, frèd li yon sèten kantite bytes ak kote yo nan yon etalaj, ki se yon bagay ou ta ka vle fè ak re-size-- ta kapab itil. Konbyen moun ki te li espèk a pset, nan chemen an? OK. [Fèbl] Oratè 1: OK. Tout dwa. Definitivman li that-- li nan yon pset plezi. Ou jwenn yo refè yon memwa efase card-- reyèlman enteresan lè li fonksyone. Men, definitivman, kòmanse lekti sa. Vini non pale ak m 'si ou gen kesyon sou li. OK, se konsa jan mwen te di, frèd li yon sèten kantite bytes. Sa a kèk nimewo abitrè ki w ap ale nan mete. Lè sa a, jis deplase fik nan yon pozisyon sèten. Se konsa, petèt ou pa pran swen sou pwochen 10 bytes yo. Ou jis vle sote devan yo. Ou pa pran swen sou sa yo. Ou vle li kòmanse nan multiple 11. fik pèmèt ou fè sa. Se konsa, li pèmèt ou yo dwe selektif sou sa ou ap li. Paske fgetc, fje, ak frèd Read ki sòti nan yon kote ki sèten nan dosye a. Yon fason yo reflechi sou sa a se si sa a se dosye nou an, lè w ou fèk louvri li, ou gen pozisyon sa a nan dosye ki kòmanse nan kòmansman an. Chak fwa ou rele fgetc, fgetf, oswa frèd, li a pral kòmanse soti nan pozisyon sa a makè. Se pou nou di ou jis vle li sa a ti moso nan memwa sou isit la. Ou pa ka jis rele. Ou gen al chache sou isit la ak Lè sa a li soti nan gen oswa li, vin, oswa getc, depann sou sa ki ou vle. Se konsa, chèche jis pèmèt ou sote pòsyon nan memwa. Epi sa a, sèlman nan fason ou ka sote bagay san yo pa lekti yo nan zòn de defans ou. ki fè sans a tout moun? Li evidan, gen nan yon anpil nan paralèl isit lan-- Jefò pwodiksyon, oswa opinyon nou an, ou te li ak ekri. Se konsa, fputc jis ekri yon N. nan dosye a. fputs ekri yon liy. Fprintf simagri yon pwodiksyon formate. Se konsa, si ou gen onglè, oswa espas, oswa etajèr. Lè sa a, fwrite ekri kèk etalaj de bytes nan yon dosye. Se konsa, sa a se menm jan an fwrite ak frèd yo analoji fje opposites--, fputs, ak Lè sa a, fputc ak fgetc-- anpil nan fou, bagay rapid. Jis kalite kenbe handy-- sa a ou pral gen fwa diferan ki kote petèt ou jis vle yon karaktè nan yon tan. Petèt ou vle yon liy tout antye. Avèk diksyonè pset-- ou ki se nan de psets, Mwen kwè, nou ba ou yon antye diksyonè nan yon fòma tèks ki te gen tout pawòl separe pa yon liy. Se konsa, si ou te vle li nan yon mo nan yon moman, sa ou ta ka sèvi ak si w ap lekti epi yo ap tout separe sou liy nouvo, epi ou jis vle yon mo nan yon moman? ODYANS: fje Oratè 1: Dwa. Fgets-- paske ki retounen tou sa se sou yon sèl liy. Men, si tout pawòl li yo se pwòp liy, nou ka sèvi ak fje. Fre. ki fè sans, tout moun? Cool? Yeah, nou ap ale nan ale nan pati a plezi ak endikasyon trè byento, kote ou li ale nan fè kèk matematik. Epi li pral gen gwo pouvwa. Denye lan etap fèmen dosye ou yo. Avèk bagay sa yo anpil isit la, youn nan paradigmes nou an se si li kapab retounen nil, tcheke pou nil. Si ou louvri yon bagay, ou ta pi bon fèmen li. OK, se konsa ou pa ap fè jiskaske ou ap fè sof si ou te fèmen li. Kalite tankou li nan pa sou jouk dam nan gen anpil grès chante. Sa a tankou fèmen dosye ou. Kòm li di isit la, jis repete, toujou louvri dosye ou anvan ou se lekti oswa ekri nan li. Ak toujou fèmen li si ou te louvri li. Tout dwa? Fre. Se konsa, isit la nan yon egzanp. Se konsa, tiny-- Mwen pa konnen si ou nèg ka wè ke trè byen. Si sèlman nou te ka ogmante klète an yon jan kanmenm. Kite m 'aktyèlman fè sa a si mwen kapab. OK, ou nèg pa kapab reyèlman wè ke nan tout, ou ka? OK, nou ap ale nan fè sa, lè sa a. [Fèbl] Mwen sipoze sa a se pi bon yo wè. Èske nenpòt moun kapab wè ki kote mwen sourit al se kesyon an? Ah, gen li is-- sa lit! OK. Fondamantalman, ou nèg ta dwe gen kalite nan yon lide sou ki sa sa a ap fè. Li pa pafè. Men, mwen ta pito eksplike li ke depanse plis tan ap eseye fòma li byen. Fondamantalman, jan ou wè la a, nou kòmanse ak dosye louvri. Epi nou gen kèk dosye baz done ke nou se louvri ki di li nan elèv nou yo. Apre sa, nou ap ale nan ekri nan li. Se konsa, nan kou, retounen nil. Se konsa, nou gen yo tcheke pou nil. Lè sa a, si li pa nil, nou ale nan. Ak jan ou wè la a, nou ap loupin nan isit la. Gen elèv yo. Elèv se regle defini kòm twa. Ak sa ki nou ap fè se nou yo enprime nan dosye a, dwa? Se konsa, sa yo se nou enprime soti nan dosye nou an? ODYANS: Nòt yo ki nan etalaj la? Oratè 1: Yeah. Nòt yo ki nan array-- la egzakteman. Se konsa, nou yo ap louvri sa a dosye baz done, ki Mwen sipoze se kèk sòt nan klas baz done. Apre sa, nou ap jis enprime soti nan nòt nan chak elèv ak sa yo ki dosye. Cool? Bon. Awesome. OK. Se pou yo jwenn tounen to-- ODYANS: Mwen gen yon kesyon rapid. Èske printf a pa nan la pou riban? Se jis nan si bouk la? Oratè 1: Non, li la nan la pou riban. Mwen pa ka wè sourit mwen trè byen moute isit la. Se konsa, mwen konbat yo fòma ki byen. Ta dwe bracket sa a dwe ale. Li ta dwe desann isit la. Sa a se sa ki nan nan ou a pou riban. Gen. Kounye a li nan bèl. Se konsa, sa a, se li montre kouman li ta dwe be-- eksepte pou ki bracket pase a ke mwen ranvwaye. OK. ki fè sans a tout moun? OK. Nou pral deplase sou bagay la pwochen then-- ki, aktyèlman, w ap ale bezwen wè kòd a. Se konsa, mwen jis ale nan kopi ke plis pase kounye a. OK. Se konsa, mwen pral montre w mesye sa a kòd. Apre sa, mwen vle ou eseye ak figi konnen ki sa ki li nan sipoze fè. Se konsa, bay that-- pran yon minit oswa konsa. Eseye ak figi konnen sa k ap pase sou isit la. Nenpòt lide? Nou konnen nou gen omwen de agiman nan liy la bay lòd, dwa? Mwen sipoze youn nan ki a pwal ki [fèbl] nan pwogram nou an, se ak Lè sa a yon lòt bagay. Paske si [fèbl] se mwens pase de, nou rele nan yo. Dwa? Li te pran depi l 'a, li sanble li nan pral fè kèk sòt de dosye. Nou tout dakò ak sa? Se konsa, kounye a, sa ki nan riban an ap fè? Ki sa ki nan li ale atravè tout? ODYANS: tout dosye yo. Oratè 1: Egzakteman. Li nan ale atravè tout tout nan dosye ki nou te opinyon a. Se konsa, pou chak dosye, li nan ouvèti moute kèk fisèl la. Li nan ouvèti moute ki dosye. Dwa? Epi li lekti soti nan li. Natirèlman, tcheke si li nan nil. Lè sa a, li nan enprime. Si li nan nil, li jis di nou ki sa a pa yon dosye ki egziste. Paske sonje, ak li dosye nou an ki gen egziste. Dwa? Avèk ekri ak ajoutra, ou ka jwenn lwen ak li. Men, avèk Read, dosye nou an ki gen egziste. Lè sa a, si li egziste, kisa nou fè la a? Se pou nou jis kòmanse isit la. Ki sa ki nan sa a do-- sa a karaktè premye. Ki sa ki li fè? Li te vin yon karaktè, dwa? Se konsa, sa se sa a ap fè? Li nan ap resevwa pèsonaj la an premye. Nenpòt moun ki konnen èof? ODYANS: Fen dosye? Oratè 1: Fen file-- egzakteman. Se konsa, li pral yo ale nan dosye a tout antye, dwa? Lè sa a, li la pral mete ajou pa ap resevwa chak karaktè ki vin apre. Dwa? Ak sa ki nan li ap fè? ODYANS: Mete ki in-- Oratè 1: putchar simagri kouler ou yo. [Fèbl] karaktè a. Lè sa a, lè li [fèbl] sa a ap fèmen dosye a. ODYANS: ou pa bezwen yon [? lòt bagay? ?] Oratè 1: Pa nesesèman. Mwen vle di, li nan kalite enplisit nan sa a. Paske sa a retounen, menm si, osi lontan tankou sa a pa trape sa a, w ap amann. Mwen vle di li la pwobableman bon pratike fè yon lòt bagay. Men, yon lòt bagay se pa toujou nesesè espesyalman si ou gen yon bagay tankou yon retou, ki vle di ke nan ka sa a si li kaptur li, pwogram ou an k ap pase nan fen epi li pa janm pral jwenn yo sa a. Li nan plis pou ka a kote w ap pa nesesèman retounen yon bagay. Paske si sa a pa t retounen anyen, li ta vle di ke si sa a yo te vre, rès la nan sa a ta toujou kouri. Ak nan ka sa, ou ta vle yon fo. Si li la retounen, ak fini pwogram ou an, yon lòt bagay se pa nesesè tout tan an, tou depann de kontèks. Jakòb, t 'ou gen yon kesyon? ODYANS: Yeah. Se konsa, eske fgetc jwenn karaktè nan pwochen? Kouman pèsonaj la ogmante? Oratè 1: Yeah. Se konsa, fgetc vin pèsonaj la kap vini an. Ou ka panse a li tankou C ++ nan yon sans. ODYANS: Se konsa, sa te èof? Oratè 1: èof se nan fen dosye. Se jis nan yon makè ki pèmèt ou konnen ke w ap nan fen a nan dosye ou. Se konsa, sa a se pral ekri ak lèt ​​detache estanda ou deyò. Lè sa a, li la pral fèmen dosye a lè li nan fè. Lè sa a, kite a ale nan dosye a kap vini an, dwa? Se konsa, an jeneral, sa pwogram sa a fè? [Fèbl] Oratè 1: Yeah. Li jis simagri soti tout bagay la. Se konsa, si ou nèg te janm itilize CAT ak Lè sa a non an nan kèk file-- Mwen pa konnen si nenpòt nan ou gen janm fè ki sou tèminal ou yo. Men, si ou janm sèvi ak nan lòd CAT-- C-A-T-- ak Lè sa a tou sa dosye ou gen there-- li simagri li soti nan tèminal ou a, ki kapab super sou la men pou kèk bagay. Mwen sèvi ak li yon anpil. ki fè sans a tout moun? Cool? OK se konsa travay ou now-- swa pa tèt ou oswa ak moun yo ozalantou you-- se jis ekri yon pwogram ki senp ki pral jis ekri "Alo, mond!" soti nan yon dosye. [Fèbl] [Fèbl] Oratè 1: Mwen te tankou, te fè Mwen fè sa semèn seryezman sot pase a? Mwen pa t 'panse ke li te ke move. Mwen byen kontan w ap tout isit la. Li reyèlman fè m 'kè kontan. Mwen se yon ti fi nan plezi senp. Mwen jis renmen lè m 'seksyon ye a. Se konsa, mwen jis ap resevwa sa a te kòmanse pou ou nèg pou nou ka Kòd ansanm. Mwen pa renmen mete nenpòt moun ki sou tèren an sof si ou vle yo dwe. ODYANS: Pou egzamen an, fè nou gen yo ekri yon pwogram? Oratè 1: Ou ka ap mande yo ekri pwogram ki senp nan men. Wi. ODYANS: egzamen an se semèn pwochèn, dwa? Oratè 1: egzamen an se Mèkredi pwochen. Sa vle di gen nan yon bèl [? CSE?] korije pati apre sa, ki vle di ou pral jwenn nòt ou tounen ki night-- nan sa ki tan? Ki moun ki konnen? Men, li pral Jou lannwit sa a. Tout dwa. Ki jan nou vle kòmanse sa a? Mwen pral ba ou yon kòmanse hint-- ak sa. ODYANS: Ou gen yo louvri yon dosye. Oratè 1: Yeah. Se konsa, sa ou vle rele sa a? ou jis vle rele li "dosye"? Se pou yo fè li fasil. Se konsa, sa ki nan nou an fopen-- tès pwodiksyon pral fè? Rele li "Alo." Ak sa ki mòd nou an? Kisa n'ap fè sa a ranpli? ODYANS: Li. Ekri. Oratè 1: Nou ap ekri nan li. Lovely. OK, se konsa nou gen sa a ranpli kounye a. Ki sa nou bezwen fè? ODYANS: Tcheke si li nan nil. Oratè 1: Tcheke si li nan null-- egzakteman. Sa a ki sa mwen renmen tande. Sa yo ta dwe otomatik, espesyalman bèl anpil soti nan pwen sa a sou. Si w kòmanse segfaulting, pwobableman ou pa t 'tcheke pou nil yon kote. Nèf fwa soti nan dis, ki nan pral fè erè ou yo. Se konsa, si ou ta ka jis jwenn nan la abitid, toujou tcheke si li nan nil, lavi ou nan pral fè bèl ak easy-- oswa pi fasil. Se konsa, tcheke yo wè si li nan nil. Se konsa, si li pa nil, ki se sa ki Bang nan egal means-- pa nil li a valab. Ki sa nou vle fè? Nou jis vle enprime ak sa yo ki dosye, dwa? Se konsa, sa nou pral itilize? ODYANS: fprintf Oratè 1: Fprintf-- bèl. Epi fprintf pran de arguments-- kote li a pral ak sa nou vle enprime. Se konsa, sa ki nan yon sèl la an premye? Ki kote li prale? ODYANS: File. Oratè 1: Li nan ale nan ranpli. Ak sa ki nou vle enprime? "Alo, mond!" Tout dwa. Nou gen yon dènye thing-- yon lòt paradigm gwo isit la. ODYANS: Fèmen. Oratè 1: Fèmen. Gen ou ale. ODYANS: Èske sa kap pase si dosye a se nil? Oratè 1: Non, sa a se si li pa nil. ODYANS: Oh, si li nan not-- OK. Pou fopen a ak Lè sa a, nan de agiman ki ale andedan, sa agiman an premye vle di ankò? Oratè 1: agiman an se jis tankou non an nan dosye a ke ou vle pou yo ale nan. Se konsa, apre sa a kouri, ou ta gen kèk dosye rele "hello" ki te gen "Alo, mond" nan li. Sa a tout. Jis non yo. ODYANS: E depi li nan ekri, nan dosye pa bezwen deja egziste. Eske se sa ke sa ou te di? Oratè 1: Dwa. Egzakteman. Si ou reponn "Alo" kòm yon dosye pa egziste ankò, li nan ale nan kreye yon dosye rele Bonjou "ak ekri nou nan li pou ou. ODYANS: Lè w ap di pwogram nan te ekri nan dosye a, poukisa ou ekri "dosye" olye pou yo non an nan dosye a ak fprintf-- Oratè 1: Paske nan ka sa a, nou gen ke gwo FILE-- tout nan caps-- etwal, ranpli. Se konsa, li yon konsèy nan dosye a ke w ap pale de. Sa se yon fason a ki nou jis, al gade nan li. Se konsa, nan ka sa a, ou ka panse a file-- Aha, nou ka sèvi ak this-- ranpli isit la refere a ouvèti a nan "Alo" epi kite li ekri. ODYANS: Èske nou mete yon "Alo" olye pou [? nan jis] f dosye? Oratè 1: Non, paske "Alo" bezwen yo dwe louvri, epi vrayabl. File isit la, se tankou yon Deziyasyon ki di OK, nou gen hello-- sa a file-- ke nou ap chèche a. Li te louvri. Epi n ap pral ekri nan li. Si ou jis itilize "Alo", ki se enklizyon nan li. Se konsa, li k ap pase yo toune fou. Mwen vle di, ou ta ka te rele li. Ou te kapab te fè ranpli, etwal, "Alo", egal sa. Men, pwen an antye se ke ou bezwen yon konsèy etwal dosye yo nan lòd pou kapab itilize fonksyon sa yo. ODYANS: Èske ou ta kapab fè ranpli, etwal, dosye, "Alo" oswa ou gen yo mete ranpli etwal, dosye pa li? Oratè 1: Ou te kapab fè ranpli, etwal, "Alo". Ou ka chanje sa a yo kèlkeswa sa non ou vle. Li nan konplètman abitrè ki sa sa non se. Ou ka non li anyen. Non li vole espageti, si ou te vle. ODYANS: Ki sa "w la" nan quotes pou? Oratè 1: "W a" se jis mòd nan. Se konsa, nou ap ekri nan sa a dosye. Tout moun sa ki bon? Klè? Wi. ODYANS: Se konsa, lè li ekri sa a ranpli, kote nou Lè sa a, jwenn ke dosye? Oratè 1: Li pral nan menm bagay la tou anyè ke w ap kounye a nan. Si w ap nan pset twa ak ou kouri sa a, ki nan pset ou twa katab a pwal sa a ranpli rele "Bonjou." Cool? Tout moun sa ki bon? Mwen santi mwen tankou w ap tout jwenn li, ki se gwo. OK. Se konsa, tounen nan show-- glise m ' Mwen renmen lè bagay sa yo travay. OK, bagèt Èske ou nèg eksite? Endikasyon yo se gwo. Yo pran yon ti jan yo vlope tèt ou alantou. Sa a se dezyèm ane mwen ansèyman endikasyon. Apre sa, mwen panse ke mwen finalman te resevwa li. Se konsa, si ou lite, li nan OK. Kòm mwen te di anvan, desen foto ede anpil ak bagay sa yo nan CS, kòm anpil jan mwen panse ke moun ki gen tandans yo panse oh, nou ap nan yon òdinatè. Nou ta dwe jis kòd. Foto desen No-- pral reyèlman ede ou. Apre sa, mwen reyèlman ankouraje w tiyo nan bò kindergartner ou epi pote soti kreyon koulè oswa makè ak trase. Paske li ap ede ou. Men, si ou wè m 'nan lè biwo louvri, Mwen yo pral pote alantou pil nan papye ak plim desen bagay sa yo soti. Se konsa, sitou ak bagèt desine foto. E mwen panse ke nou ap aktyèlman ale nan gen desen kèk foto isit la tou. Se konsa, ou nèg tout te rive nan wè Binky, sa a claymation bagay fre. Apre sa, nou panse ke li nan vrèman komik lè li te eksploze nan yon pakèt moun sou moso. Li nan kèk soulajman komik pou klas la. C [fèbl] gwo kapasite sa a pou kapab kontwole memwa. Lè li nan youn nan bagay ki ki vrèman fè li tankou yon lang pwisan. Men, avèk gwo pouvwa vini gwo responsablite. Epi bagay sa yo fou ka rive si ou pa fè atansyon. Se konsa, lè w ap itilize endikasyon, ou vle fè w ke ou reyèlman konprann ekzakteman ki sa ou ap fè. Èspere ke pwochen ti jan a ti kras nan tan ap ede ou reyèlman konprann endikasyon, Ki jan yo sèvi ak yo, ak kouman yo manipile yo. Se konsa, memwa mwen si ke nou te wè dyagram sa a anvan. Se konsa, sa a se jis yon dyagram senp nan ki jan bagay ta ka dwe estoke memwa. Se konsa, ou fondamantalman gen sa yo gwo ranje nan blòk yon sèl multiple se sa nou gen isit lan-- ti tay ogmantasyon pa youn chak fwa. Sa a se nan Egzagòn [fèbl] se konsa uit-ti jan blòk. Epi se chak blòk ki asosye ak kèk adrès ekzadesimal. Se konsa, si ou te janm wè nan 0x, ki nan jis notating ke li nan yon adrès ekzadesimal. Ou ka asime sa a vle di kèk adrès nan memwa. Nou ap pale de adrès memwa chak fwa ou wè ekzadesimal. Nou gen antye yo se varyab, flote yo se varyab ki magazen. Se konsa, antye antye magazen. Flote magazen flote. Se konsa, nou menm tou nou gen endikasyon ki adrès magazen memwa. Sa se yon sòt de kat. Endikasyon yo se sèlman pou adrès memwa. Se konsa, sa a, se tankou kalite ou a. Aparèy ou se 32-ti jan, ki vle di ki adrès memwa ou se kat bytes. Se konsa, nenpòt konsèy ke ou gen se tou pral fè kat bytes. Oswa lòt moun si li nan kat bytes, memwa se kat bytes. Endikasyon magazen memwa. Se poutèt sa, yo ap kat bytes. Cool-- jis vle ranfòse sa. Ou ta dwe jwenn komik sa a kounye a. Mwen pa konnen kijan anpil nan nou se fanatik xkcd, men mwen renmen xkcd. Li nan gwo. Tout dwa. Se konsa, kreye bagèt jan mwen te di, li nan bèl anpil jis renmen nenpòt lòt bagay. Ou gen yon kalite. Ou gen yon non. Dwa? Sa a ki sa nou gen la. [? Egzagòn?] Zetwal vle di li nan yon konsèy, ak Lè sa a tou sa ou vle yo rele li. Se konsa, kalite nan reprezante sa ou ka magazen. Tout dwa? Nan menm fason an ke si nou fè antye, nou konnen nou ap estoke yon Int la. Avèk yon konsèy, li kenbe yon adrès memwa. Men, sa ki sa vle di se that-- isit la nan kote yon desen ki pral vini nan sou la men. Se konsa, nan ka sa a, nou gen kèk value-- kite a di kat. Kat se nan adrès youn. OK? Youn premye Sa a isit la vle di ke li nan yon 2x konsèy. Dwa? Li nan kèk konsèy x. x pouvwa gen yon bagay, kèlkeswa sa. Kèlkeswa x is-- di x se kat. Li nan ale nan magazen an adrès memwa isit la. Se konsa, int, etwal, x-- sa a se kèk lòt plas nan memwa moun ki konnen sa sa a se. Men, li la pral nan magazen yon adrès isit la. Se konsa, sa a ta ka like-- nan ka sa a, kèlkeswa sa, se ki estoke nan 0x1-- tou sa se ki estoke nan adrès ki ki konsèy nou an kenbe, gen matche ak moute ak ki sa nou te deziyen. Se konsa, nan 0x1, nan ka sa a, sa a se x. Sa a ka sèlman janm gen yon Int pandan ke nou ap sèvi ak sa a. Menm jan an tou, si nou gen yon lòt 1y, kèlkeswa sa kote adrès estoke ak yon y gen yo dwe yon char-- menm bagay ak z. Nan menm fason an, nenpòt lè ou eseye ak fè intx egal 0.4, li a pral rele nan ou yo epi yo dwe tankou pa gen, ou te di ou te vle yon int. Sa a se sipoze yon int. One Stop ap eseye fè li yon flote. Se konsa, kite bagay sa yo gen sa yo vle yo dwe. Se pou bagay sa yo gen tèt yo. Se konsa, gwo bagay se jis tou sa di ki kalite konsèy li se, sa a, se sèlman nan Bagay ou ka magazen la. OK? Avèk pratik, menm jan ak semèn pase a, tout bagay sanble vrèman kalite abstrè. Nou pral fè kèk pratik. Li ta fè plis sans. Se konsa, indican ak dereferencing-- li nan vrèman enpòtan yo ka resevwa sa yo dwat. Mwen toujou gen rafrechi chak kounye a epi lè sa a. Ak mwen se tankou rete tann, ki yon sèl mwen vle? Se konsa, comercial a ap aktyèlman bay ou referans a oswa adrès la. Se konsa, li retounen adrès la nan se memwa nan yo ki varyab ki estoke. Se konsa, li k ap pase yo aktyèlman tounen vin jwenn nou yon ekzadesimal, tandiske dereferencing li se aktyèlman pral ba ou done a ki se ki estoke la. OK? Se konsa, nou ap ale nan gade nan yon egzanp reyèlman vit, oswa aktyèlman moute kap vini an. OK. Se konsa, nou gen panse reyèlman ak anpil atansyon sou sa a. Se konsa, isit la nou gen kèk nonb antye relatif x. Mwen pral eseye ak trase sa a soti nan pi bon an nan kapasite mwen. Se konsa, nou ap ale nan gen plas sa a x. Epi li estoke senk. Adrès li se 0x4. Cool? Tout bon. Se konsa, kounye a nou gen sa a konsèy. Li te sou isit la. Epi comercial a ap ban nou adrès la nan yon bagay. Se konsa, nan ka sa a, li nan adrès ki nan x. Ki sa ki se adrès ki nan x? 04-- ak konsèy sa a se nan 0x08. Cool? Se konsa, ou ka panse osijè de sa a konsèy, 04, jis lonje dwèt sou isit la. Apre sa, yo ap rele endikasyon paske kòm nou jwenn plis nan sa a, w ap ale nan wè montre nan bagay sa yo. Epi yon blòk montre nan yon lòt blòk pral fè yon anpil plis sans. Se konsa, isit la yo se de. Lè sa a, nou gen kèk kopi, ki se what-- 0x0c. Epi li k ap pase yo dèreferans konsèy nou an. Se konsa, sa li a di la a se OK, isit la nan konsèy nou an. Valè a li estoke se 0x04, Ak sa ki li nan di se ale nan adrès sa a ak di m 'sa ki nan nan li. Se konsa, sa a, se efektivman sa flèch sa a ap fè. Ou ka panse a sa a tankou zetwal ou. Se konsa, OK, lè nou fè zetwal, sa vle di swiv. Ale nan adrès sa a. Epi sa a, fondamantalman jis yo flèch sa a nan sa a ti moso memwa. Ak ban nou sa ki nan nan li, ki se 5. Li nan poukisa kopi nou an, se egal a 5. ki fè sans? nenpòt moun ki bezwen m 'yo ale nan sa ankò, oswa plis tou dousman? Ou vle m 'ale atravè li yon lòt fwa ankò? OK. Nou pral rdesine l 'ankò. Lè nou kòmanse, nou tout dakò nou gen kèk ti moso nan memwa sa a, se yon varyab x ke nou mete egal a 5. Nou pa kontwole kote li se nan memwa. Se konsa, plas sa a se jis abitrèman asiyen. Bon la? OK. Lè sa a, nou inisyalize yon konsèy nan yon int. Se poutèt sa li nan pèmèt yo lonje dwèt sou x paske nou gen yon int nan isit la. Nou gen yon lòt ti moso nan memwa paske sa a konsèy se yon varyab jis tankou nenpòt lòt bagay. Li nan abitrèman asiyen kèk espas nan memwa. Ak sa ki li estoke se adrès ki nan x. Comercial vle di adrès nan x. Se konsa, sa se adrès ki nan x? ODYANS: Se zero-- Oratè 1: 0x04. Se konsa, then-- yon dènye. Nou gen kèk copy-- ankò jis yon lòt varyab. Se konsa, kite a asiyen kèk kote abitrè. Apre sa, nou dèreferans konsèy nou an. Etwal la vle di ale nan la adrès ki estoke nan konsèy m 'yo. Manyè di m 'sa ki nan la. Se konsa, adrès la ki estoke nan konsèy nou an, se 0x04. Se konsa, nou ale nan adrès sa. Li nan lonje dwèt nan adrès sa. Ki sa ki nan sa a blòk andedan memwa? Li se yon senk. Se konsa, se sa ki nou bay kopi nou an. Tout moun sa ki bon? Fre. Foto Again--. Se konsa, swiv valè yo isit lan-- mwen se ale nan kite ou nèg panse osijè de sa a. Nou ka trase yon lòt foto. Men, mwen vle ou eseye ak rezon ki fè nan sa a sou pwòp ou a pou yon minit. Depi yo pa t 'bay nou yon adrès egzanp, Mwen jis pral fè comercial x-- ki ta dwe ede kondwi li lakay yo. Comercial vle di adrès. Se konsa, nan premye yon sèl, tout moun nan ale ak liy la an premye. Gen kèk x seri a five-- kèk plas o aza nan memwa. Int konsèy zetwal ki egal nan adrès ki nan x, dwa? Int konsèy zetwal kreye blòk sa a, rele l konsèy, ak asiyen li nan adrès ki nan x. Mwen se terib nan ampersands. Koulye a, sa n ap fè se nou di OK, dèreferans konsèy nou an. Se konsa, nou ale OK, sa ki nan nan konsèy nou an? Li nan comercial x. Ale nan comercial x ak mute li. Se konsa, kounye a, comercial x a pwal 35. Se konsa, fondamantalman, lè w ap dereferencing, ou ale OK. W ap ale nan fè desen foto tankou sa a. W ap ale nan fè desen flèch ou sou kote li ye. Se konsa, ale nan plas sa a nan memwa ak swa ban m 'ki tounen valè, oswa chanje li. Nan ka sa a, paske nou ap nan sa a valè, nou ap plase li nan dwe 35. Lè nou konsidere ke nan dènye a yon sèl, si w remake, nou yo te plase sa ki te nan isit la yon lòt bagay. Se konsa, yo gen tablo sa a pè. Li pa ke move. Ou nèg travay sou li. Mwen pral rale yo mete deyò sou tablo a. Nou pral ranpli l ansanm, OK? Se konsa, gen tan pwan kèk papye, gen tan pwan yon patnè, kòmanse travay. Mwen pral yo ka resevwa yon pi gwo moso nan lakre. Paske li nan pral fè yon anpil. OK. PROFESSOR: OK. Ann kòmanse ak premye ranje a. Nou pral kòmanse a, Lè sa a, ou nèg ka petèt travay nan kèk plis. OK. yon egal b fwa c Se konsa, sa se yon? Li pa yon kesyon Trick, mwen pwomèt. ELÈV: 4 fwa 5. PROFESSOR: 4 fwa 5. 20. Se konsa, sa ki nan b? ELÈV: 4. PROFESSOR: Lè c? ELÈV: 5. PROFESSOR: 5. Lè sa a, sa a se jis ale nan dwe comercial yon, comercial b, comercial c, dwa? Pa move. Li nan senp ase. OK. Se konsa, youn nan pwochen. Yon egal yon fwa c, nan ka nenpòt moun ki te abitye ak sa. Èske tout moun abitye ak fwa yo egal? OK, tout bagay sa a sa a se means-- steno pou yon egal yon fwa c. Ou kapab tou fè l 'ak divizyon, ak adisyon, ak soustraksyon. Ou kapab fè yon egal, oswa yon plis egal c vle di yon egal yon plis c, yon mwens egal c ta dwe yon egal yon mwens c. Se jis nan sik Massachusetts Institute of Technology. Se konsa, nan ka sa a, yon ki egal a yon fwa c ta ban nou ki sa? Yon fwa ankò, pa yon kesyon Trick. ELÈV: 100. PROFESSOR: 100. nenpòt lòt bagay chanje? No Petèt mwen pral finalman jwenn pi bon nan ampersands mwen. ELÈV: OK, regrèt, kijan ou te jwenn 100? PROFESSOR: OK. Se konsa, yon ki egal a yon fwa c, se konsa yon fwa c. ELÈV: Oh, w ap itilize yon pou previous-- la PROFESSOR: Wi. Se konsa, sa yo, se valè ki pi resan nou an. Sa yo se ki sa ou ta dwe lè l sèvi avèk kòm nou avanse pou pi desann, OK. Se konsa, b se sèlman bagay chanje a, dwa? Se konsa, kite a ranpli nan tout lòt bagay. B. Ki sa ki b ap pase yo dwe? Pou yo kapab oswa pa yo dwe. Se konsa, sa se sa a ap fè? Ki sa ki se yon zetwal la PA ap ​​fè? ELÈV: Kòd kote adrès la nan PA. ELÈV: Non, pa byen. Se konsa, sa a se yon referans d. ELÈV: Se konsa, b se valè men nan PA. PROFESSOR: Yeah, se konsa PA se adrès ki nan yon, dwa? Se konsa, li di ale nan kote yon se ki estoke epi remèt li ki valè. Se konsa, sa a se b? ELÈV: 100. PROFESSOR: 100. Pafè. OK, se konsa pc se sa k ap chanje. Tout lòt bagay rete menm bagay la. Ki sa ki pc pral fè? Senp plasman. Pc ki egal a PA, ak sa ki PA? ELÈV: comercial yon. PROFESSOR: pafè. Koulye a, nou ap vin enteresan. OK, se pou yo kraze yon sèl sa a desann. Premyèman, sa ki nan b fwa c, paske sa a, se pati nan fasil nan yon sèl sa a, dwa? B fwa c is-- ELÈV: 500. PROFESSOR: Yeah, se konsa ki sa ki yon sèl sa a fè, si li nan zetwal pb, sa ki chanje? ELÈV: Ki sa ki nan the-- PROFESSOR: Ki sa ki nan b? ELÈV: Ki sa ki nan nan espas ki la ki pb ap montre yo. PROFESSOR: Lè pb ap montre to-- ELÈV: B. PROFESSOR: B. Se konsa, sèlman nan Bagay chanje se b, dwat. Se konsa, b fwa c, 500. Se konsa, se sa ki chanje kounye a. Fre. Lovely. Ou nèg yo ap fè gwo. Tout dwa, kraze sa a desann yon sèl. C ap chanje, dwa? Se konsa, nou ka ranpli nan tout lòt bagay. Ann wè. OK. Nou konnen ke c a pwal nan pwodwi nan de nonb, dwa? Ki sa ki de nonb, menm si? ELÈV: A ak c? PROFESSOR: Se konsa, yon se dwa pou yon sèl la an premye. Se konsa, nou ap ta indican p nan yon, dwa? P nan yon pwen nan yon, se konsa nou konnen ke sa a se pral yo dwe 100 fwa ki sa? Times ki sa ki pwen pc? Pwen nan yon. Se konsa, 100 fwa 100 se 10,000. Èske sa fè sans? Fre. Detire Kay, mesye, dènye ranje. OK. Ki sa ki nan chanje isit la? ELÈV: A. PROFESSOR: A. Pafè, se konsa tout lòt bagay ka rete menm bagay la. OK. Ak sa ki se yon? Se konsa, li yon fwa ki sa? Sa a se yon zetwal pb. Se konsa, zetwal pb vle di isit la nan pb, pwen pb b. ELÈV: 500. PROFESSOR: 500. Se konsa, nou gen 500 fwa 100. Sa a 50,000. Wou! Gade nan sa. ELÈV: Poukisa nou gen c a & pou last-- la PROFESSOR: Padon. ELÈV: Oh, OK. PROFESSOR: move mwen. Lots of ekri. Tout moun sa ki bon? Pa twò move, dwa? Jis pran yon ti kras pandan y ap nan travay nan. Si ou kraze li desann, konprann sa chak pati se refere li kòm to-- ak tout bagay li nan, yes-- kraze li desann nan ti kras nan pwoblèm ak Lè sa a rkonbin, epi ou ka fè kèk bagay pè. Gen repons yo, men nou te fè sa. Aritmetik konsèy. Ah. Men m ', yo tout Chalker. Se konsa, ajoute oswa soustraksyon Int ajiste konsèy la pa gwosè a nan kalite a nan konsèy. Sonje kijan tout kalite gen yon gwosè diferan? Se konsa, tankou yon doub oswa yon long lontan se uit ak int se kat men Char se youn. Se konsa, sa ou vle fè is-- yon sèl bagay yo sonje se jis ke konbyen lajan ou valè konsèy aktyèlman chanje pral depann de la di ki kalite konsèy li ye. Tout moun bon ak sa a? Èske mwen ka efase li? Nou bon? Awesome. Se konsa, si nou gen kèk konsèy that-- sa a ki pral be-- mwen se pral fè li yon konsèy Int. Li magazen sa a. Si ou te di konsèy plis yon, ki sa li la pral fè se li k ap pase yo ajou li pa gwosè a nan yon int paske se sa a di ki kalite konsèy li ye. Avèk C, tout bagay se trè sevè ak réglementé. Konsèy la Int ki pral mete ajou pa kantite lajan an nan espas yon int ta pran. Yon int se kat bytes. Se konsa, sa ki ta sa a vire nan? W ap sèlman ajoute kat sou sa a. Koulye a, konsèy ou ta be-- OK. Se konsa, si li te yon Char e nou te konsèy plis yon, sa ki ta li dwe kounye a? Si li started-- samblan nou started-- kounye a li nan 0x08. Se pou nou kounye a di ke sa a te yon Char konsèy, epi nou te ajoute yon sèl. Ki sa ki li ta ka chanje? Konbyen bytes se yon Char? ODYANS: Yon. Oratè 1: Yon. ODYANS: Se konsa 0x09. Oratè 1: Se konsa, li ta nèf. Se konsa, jis yon bagay yo sonje. Jis lè ou ajoute yon sèl, li nan pa ajoute yon sof si li nan yon Char. Li nan pandan l ajoute ki jan anpil bytes kalite a ke li se, ki se poukisa nou gen ekwasyon sa a moute isit la. Se konsa, li fwa Int gwosè a de ki kalite konsèy. Se konsa, nou gen egzanp lan isit la. y te asiyen nan ki valè, 0x4, lè nou te fè y plis egal yon sèl. Ki sa ki nan nan li, sa ki nan nan x, pa chanje. Ki sa chanjman se sa ki nan nan y. Adrès postal la ki estoke nan y mete ajou pa kat paske gen kat bytes nan yon int ak li nan yon konsèy Int. Tout dwa. Se konsa, kounye a nou gen yon lòt fè egzèsis. Se konsa, kesyon an se ki sa ki pral enprime. Nenpòt lide? ODYANS: Nimewo a nan karaktè nan kè kontan chat? Oratè 1: Egzakteman. Se konsa, renmen ak fisèl ou. tout moun jwenn sa? nou vle mache nan li? Wi, OK. Se konsa, sa nou gen isit lan-- mwen tankou sa a anpil plis. Mwen pa gen [Fèbl] ridikulousli. Se konsa, nou gen fisèl nou an isit la, kontan chat. Lovely. Nou gen kèk vann san preskripsyon ki nou ap kenbe tras nan. Se konsa, nou gen kèk konsèy * Char ki jis se mete egal a Str. Ki sa ki sa a ap fè se li nan plase kèk konsèy nan konmansman an nan fisèl ou. Paske mwen si ke, kòm li te mansyone nan konferans, nou te bay ou nèg sa a kalite done yo rele fisèl. Men, reyèlman strings yo se jis yon etalaj of-- tankou * Char. Li se yon konsèy nan yon pakèt moun sou karaktè ki vwazen nan memwa. Se konsa, sa a jis kouche li egal a nenpòt ki fisèl se idantifye pa kote premye karaktè li yo se. Se konsa, sa a se jis mete kèk pwen egal a nan konmansman an nan fisèl la. Tout moun bon a? Fre. Se konsa, sa a se dereferencing konsèy nou an. Se konsa, li la aktyèlman ale nan ban nou kèk valè nan isit la, nan fisèl nou an ke nou ap pale. Apre sa, nou ap di osi lontan ke li pa nil Terminator. Se konsa, kenbe prale jiskaske w jwenn nan fen a nan fisèl la. Mete ajou konsèy ou pa youn. Se konsa, r, li pral mete ajou aktyèlman pa youn chak fwa paske sa a se yon Char, Char * a. Se konsa, li k ap pase yo ale nan. Li nan ale nan aktyalizasyon. Se konsa, premye fwa a sa a kouri, li nan pral fè isit la nan h. Li nan ale nan aktyalizasyon. Li pral yon yon. Li pral gen yon p, y, ak sou sa ak pou fè. Nou pral mete ajou vann san preskripsyon. Lè li rive nan fen a, li jis simagri ki jan lwen li nan vinn. Wi. ODYANS: Se konsa Li konte espas ki la kòm youn, dwa? OK. Oratè 1: Panse sa. Eske se sa ke yon question-- ODYANS: [fèbl]. Oratè 1: Pa gen enkyetid. Sa a mwen fè sa. Tout dwa, se konsa yon sèl bagay mwen konprann se ke ak yon etalaj, ou ka tou trete li kòm yon konsèy paske ranje yo se jis tach kontinyèl nan memwa. Se konsa, ou ka trete li menm jan an. Ou ka manipile yo ak endikasyon, tou. Se konsa, olye pou yo fè, nan sa a ka, bagay la analoji ta dwe etalaj 0 egal 1. Men, nan menm fason an ke se yon kòd detèmine pa kòmanse nan kote premye karaktè li yo se, se yon etalaj detèmine pa kote eleman premye li yo se. Paske nou konnen, nou ap garanti, ke sa yo yo pral yo dwe kontinyèl blòk nan memwa. Sa a ki sa pèmèt nou fè sa. Nou konnen yo ap kontinyèl blòk nan memwa. Se konsa, nan ka sa a, pa dereferencing jis etalaj, ki di nou, OK, ale nan kòmansman an nan etalaj ou a, ki se isit la. Se konsa, ou ka mete l 'egal a yon sèl. Ak nan ka sa a, tou sa etalaj ou di ki kalite se, lè ou mete li pa youn, sa a, se jis tankou à li nan endèks la kap vini an. Ou ka fè sa paske ou konnen ki sa a nan etalaj ou a. Se konsa, li konnen ki jan anpil yo aktyalizasyon konsèy ou pa, sa ki adrès yo mete ajou li nan se konsa ki w ap nan plas la kap vini an. Se konsa, sa a se jis yon fason diferan nan ekri etalaj 0 egal 1, etalaj 1 egal 2, etalaj bracket 2 egal 3. Se jis nan yon lòt fason yo panse sou li. Yo paske yo te kontinyèl blòk nan memwa, ou ka al gade nan yo pou yo swa pa etalaj la Notasyon ki Mwen pèsonèlman jwenn easier-- men petèt ou bezwen manipile li estrikteman pa adrès memwa. Lè sa a se wout la ou ta fè sa. Kalite plis nan tankou yon bagay fre ou ta ka fè kont petèt pa yon bagay w ap aktyèlman ale nan aplike. Mwen sèvi ak li nan 61. Ou nèg pwobableman pa bezwen enkyete sou li twòp. Men, si w ap enterese, pran 61 ane pwochèn. Nou ap nan mesye yo detire lakay yo. Mwen konnen, li nan long. Dinamik memwa Allocation-- konsa nou konnen ke yon moun de bagay sa yo lè nou te pale pandan premye seksyon nou an ansanm, nou te gade yon swap fonksyon kote li te deyò sijè ki abòde lan fonksyon prensipal nou an. Epi nou te pase nan valè sa yo ki te efektivman kopi. E yon fwa swap fini egzekite, li jis kite yon chemine. Sonje, nou gen yon pile ankadreman pou swap. Li kite ak moun valè kite avèk li. Apre sa, yo te deja ale. Nou pa t 'kapab fè anyen avèk yo epi nou te tris paske nou pa kapab swap valè nou yo. Men, avèk C, kòm mwen mansyone, ou gen yon anpil nan pouvwa sou memwa. Se konsa, sa ou ka fè se ou ka asiyen bagay sou pil wòch la isit la ki pral rete la jouk lè ou di yo otreman. Yo ap tankou yon timoun bon. Yo rete la. Yo pa kite kay la. Yo pral rete la jouk lè w ap tankou, OK, ou ka ale. Lè nou konsidere ke bagay sa yo sou chemine a, who-- yo ap tankou yon timoun vakabon. Yo pral jis kouri byen lwen lè ou vle yo dwe la ak Lè sa a yo ap ale. Ou pa ka jwenn yo tounen. Se konsa, pil wòch la is-- nou ap ale nan pale sou malok ak gratis, ki Mwen si ke ou nèg tande pale sou nan konferans. Epi sa a, fondamantalman yon fason gen done trè pèsistan. Se konsa, ou kapab kenbe done yo alantou osi lontan ke ou vle. MHM. ODYANS: Èske ou ka defini pil wòch Et pile? Èske yo renmen kote yo mete bagay sa yo? Oratè 1: Se konsa, yo ap fondamantalman just-- yo ap wout la nou al gade jis yo memwa. Se konsa, pil wòch se jis mete kote se memwa resevwa lajan dynamique, Lè nou konsidere ke pil refere plis nan chemine ankadreman ki gen plis santral nan la fonksyon ki yo aktyèlman kouri. Ou pa vrèman gen kontwòl. Gwo diférans la sè, ou gen kontwòl sou pil wòch la si ou vle. Ou gen mwens kontwòl sou chemine a. Chemine a depann sou la fonksyon ki ap kouri, ak lòd a nan kote yo yo se kouri, ak ki jan bagay yo ap retounen. Lè nou konsidere ke ak pil wòch la, kòm nou pral wè, ou ka di, OK, mwen vle sa a valè yo dwe otou jiskaske mwen di ou otreman. Ou pa gen dwa yo debarase m de li. Ou pa ap pèmèt yo pase sou desizyon li. W ap ale nan kenbe l 'bò kote pou osi lontan ke m'ap di nou. Ou jwenn yo dwe bòs nan travay la nan pil wòch la, Lè nou konsidere ke nan stack-- petèt si ou tankou finagle fason ou ou kapab bòs nan travay la. Men li pa byen. Lè li nan vrèman jis memwa. Se jis nan diferan fason nan refere li a memwa. Fre. Se konsa, avèk ki, Ki jan yo kontwole memwa ou. Li nan ak malok, ki w ap ale nan jwenn yo sèvi ak. Se konsa, li jis kout pou alokasyon memwa. Sa a tout li ye. Genyen nan yon pakèt moun sou lòt fre fonksyon ki gen alok nan fen a, epi yo kanpe pou bagay diferan. Se konsa, lè ou bezwen depo ki bezwen survivre fonksyon ou ye kounye a se konsa ke lè ou ye kounye a fonksyon kouri ale, ou toujou gen done a ke ou te resevwa nan men li, ou vle sèvi ak malok. Sa pral inisyalize li sou pil la. Li te tankou m 'te di ak kenbe li di, ou pral kenbe l 'gen jiskaske ou di li otreman, ki se bagay la enpòtan isit la. Se konsa, yon sèl bagay a yon avi, epi sa a, se tipikman vrèman enpòtan, se ke sa a sizof se super itil yo sèvi ak paske depann sou kalite a nan machin w ap kouri, li ka gen divès kantite lajan nan memwa ki li pran. Se konsa, ou toujou vle sèvi ak gwosè nan sa ke w ap pa machin depandan, se konsa ke kòd ou a pral kouri sou nenpòt machin. Epi sa a, jis yon pati nan ekri bon kòd. Si li ap travay sou yon sèl machin, men se pa nenpòt nan lòt moun yo, ki jan itil te pwogram ou an? Se konsa, ou toujou vle asire w epi sèvi ak sizof. ODYANS: Se konsa se ke renmen an gwosè nan 10 pous [fèbl]? Oratè 1: Sa a se gwosè a nan 10 antye. yeah. Se konsa, gwosè nan antye ap retounen konbyen lajan yon sèl Int pran. Oswa gwosè nan Char, ki jan pi fè yon sèl Char pran. Lè sa a, ki jan anpil blòk nan ki ou vle a? Se konsa, nan ka sa a, nou vle yon bagay ke nou ka magazen 10 antye. Epi li pral travay kèlkeswa nan machin, ki se fre. Se konsa, konbyen bytes pral ki aktyèlman ba ou? Quick Matematik. ODYANS: 40. Oratè 1: 40. Egzakteman. Se konsa, yon lòt bagay gwo. Pointer oswa malok ka retounen nil. Se konsa, ankò, toujou tcheke yo wè si li retounen nil anvan ou eseye epi fè anyen ak li. Si ou eseye epi dèreferans sa a konsèy kounye a, li nan jis ale nan segfault paske ou te ale e yo te eseye ou manyen nil lè ou pa ta dwe gen. Se konsa, toujou tcheke pou nil. Yon fwa ankò, tout sa ou kapab fè. Li ta ka retounen nil. Li pral retounen nil si w ap swa soti nan espas, oswa pou kèlkeswa rezon li pran kouri nan kèk ensèk memwa. Li pafwa jis retounen nil. Se konsa, ou jis gen yo tcheke pou li. Sa a tout glise sa a ap di. Lè sa a, sa nou genyen isit la se yon apèl yo gratis. Se konsa, nan menm fason an ke si ou louvri yon dosye ou dwe fèmen yon dosye, si ou malok memwa, ou dwe ou libere ki memwa. Epi ou nèg pral jwenn fè bagay vrèman fre. Apre sa, nan yon pwogram ou ka kouri wè si w ap janm koule memwa. Men, ou pa vle genyen fuit memwa. Li nan reyèlman move. Jis dezòd yo bagay sa yo. Li nan move yo fè jis tankou pwogram ki gen bon konprann pou efikasite konsepsyon. Men, li la tou jis kalite nan move pou òdinatè ou. Bagay Se konsa, jis gratis lè ou malok yo. Ou nèg wè simetri yo isit la. Super senp. Jis gratis ak Lè sa a, tou sa konsèy ou, tou sa non an nan konsèy ou a se, epi li pral pran swen nan libere li pou ou. Fre. Lè sa a, nou gen sa a. Se konsa, nou ap jis ale nan mache nan pwogram sa a. Lè sa a, ou nèg ap fè. Se konsa, [fèbl] jis prensipal la. Se konsa, nou gen kèk konsèy int *. Se konsa, nou gen yon konsèy ki k ap pase yo kenbe antye. Ak konbyen antye se li ale nan kenbe? Jis yon sèl. Kantite moun ki nan yon int. Nou tcheke yo wè si konsèy se nil paske li se, nou vle di pa fè anyen. Li nan move. Se konsa, nou enprime kèk erè soti nan memwa, pi souvan retounen 1, kòm ou nèg yo te itilize. Lè sa a, nou gen isit la, nou dèreferans konsèy nou an. Se konsa, sa vle di nou ap ale nan magazen yon bagay nan kote a ban nou. Int * konsèy, oswa malok, retounen nan adrès nan kote li mete sou kote sa a memwa pou ou. Se konsa, li fondamantalman ban nou like-- si ou panse osijè de yon pakèt moun sou kay nan yon katye ke ou vle mete nan mèb ou, malok se tankou OK, ou jwenn pou yo ale nan kay twa. Epi li ba ou a adrès nan kay twa. Se konsa, sa a kounye a, sa a konsèy magazen yon adrès, estoke adrès la nan kay ou. * Ptr vle di, OK, mwen se nan kay mwen an. Fre. Mwen bezwen jwenn kèk nonb antye relatif. Se konsa, ou ap mande pou yon moun ba ou mèb kounye a. Se konsa, ou jwenn kèk Int. Epi li mete l 'nan konsèy ou kote li lonje dwèt yo. Lè sa a, li jis simagri soti, ou te antre nan tout kote. Epi ankò, referans a. Se konsa, sa a se tankou ou te ale nan sa a adrès ak ou te wè sa ki te la. Cool? Lè sa a, nan kou nou libere konsèy nou an. Pa bliye fè libere konsèy ou. pa bliye tcheke pou nil. Pa bliye fè libere konsèy ou. Ou gen de bagay ou sonje soti nan sa a, oswa ke ou ta dwe sonje. Wi. ODYANS: [fèbl] bagay tankou sa yo, nan la * Char. Kouman vini nou pa janm libere sa yo? Oratè 1: Hm? ODYANS: Èske moun tankou strings? Ou te di strings yo jis tankou Char * s, dwa? Se konsa, poukisa pa nou libere strings? Oratè 1: Ou sèlman gratis si w ap mallocing. ODYANS: Oh, si w ap mallocing. Oratè 1: Se konsa, malok ak gratis de bagay ke ou ta dwe toujou gen ansanm. f louvri, f fèmen, de bagay ou ta dwe gen yo ansanm. Nan de ka sa yo, tcheke pou nil. Wi. ODYANS: Se konsa gratis se jis sa ki pèmèt yon lòt bagay yo dwe estoke gen apre Pwogram sa a itilize li? Oratè 1: Li nan jis li di: OK, mwen fè ak sa a. Ou pa bezwen kenbe l 'alantou. Sinon òdinatè w lan pral jis renmen eseye epi kenbe l 'la. Lè sa a, ou can't-- li kouri nan pwoblèm memwa pita. Ou toujou vle libere li paske li di òdinatè w lan, OK, mwen se fè ak plas sa a nan memwa. Ou ka gen l 'tounen pou mwen pou m sèvi ak pita. Cool? Wi. ODYANS: Se konsa, nou itilize% d nan jis paske yon doub ki nan vini tounen, oswa poukisa is-- [fèbl]. ODYANS: Èske ou ka sèvi ak% mwen? Oratè 1: Ou ka itilize% mwen. Nenpòt kesyon minit sot pase a? Ale pi devan. ODYANS: Mwen jis gen yon kesyon rapid. Se konsa, varyab la ptr, that's-- tankou, ak int * ptr = malok a, ki nan jis di li nan montre nan yon plas nan memwa Oratè 1: Èske ou vle [fèbl]? ODYANS: --that nan la gwosè of-- pa gen okenn, li nan OK. Men, li la jis montre nan yon plas nan memwa sa a, se jis tankou kat bytes. Oratè 1: Dwa. Se konsa, malok gwosè a nan int di, OK, mwen pral ale kouri koupe, jwenn kat bytes nan memwa pou ou. Lè li jwenn ke kat bytes nan memwa, li ba ou tounen adrès la nan kote li kòmanse, ak se sa ki estoke nan konsèy, oswa ptr. Bon. Ou nèg gade mwens konfonn pase sa pifò moun lè m 'pale sou konsèy, se konsa mwen santi trè bon kounye a. Tout dwa. Kòm toujou, ou nèg ta dwe gen tout vinn klas pset2 ou pa kounye a. Mwen konnen te gen kèk bankal bagay kote li di, fòmil pa valab oswa yon bagay. Si w ap vin ki, nan tout klas ou yo valab sou bò m 'yo. Se konsa, mwen ka voye ba ou Ekran nan klas ou yo. Jis kite m 'konnen kòm byen si w ap manke nenpòt ki klas oswa yon bagay pa sanble yo fè sans. Vini jwenn mwen. Mwen te super fyè de ou mesye deja, pou kenbe li. Epi gen yon rès bon nan semèn ou yo. Mwen si ke mwen pral wè kèk nan nou nan lè biwo louvri.