[Daqq tal-mużika] DAVID J. Malan: Dan huwa simili seminar freshman llum. KOLLOX SEW. Allura ħafna xita out. Dan x'aktarx li jseħħ nhar ta 'Erbgħa, iżda kollha l-opportunità aktar għall-mistoqsijiet llum. Mela ejja nibdew off fil-fatt mal-film fi ftit mument. Iżda aħna ser tibda grandly kif dejjem. Dan huwa CS50, u dan hija t-tmiem tal-4 ġimgħa. Mela jekk inti stajt qatt jarah TV jew fejn movie hemm xi esperti tal-kompjuter u il-pulizija, jew FBI, jew xi aġenzija qed jippruvaw jaqbdu xi avversarju, ukoll, inti stajt probabbilment jinstemgħu l-espressjoni "ittejjeb," fejn dik tekniku b'xi mod magically zooms fi infinitament s'issa biex tara l-kriminali identità jew in-numru pjanċa liċenzja anke l-shimmer ta 'mera jew l-glint ta 'għajnejn ta' xi ħadd. Allura fil-fatt, ejja tagħti ħarsa lejn ftit xeni bħal dawn minn Hollywood. [Daqq video] -OK, Issa ejja tikseb ħarsa tajba fi inti. -Hold Dan. Mexxi dak lura. -Stenna minuta. Mur dritt. -Hemm, Friża dan. Screen Full. -OK, Friża dan. -Tighten Fuq dik, ser ikollok? -Vector F'dak is- Guy mir-rota lura. -Zoom Fl-dritt hawn fuq dan il-post. -Bil L-apparat dritt, l-immaġni jista 'jiġi estiż u inċiżiv. -Dak X'inhu? -Hija L programm titjib. -Jista Inti ċar li up xi? -I Do not know. Ejja ittejjeb dan. A6 -Enhance taqsima. -I Msaħħa l-dettall, and-- Naħseb li hemm biżżejjed biex ittejjeb, jgħadduha lill-iskrin tiegħi. -I Msaħħa l riflessjoni fl-għajnejn tagħha. -Let S run dan permezz video titjib. -Edgar, Inti tista ttejjeb dan? -Żomm. -I've Ilhom jaħdmu fuq din ir-riflessjoni. Riflessjoni -Someone s. -Reflection. -Hemm L riflessjoni tal-wiċċ tar-raġel. Riflessjoni -Il. -Hemm L riflessjoni. -Zoom Fuq il-mera. 'Tista' tara riflessjoni. -Jista Inti jsaħħu d-dehra minn hawn? -Jista Inti ittejjeb lilu dritt hawn? -Jista Inti ittejjeb dan? Inti tista 'ttejjeb it? -Jista Aħna ittejjeb dan? -Jista Inti ittejjeb dan? -Hold Fuq it-tieni, I ser itejbu. -Zoom Fuq il-bieb. -Times 10. -Zoom. -Move In. -Aktar. -Wait, Stop. Stop. -Pause Dan. Dawwar il us 75 gradi madwar il-vertikali, jekk jogħġbok. Stop. Mur lura għall-parti dwar il-bieb, għal darb'oħra. -Got Enhancer immaġni li jistgħu Bitmap? -Hey, Forsi nistgħu nużaw l Pradeep Metodu sen biex tara fil-twieqi. Software -Dan huwa state of the art. -Il Eigenvalue huwa off. -Bil-Dritt kombinazzjoni ta 'algorithm-- Meħuda eliminazzjoni -He ta algoritmi għal-livell li jmiss, u I jistgħu jużawhom biex jsaħħu din ritratt. -Lock Fuq u tkabbar l-assi z. -Enhance. -Enhance. -Enhance. -Freeze U jtejbu. [END Daqq] DAVID J. Malan: Kull dritt, hekk kollha ta 'dawn huma attwalment kliem. Huma qed biss midmum flimkien mod li mhux attwalment sensibbli. U, fil-fatt, CS50 u korsijiet bhalu tendenza li rovina ħafna TV u films għalik. Għaliex meta dawk l-esperti tal-kompjuter huma jinstemgħu off termini u qal affarijiet fancy bħal eigenvectors, u l-assi z, u kull numru ta 'ieħor fil-fatt termini aktar tekniċi, dawn qed verament ftit stringing kliem flimkien spiss. Hija li waħda mill tamiet tagħna hija li, bħala effett sekondarju ta 'teħid korsijiet bħal dan, se aktar nies fil- dinja effettivament ikun jista 'iżen fil u biss dejjem hekk ftit jinfluwenzaw il- kwalità u l-preċiżjoni ta 'dawk il-films? Fil-fatt, ejja tagħti ħarsa lejn realtà. Allura hawnhekk huwa l-ritratt persunal ta ' Marija, wieħed mill-fellows tagħlim tagħna. U jissoponi hi suspettati ta 'xi ħaġa. And yet, hemm glimmer ta xi biċċa ta 'prova fl-għajnejn tagħha, jew fir-riflessjoni ta 'nuċċalijiet tagħha. Ukoll, jekk nagħmlu eżattament kif il-films tipproponi, fejn aħna zoom u "jtejbu", dan huwa kemm l-informazzjoni huwa fil-wiċċ Marija meta inti qbid immaġni ma 'dik ir-riżoluzzjoni oriġinali. U, fil-fatt, tista 'tara dawn tikek. U dawn huma liema huma imsejħa pixels, P-I-X-E-L-S, li huwa biss kwadru tipikament li huwa dot li composés immaġini. U lura fil-ġurnata, u fil-fatt anke illum ma 'wħud mill-lum LED TVs jew LCD TVs, jekk inti ħadthom ltqajna wieħed fil-kamra tiegħek jew id-dar, jekk inti tmur up super qrib tiegħu, u speċjalment jekk din hija TV kemmxejn anzjani, inti tista 'probabbilment anki tara dawn tikek u dan huwa dak compose immaġini. Ukoll, mhemmx iktar informazzjoni minn dan. Nistgħu "itejbu", fis-sens ta ' smoothing affarijiet aktar u tip ta ' ddeduċiet tip ta ', sort ta' dak li kulur għandu jkun ħdejn il-għajn Marija b'tali mod li mhuwiex fil-fatt hekk pixelated. Imma jekk I iżommu zooming, hemm huwa l-Guy ħażina fl-għajnejn tagħha. Bħal dik hija l- informazzjoni li għandna. Inti ma tistax toħloq informazzjoni ta 'xejn. Hemm biss finit numru ta 'bits hemmhekk. Għalhekk fl Problem Set 4, fejn għandek l-opportunità jilagħbu ma 'dan it-tip tad-dinja. Fil Set 4 Problem, inti ser tesplora l- dinja ta 'grafika, u l-forensika, u fil-fatt jikteb il-kodiċi li jirkupra immaġini mitlufa. Int ser ikollok jikteb il-kodiċi li jimmanipula immaġini eżistenti u finalment jifhmu x'hemm għaddej taħt il-barnuża. U, jirriżulta, huwa attwalment mhux kollha li ikkumplikata. Per eżempju, jekk ridna li jirrappreżentaw wiċċ smiley fejn ma 'dawn pixels iswed, jew dawn tikek suwed, ukoll, nistgħu sempliċiment jirrappreżentaw bħala verament Bitmap. U jekk inti kienu qatt semgħu li Bitmap espressjoni, forsi issa jibda jagħmel ftit aktar sens illum. Aħna diġà jafu liema daqsxejn hu. Li għamilhom 0 jew 1. U mappa huwa biss xi ħaġa bħal biċċa karta li jagħtik direzzjonijiet u għandha forsi grilja ta 'x- u y-koordinati. Allura hawnhekk hija Bitmap. Huwa mappa ta 'bits li biha 1 huwa apparentement ser jirrappreżenta pixel abjad, u 0 se jirrappreżenta pixel iswed. Iżda nistgħu ċertament flip madwar. Hija ma verament kwistjoni daqshekk Sakemm aħna qed konsistenti. U hawn huwa kif, fil binary-- ġewwa tal-memorja tal-kompjuter, jew saħansitra ġewwa ta 'fajl fuq hard tiegħek drive-- tista int taħżen l-aktar sempliċi ta 'immaġini wiċċ smiley. Imma dak li aħna, naturalment, nieqsa din id-dehra? Kulur, id-dritt? Huwa pass ovvju li jmiss jew titjib biex ittejjeb din bil-kulur. Allura sfortunatament biss bi wieħed bit, 0 jew 1, nistgħu jirrappreżentaw kulur. Dan jista 'jkun aħmar, jew blu, jew iswed, jew abjad, jew aħdar, jew roża, jew xi pari ta 'kuluri. Iżda għall-finijiet ta 'sempliċità, aħna ser biss wieħed jassumi iswed u abjad. Allura dak li loġikament għandna bżonn jekk irridu jridu jimplimentaw kulur ta 'immaġni? What do għandna nagħmlu? Simili jekk il-fattur li jillimita hawn hija li ma 'wieħed ftit inti tista' biss jirrappreżentaw żewġ stati, 0 jew 1, abjad jew iswed, dak li inti trid tagħmel? Udjenza: Aktar data. DAVID J. Malan: Aktar bits, yeah data aktar, aktar bits. U, tabilħaqq, dan huwa eżattament kif immaġini bil-kulur huma rappreżentati. Pjuttost milli jużaw daqsxejn waħda, 0 jew 1 għal kull pixel, kull dot, inti biss tuża multiplu. Forsi l-użu 8, forsi, aktar komunement użu 24, u tabilħaqq, fl Problem Set 4, ser ikollok tilgħab ma 'fajl format li juża 24 bits tipikament. Iżda ħafna inti probabilment familjari ma 'JPEGs. Jekk inti stajt qatt jittieħdu ritratt fuq il-mobile tiegħek, jew imtella jew jidhru xi ħaġa fuq Facebook, jew Flickr, kwalunkwe numru ta 'websajts bbażati fuq ritratt, inti stajt probabbilment jidhru immaġni JPEG qabel. U jirriżulta li, dan huwa l-fajl format aħna qed tmur għall-użu fl PSet 4, fejn inti qed tmur biex huma obbligati li jirkupraw stampi li stajt aċċidentalment mħassra minn korrotta karta tal-memorja fil-camera, jekk inti se. U jirriżulta li għalkemm JPEG hija pjuttost sophisticated-- huwa ħafna aktar sofistikata mill-tikek suwed u bojod rajna mument ilu, għaliex hemm algoritmi attwalment fancy li huma użati biex jikkompressa JPEG, hekk li inti jista 'jkollhom tassew sbieħ, stampa ta 'kwalità iżda bl-użu relattivament ftit bits. U aħna ser terga 'lura għal kompressjoni qabel fit-tul. Jirriżulta li l-ewwel tliet bytes fil-image-- JPEG ebda kwistjoni dak li inti ħadt ritratt of-- huma l-valuri 255, 216, 255. Fi kliem ieħor, jekk inti biss tara li mudell ta 'bits, rrappreżentati hawnhekk kif tlieta bytes, jew 24 bits totali, bi probabbiltà għolja tista 'tiddeduċi li inti qiegħed tfittex lejn dan il--ewwel tliet bytes ta 'JPEG. U dan huwa dak magħruf bħala l-iffirmar ta 'JPEG. A lott ta 'formats tal-fajls hemmhekk għandhom tendenza li tibda ma 'ċerti mudelli ta' 0s u 1s, hekk li l-Windows, u Mac OS, u IOS, u Android taf x'tip ta 'fajl li huma, minbarra l-fajl hekk imsejħa estensjoni li ħafna ta 'fajls jkollhom. Jekk għandek jpg, li clue ieħor għall-kompjuter. Mela ejja issa nħarsu lejn din ftit aktar teknikament. Nafu l-deċimali sistema hija 0 sa 9. Nafu binarju huwa ta '0 u 1. U jekk taħseb lura għall PSet 0, kellna inti wrestle ma ', għal xi ftit, xi ħaġa imsejħa hexadeċimali, fejn inti għandek 16-il ċifra, minflok 10 jew minflok 2. U dawk ċifri, b'konvenzjoni, huma 0 sa 9 u mbagħad permezz f, fejn f jirrappreżenta dak numru deċimali, biss bħala sanità malajr check? Allura, 15. U għandu jirrappreżenta 10, biss billi natura tal-ordni li stajt mogħtija. Huwa biss konvenzjoni arbitrarja, imma hija pjuttost standard. Mela jekk inħarsu lejn dan il-mudell ta 'tlieta bytes-- ejja biss jibdew tħares lejn din fil b'mod konsistenti mal-mod kif xjenzjati tal-kompjuter ġeneralment tħares lejn u jaħsbu dwar fajls. Inti tista 'ċertament taħseb dwar fajls fil 0s, u 1s, u ċifra deċimali, iżda fir-realtà, għandna t-tendenza li jużaw binarja jew aktar li tipikament hexadecimal-- lura mill PSet 0. So let me jipproponi li 255, 216, u 255 huma biss dawn it-tendenzi ta 0s u 1s. U inti tista 'tivverifika dan jekk inti trid tagħmel l-matematika minn f'Ġimgħa 0. Iżda, għal issa, biss wieħed jassumi li dan huwa verament korretta. Stajt biss miktuba mill-ġdid tliet deċimali numri bħala tliet valuri binarja. Issa dak li jien ser tagħmel hu li biss żid ftit spazju abjad, biss għall-finijiet leġibbiltà tal. U avviż, jien biss ser li l-affarijiet jimxu bogħod minn xulxin. Allura qabel, wara, qabel, wara. Li qed nagħmel xejn interessanti oħra minn sempliċiment tixrid affarijiet out hekk l-avviż kull sett ta 'tmien bits issa huwa żewġ settijiet ta 'erba' bits. Dan huwa utli għaliex hexadeċimali huwa partikolarment moda għax kull ħames figuri hexadeċimali 0 permezz f, jew b'mod aktar speċifiku 0 permezz 15, jistax jiġi rappreżentat b'eżattament erba bits. Fi kliem ieħor, f'hexadecimal jekk inti tixtieq li jirrappreżentaw 0, huwa biss 0000, erba żerijiet. U jekk inti tixtieq li jirrapreżentaw 15, huwa 1111, li huwa erba 'bits. U jekk inti tagħmel l-matematika, jekk dan huwa l-post dawk, dan huwa l-post 16s, li għaddej biex jagħti you-- pjuttost li għaddej to-- sorry, fil binarju, li għaddej biex jagħtuk 15, dawk il-post, post twos, fours u eights post. So let me jipproponi li din sett ta 'erba' bits fuq ix-xellug huwa dak li aħna qed tmur biex sejħa f. Hu l-akbar numru li jista 'jirrappreżenta ma' erba 'bits. U aħna diġà jafu minn hexadecimal, f huwa l-akbar ċifri f'hexadecimal. Imxejna ltqajna ieħor f hemmhekk, żewġ aktar hemmhekk. U għal issa, ħu fuq il-fidi li I għamlu d-dritt matematika u li l-nofs xellugi ta 'dawk bits, 1101, huwa l-istess ħaġa bħat d f'hexadecimal. U l-lemin, 1000, huwa biss 8. U li wieħed faċli li wieħed jara, right? Il represents-- 8 huwa dritt taħt dak il-post eights. Allura aħna għandna waħda fil-kolonna eights u xejn fil-fours, twos jew dawk. Allura issa aktar konvenzjonalment, il-bnedmin għandhom tendenza jiktbu ċifri hexadecimal bħal dan, inti biss squish lilhom flimkien, u allura inti prefiss bl 0x. Dan ifisser xejn ħlief a clue viżwali għal human-- Hawnhekk jiġi value-- hexadeċimali għaliex jista 'ma jkunx altrimenti tkun ovvja. Li jfisser, finalment, li il-mudell ta 'żero u dawk, jew il-mudell ta 'hexadeċimali ċifri ekwivalenti li int ser tibda 'tfittex għal fil Problema Set 4 huwa this-- u l-spec Problema Set 4 se jimxu inti permezz ta 'dan f'aktar detail-- iżda jirrealizzaw kif tip ta 'arcane bħala dan tista 'tidher mad-daqqa t'għajn, int ser tibda tara dan il-lott. U fil-fatt, anki fil GDB, il- debugger aħna introdotti nhar it-Tnejn u Dan jintroduċi fil PSet 3, va li spiss nuruk valuri hexadeċimali sempliċiment minħabba li għandhom tendenza li jkunu aktar konvenzjonali minn deċimali binarja jew fid-dinja tal-kompjuters. Issa ejja dan iseħħ fil-kuntest. Ħafna minnkom jista tiftakar dan stampa hawn, li ġew minn dak? Vista, hekk anke qabel li, Windows XP ma dan id-debutt. Allura dan huwa pajsaġġ sabiħa. U fil-fatt, jekk inti poke madwar online-- Naħseb li huwa artikolu Wikipedia, fejn xi ħadd amazingly ħafna marru out jinstab dan post fid-dinja imwaqqaf tiegħu jew kamera tagħha fil preċiżament il place-- dritt u dan illum jistenna like-- iżda huwa eżattament l-istess setting. Din id-dehra, għalkemm, hi fil-fajl format imsejħa Bitmap, b 'm-p. U aħna qed tmur biex tieħu super t'għajn malajr fil dak li tfisser. Iżda Bitmap huwa biss mod differenti ta ' li jirrappreżentaw immaġini għadhom jużaw pixels fil 0s u 1s, finalment. Iżda fl t'għajn malajr, hija għandha firma aktar interessanti fil-bidu tal-fajl. Huwa mhux biss tlieta bytes, pjuttost hemm mazz sħiħ ta 'mudelli ta' bytes li jkunu predeterminati tifsira. Per eżempju, x'imkien fil- ewwel ftit bytes ta 'immaġni Bitmap se jkun id-daqs tal- immaġni, il-wisa 'l-immaġini, l-għoli tad-dehra, hekk metadata utli, jekk inti se. Informazzjoni utli li Photoshop jew xi grafika programm inti qed tuża jistgħu attwalment kura dwar. Allura aktar dwar dan fil Problema Set 4, iżda dan huwa biss li wieħed jgħid li fl-aħħar tal-ġurnata l-formati tal-fajl inti kont qed tuża għall years-- fajls Microsoft Word, Numri fajls, fajls Excel, kwalunkwe numru ta 'formats tal-fajls li jista 'jkollhom xi estensjoni fajl magħruf huma biss 0s u 1s taħtha il-barnuża. U l-bnedmin iddeċidejt dak li l-konvenzjonijiet għandhom, liema mudelli ta '0s u 1s jirrappreżentaw fajl Word versus fajl Excel, versus kull numru ta 'formats tal-fajls oħra. Għalhekk fl PSet 4, inti ser ikollhom opportunità li tilgħab ma 'dak. Imma dak ma jfisser li jkollhom Istituzzjonjijiet. Dan huwa attwalment segue sbieħ issa fis C, li għandha biss ftit karatteristiċi ta 'addizzjonali li għadna ma ħares lejn s'issa. Huwa lingwa pretty żgħar u wieħed mill il-karatteristiċi sbieħ dwar Ċ hija Istituzzjonjijiet. Per eżempju, jekk inti riedu represent-- ejja jgħidu int riedu li jkollhom varjabbli li jirrappreżenta student f'xi programm. Forsi inti kienu kitba ta 'kors programm ta 'reġistrazzjoni, jew shopping qalba għodda, jew xi ħaġa bħal dik. Liema huma biċċiet ta 'data relatata ma' lil student li jiġu f'moħħna? Bħal student huwa rappreżentati ma 'dak valuri? Yeah? Għandek isem bħala student. X'iktar ma student tipiku jkollu? UDJENZA: [inaudible] DAVID J. Malan: Allura, sorry. UDJENZA: Età. DAVID J. Malan: An età jew birthday b'mod ekwivalenti, Yep. X 'iktar? UDJENZA: numru ta 'identifikazzjoni? DAVID J. Malan: Allura numru ta 'identifikazzjoni, forsi numru tat-telefon, forsi dorm, jew dar, jew kulleġġ, jew xi ħaġa bħal dik. Kull numru ta 'biċċiet ta' data li inti jista 'jkollhom fil-lista kuntatti tiegħek huwa dak li jista 'jiddefinixxi student. Mela jekk ridna li tagħmel dan, fil-kodiċi, nistgħu nagħmlu xi ħaġa sempliċi bħal dan. Aħna jista 'jkollhom programm sabiex għandha ejja ngħidu, int prinċipali (vojt). U jekk irrid jirrappreżentaw student I jista 'jkollhom, per eżempju, string imsejjaħ isem għal dak student, string imsejjaħ dorm għal dak student, forsi int sejjaħ ID għal dak student. U għaliex jien jużaw string, I bżonn li jmorru lura u mqiegħda CS50.h. Forsi jien ser bżonn stdio.h. So let me preemptively do dawn u jien ser sejħa dan student.c għal issa u ħlief dan. U issa I tista 'tagħmel xi ħaġa ma dawn il-varjabbli. U aħna qed biss ser jikteb li bħala kumment fil-kodiċi psewdo, għaliex mhuwiex interessanti dak li nagħmlu għal issa. OK, għalhekk dan huwa programm li b'xi ħwienet student. What do I trid tagħmel jekk I tixtieq li taħżen żewġ studenti? Allura l-ewwel istint tiegħi huwa għaddej li jkun id-dritt, stenna minuta, jekk ikolli student ieħor għaliex ma I biss tagħmel isem string 2, spag dorm 2, ID2 int. U aħna ghamilt marret f'din it-triq qabel u dak li kien soluzzjoni tagħna għal dak li jidher li jkun it-tip ta 'pejst kopja hackish xogħol hawn? UDJENZA: Firxa. DAVID J. Malan: Yeah, nistgħu jużaw firxa. Dritt dan malajr ħafna isir dens. Inti għandek biex issolvi tal arbitrarjament tibda ismijiet kollha ta 'dawn il-varjabbli. U inti, il-bniedem, għandhom iżommu track li jikkorrispondi name2 OK ma dorm2 tikkorrispondi mal ID2. Hija biss isir mess. Allura huwa ħafna aktar faċli, jitlob lura mingħandhom ftit ġimgħat ilu, għal ftit ma jkollhom għalfejn imsejħa ismijiet string u forsi tagħtina tlieta minn dawn. U allura forsi għandna dorms spag u jkollhom tlieta minn dawn, jew ma 'kostanti, int ids u jkollhom tlieta minn dawn. Iżda anke issa dan iħoss ftit sloppy, right. Aħna qed jitkellem dwar l-istudenti u għadhom Ninsab verament abitazzjoni fuq il-livell baxx dettalji tal-implimentazzjoni. L-istudent huwa isem u dorm u ID. Għaliex ma tistax I biss tiddikjara varjabbli imsejħa student u sejħa hija s. U jekk irrid student ieħor, għaliex ma I biss sejħa hija t. Jew jekk irrid mazz sħiħ ta 'studenti, għaliex ma I biss jgħidu I jkollhom klassi kollha ta ' istudenti, u huwa tlieta minnhom. Fi kliem ieħor, għaliex ma nista jiġu up ma 'tip data tiegħi stess, imsejħa Studenti, ġewwa minnhom hija isem, huwa ID, huwa dorm, huwa kull numru ta 'oqsma oħra. U jirriżulta inti tista 'tagħmel eżattament dan. Allura C din il-karatteristika imsejjaħ Istituzzjonjijiet. Li karatteristika lingwa li jippermetti li jagħmlu eżattament dan. Jien ser jimxi 'l quddiem u jiftħu structs.h fejn aħna qed tmur biex tara d- wara definizzjoni ta 'student. Jirriżulta - u dan wieħed anki sempliċi minn dik li jinvolvi ID mument ilu. Jekk inti tixtieq li toħroġ bi tip tiegħek tad-data homemade, u barra minn hekk li int, u char u float u dawn l-oħrajn kollha li jeżistu, inti tista 'tagħmel dan billi litteralment miktub Struct typedef, imbagħad xi braces kaboċċi, ġewwa ta 'li inti lista tal-varjabbli li trid jassoċjaw ma 'din id-data custom ġodda tip bħal isem u dorm, u mbagħad wara l-braces kaboċċi inti tagħti isem it-tip ta 'dejta ġdid. Allura, per eżempju, student. U x'hemm sbieħ dwar dan issa huwa li jekk inħarsu lejn il-kodiċi korrispondenti, il-konvenzjoni, l-ewwel ta 'kulħadd, huwa li tpoġġi din fil-fajl imsejħa xi ħaġa dot h, fajl header, li aħna ma bdew jużaw nfusna wisq. Iżda aħna qed tmur biex tibda użu pjuttost ftit issa. U x'nistgħu nagħmlu ma 'dan, finalment, f'dawn ftit linji ta 'kodiċi huwa jiddikjara eżattament dan tip ta 'data, student. U issa ejja jużawh. Jien ser issa jmorru fil fajl imsejjaħ structs1.c. U ejja tagħti ħarsa lejn ftit karatteristiċi hawn. Allura l-għalf up hawnhekk huwa aktar familjari, u aħna ser terga 'lura għal dak li mhux familjari fi ftit mument. Dan naturalment huwa inkluż tiegħi stess fajl header, li huwa ġdid kif ukoll, ħlief għal PSet 3 fejn, irtirar, għandna helpers.h. Allura inti tista 'recall helpers.h #include. Why am I għalkemm jużaw kwotazzjonijiet minflok parentesi angolati? Meta nista jagħżlu bejniethom? Kważi dejjem I jidhru għall-użu parentesi angolata. U mbagħad, kollha f'daqqa fuq linja sitt Jien jużaw kwotazzjonijiet doppja. Għaliex jista 'jkun? Yeah? UDJENZA: [inaudible] DAVID J. Malan: Li reali, liema? UDJENZA: Li fil IDE tiegħek. DAVID J. Malan: Yeah, li fil IDE attwali tiegħi. U ejja ma tiffokax fuq il-IDE, minħabba li jinsab biss għodda li jien jużaw. Li fil kurrenti tiegħi tad-direttorju, b'mod speċifiku. Allura structs.h huwa fajl tiegħi stess mhux installat fil-IDE, fis-sistema operattiva nnifisha, pjuttost huwa direttorju kurrenti tiegħi. Allura l-konvenzjoni hija jekk inti tixtieq biex jinkludu fajl tiegħek header stess, inti biss tuża kwotazzjonijiet doppja. What do nitolbu dan ħaġa fil linja 8, ġeneralment? Dan huwa dak? xi ħaġa #define. Dan jirrappreżenta kostanti, id-dritt? Jekk inti tixtieq li jkollok valur fil-programm tiegħek li tuża sħiħ mazz ta 'drabi, huwa konvenzjoni tajba għall-fattur it out, tiddikjaraha, bis-simbolu hash jiddefinixxu, imbagħad, b'konvenzjoni, fl- uppercase word-- għalkemm mhuwiex strettament meħtieġ, imma huwa konvenzjoni tal-bniedem li tikkapitalizza kostanti sabiex dawn jaqbżu fi inti visually-- ispazju u allura l-valur inti tixtieq li tkun ekwivalenti għal isem li kostanti s. Nru punto virgola, imma inti sempliċiment jirriżultax li mudell hemm. Allura dak am I tagħmel f'dan il-kodiċi attwali. Mela ejja tagħti ħarsa lejn il-programm prinċipali hawnhekk. B'konformità 12 minħabba I inkludew structs.h, I issa għandhom magically fil tiegħi rimi ta 'tip ta' data ġdida. I ma biss ikollhom aċċess għall int, u char, u float, u spag, u blu u oħrajn. I issa għandhom aċċess għal tip data student. Dan b'konformità 12, jien kombinazzjoni ta 'żewġ ideas-- wieħed tip data tad-dwana u tnejn, użu ta 'firxa. U hekk f'dan il-programm jekk Irrid li attwalment jappoġġaw tliet studenti differenti fil-programm tiegħi, I tista sempliċement jgħidu tagħti me a varjabbli imsejħa studenti, li kull waħda minnhom huwa ta 'studenti tip, li huwa tip ta 'data tad-dwana tiegħi. U, b'mod speċifiku, agħti lili tlieta minn dawk fil-firxa tiegħi. Allura issa dak li nagħmlu f'dan il-programm? Hawn biss għall mtennija loop 0-3, minħabba li l dak il-valur ta 'studenti hu. Jien biss suġġeriment l-utent tagħti me isem l-istudent. U mbagħad fil-linja 17, aħna għandhom linja aktar familjari. Għandna ħabib antik tagħna GetString fuq il-lemin. U dak biċċa sintassi hija apparentement ġdid, jekk inti stajt qatt programmati C qabel, u qatt ma użaw l-structs? Yeah? UDJENZA: Il .name. DAVID J. Malan: Il .name. Imma dan mhux wisq ta 'qabża, minħabba li issa istudenti parentesi i jagħtik l-istudent numru i. U jekk inti tixtieq li adsa ġewwa ta 'din l-istruttura, inti biss tuża perjodu wieħed u allura l-isem tal-varjabbli ġewwa, jew il-proprjetà ġewwa li inti tixtieq li tikseb aċċess għall. Bl-istess mod imbagħad, jekk I imbagħad fil-pront il- utent, jagħtu me dorm l-istudent, inti tista 'bl-istess mod tinżamm din string fil-varjabbli dorm ġewwa ta 'dik l-istruttura student. U issa l-affarijiet jiksbu fancy ftit. U dan se tħares fi forsi ħafna pjuttost malajr. Imma inti taf tara dan ħafna iktar fil PSet 4, so ejja biss t'għajn lejn dan issa. Jirriżulta li fil-linja 23 permezz 38, x'taħseb qed nagħmel forsi? Stajt jitneħħew l-kummenti għal-lum, iżda l-verżjoni tal-kodiċi online għall referenza għandha kummenti kollha. What do I jidhru li tkun qiegħda tagħmel? UDJENZA: Iffrankar il-fajl ma 'l l-informazzjoni li l-utent daħal. DAVID J. Malan: Yeah, eżattament, dan huwa mod ġdid li aħna qed tara tnejn, fattur ieħor ta 'C, li biha I tista 'toħloq fajls tiegħi stess. S'issa, kważi kull programm inti stajt bil-miktub mingħajr Stat. Hekk kif dan isir taħdem, thats it. M'hemm l-ebda memorja jew rikollizzjoni ta 'dan. M'hemm l-ebda fajl ffrankati. Imma jekk inti tixtieq li jiffranka input li għandha ġara, bħal fil-logħba jew programm bħal dan, jirriżulta nistgħu nagħmlu hekk. U tkun taf tara dan aktar fil PSet 4 u fit-Taqsima. Iżda din il-linja 23 essenzjalment toħloq fajl imsejjaħ students.csv. U inti tista raw dan qabel. Anke jekk inti stajt qatt studjati CS qabel, CSV huwa varjabbli mhux mifrudin comma. Huwa simili raġel fqir ħafna Verżjoni ta 'fajl Excel, li jfisser li jista 'jinfetaħ fl-Excel u Numri Apple, u għandu ringieli u kolonni. Imma din mhix proprjetarja format bħal Microsoft jew Apple. Huwa biss virgoli jisseparaw l valuri li aħna ser tara fil-mument. U ħu raden. F'konformità 23, fil-ħafna aħħar, it-tieni argument tiegħi biex din il-funzjoni ġdida msejħa f miftuħa għall-fajl miftuħ huwa w. Liema jista w juri? Yeah? UDJENZA: Hija ihallik jikteb lill-fajl? DAVID J. Malan: Hija tikri tikteb għall-fajl. Allura hemm koppja ta 'varjanti li nistgħu plagg fil hawn. Imma jekk inti biss tixtieq li taqra il-fajl, jiġifieri tħares lejn din u taqrah fil-memorja, inti biss użu quote unquote "r". Jekk inti tixtieq li jikteb lill- fajl, tuża kwotazzjoni unquote "w". Hemm ukoll tehmeż u koppja ta 'affarijiet oħra jekk inti tixtieq li timmodifika fajls eżistenti. Issa aħna qed tmur biex tibqa 'tara dan ħaġa, allura aħna ser terga 'lura għal-linja 24. NULL, jirriżulta, huwa valur speċjali li jistgħu jiġu rritornati minn ċerti funzjonijiet jekk xi ħaġa marret wrong-- jekk il-fajl ma teżistix, jekk inti ħadthom jispiċċaw ta 'memorja, jew mazz ta 'żbalji oħra. Iżda għal issa, ejja biss wieħed jassumi li din huwa iċċekkjar żball biss konvenzjonali. Hawnhekk fil-linja 26, jien mtennija 0-3 fuq l-istudenti kollha tiegħi. U dan huwa tip ta 'tip ta 'funzjoni ġdida, fprintf, imma ħu raden. Jekk printf huwa biss print string fformattjati, dak ma fprintf probabbilment jfisser? UDJENZA: Stampa għal fajl. DAVID J. Malan: Stampa a string ifformattjat għall-fajl. Dak hu l-addizzjonali f mezzi huwa fajl. U l-ewwel argument ġdida trid tiġi il-varjabbli li tirrappreżenta fajl tiegħek. Imbagħad aħna biss ikollhom format string bħad printf. U anki jekk dan sintassi huwa ġdid, dan biss tfisser plagg fl-isem l-istudent, -plagg fil-dorm student, u mbagħad ma fclose, agħlaq il-fajl. U allura lastly-- dan huwa ġdid u aħna ser terga 'lura għal dan qabel long-- Jien ħelsien l-istudent għal raġunijiet li ġara up hawn fuq hemmhekk. Iżda aħna ser terga 'lura li li qabel long-- dan għaliex ta 'kif GetString huwa attwalment qed jaħdmu taħt il-barnuża. Mela ejja tagħti ħarsa hawn. Jekk I ls tip fl-direttorju tiegħi, avviż li jien ma jkollhom fajl imsejjaħ students.csv, biss ma jkunx hemm, ma teżistix. Mela jekk jien issa jiġbor dan il-programm, jagħmlu structs-1,. / structs-1, u jien ser jimxi 'l quddiem u tip Andi, li jgħix fi Berkeley fil-Yale. Aħna ser ikollhom Rob li jgħix fil Thayer f'dawn il-jiem. U ejja toħroġ bi fejn huwa, I think, Maria hija fil Mather, jekk ikolli mfakkar b'mod korrett. Allura xejn ma jidher li jiġri. Imma jekk jien ls-tip issa, hemm students.csv. Ejja imorru quddiem u students.csv miftuħa. Dan ukoll ħafna format tal-fajl ħfief. Imma stajt sempliċiment adotta konvenzjoni li għandi żewġ ringieli u kolonni hawn. L-ewwel kolonna hija ewwel ismijiet tan-nies. It-tieni kolonna hija l-istudent ta dorm, jew kulleġġ, jew dar, jew whatnot. U issa stajt salvati dan b'mod permanenti fil-fajl. Allura huwa mhux kollha li interessanti. Iżda din hija biss tarġa issa li jkunu kapaċi jippersistu informazzjoni b'mod permanenti. Mela ejja ara issa liema aktar li nistgħu ma 'dawn u oħrajn karatteristiċi. Iżda l-ewwel, xi mistoqsijiet? Dan kien ħafna, u li kien mgħaġġel. Imma inti taf tara ħafna aktar fil PSet 4, kif ukoll. Yeah? UDJENZA: Hemm mod biex tkompli żżid ismijiet mal dan il-fajl? DAVID J. Malan: Tajba kwistjoni. Hemm mod biex ikomplu żżid ismijiet mal dan il-fajl? Iva. U, fil-fatt, jekk inti tispiċċa up mill-ġdid jinfetaħ ir-reġistru, inti tuża quote unquote "a" għal tehmeż, li kien biss żid linja ġdida, linja ġdida għal darb'oħra u għal darb'oħra, eżattament. Tajba kwistjoni. Mistoqsijiet oħra? Yeah? UDJENZA: Jekk inti mexxa l- programm ġdid dritt issa, ikun jidher ikompli jżid ismijiet għall- fajl jew ikun jidher tiftaħ fajl ġdid? DAVID J. Malan: Ah, mistoqsija tajba. Jekk inti dam il-programm mill-ġdid dritt issa, forsi ittajpjat fl-ismijiet ġodda, kieku dan iżid il-fajl jew jissostitwixxu l-fajl? L-aħħar, għaliex jien ma jużawx modalità tehmeż. U għaliex jien biss bl-addoċċ ftuħ tal-fajl għall-kitba, huwa biss se jissostitwixxu l-fajl. So I tassew bżonn tagħmel hu tehmeż, jekk irrid li għandhom attwalment fit-tul database. Issa CSV huwa utli, franchement, anki simili għal jekk int writing-- u aħna ser eventwalment tara dan aktar tard fl-semestru meta nużaw CSVs għal skopijiet oħra. Jekk inti tixtieq li taħżen kollha tal-poplu li jkunu rreġistraw għal xi avveniment, jew ffirmaw għall-istudenti tiegħek grupp, jew xi ħaġa bħal dik, ħażna tad-data f'dan it-tip ta 'format huwa super konvenjenti. Minħabba litteralment, jekk I kienu biex tniżżel dan il-fajl. I tista 'double-- u ejja fil-fatt jipprovaw dan jekk ikolli Excel jew Numri hawn fuq. Jien ser dritt ikklikkja jew kontroll click fajl tiegħi. Whoops. Right-click jew kontroll click fajl tiegħi. Come on, ġurdien tiegħi hija ma tikkooperax. Download-- Jien ser tniżżel il-fajls kollha hawn hekk biss hekk I tista 'grab dan wieħed. U ejja ara jekk dan jaħdem ewwel darba students.csv-- Stajt attivat. Issa li jridu jaraw kuntatti tiegħi. Issa, I bżonn jirreġistraw. Ara kemm huwa faċli biex jintuża CSVs? Iva, żżommha aġġornata. OK, issa aħna lesti għall-klassi. OK, oh, x'hemm ġdid? OK, qrib. Dan kien maġika. OK, issa għandna biex taġġorna. U issa, huwa nesa dak fajl I oriġinarjament miftuħa, imma dak a-- hemm immorru. OK, hekk issa għandna fajl Excel. Grazzi. OK, so dak li għamilt kienet il-parti faċli. Of course I setgħet installat minn qabel Excel, jew Numri, jew kwalunkwe programm. Iżda dan huwa sbieħ, għaliex issa I tista 'timmanipola id-dejta f'format standard. Kuntest Allura issa ejja jaqilbu għal fejn aħna jitħalla 'off aħħar darba, li kellha tibda jieħdu off roti ta 'taħriġ. Iżda l-ewwel, inti ma tara dan ikla qabel għal darb'oħra qed jiġri hawn fuq nar u Silġ Cambridge, Sitar fi New Haven. Sign up fuq il-websajt CS50s ASAP biex jissieħbu istudenti CS50 u persunal. Allura aħna ħa roti ta 'taħriġ off nhar it-Tnejn bħala follows-- string ġie ddikjarat CS50s librerija għal xi żmien. U huwa sbieħ, għaliex din tippermetti ahna nitkellmu dwar varjabbli bħala kliem kompluta u sentenzi u aktar. Iżda jirriżulta string ma teżistix. Dan huwa biss sinonimu, jew alias, li ħloqna xi ħaġa li fil-fatt huwa xi ftit aktar teknika imsejħa char *. U fil-fatt, rajna eżempju ta 'programm nhar it-Tnejn li ma jaġixxix pjuttost kif aħna mistennija. Dan kien il-fajl, iqabblu-0. U tfakkar li jqabblu-0, jekk I recompile programm nhar it-Tnejn u run jqabblu '0 u tip mom fil lowercase, u mom fl zghar mill-ġdid. Il-programm insista I tip affarijiet differenti, anki jekk mom, kollha lowercase, hija identika viżwalment. Allura dak li kien ir-risposta qasira rigward għaliex ir kompjuter jaħseb dawn iż-żewġ kordi huma differenti? Yeah? UDJENZA: [inaudible] DAVID J. Malan: Dritt. Allura, mom, l-ewwel darba I tip fil, qed maħżuna x'imkien fil-kompjuter tiegħi memorja iżda f'post differenti mit-tieni darba I tip fil mom. Issa li ċertament tista 'tiġi ottimizzata. Il-kompjuter jista 'jkun intelliġenti u jirrealizzaw dawn iż-żewġ kordi, ħej, dawn qed identiċi. Let me ma redundantly jaħżnu. Iżda kompjuters ma tagħmel dan ottimizzazzjoni sakemm inti jgħidulhom li. Allura, awtomatikament, dawn qed biss ser jispiċċaw f'żewġ postijiet differenti fil-memorja. U hekk li jkunu aktar ċari, meta qabbilna-żewġ kordi, l-ewwel ġie imsejħa s, it-tieni kienet imsejħa t, dak speċifikament kien I tqabbil hawn fuq il-linja 13? Yeah. UDJENZA: Hu l-post fil-memorja li l-varjabbli se jindika. DAVID J. Malan: Eżattament, I kien tqabbel il-post fil-memorja li dawk il-varjabbli indikat. Allura speċifikament, jekk mom kien Numru byte 1, u 2, u 3, u 4-- minħabba ftakar l-backslash 0 jeħtieġ li jkun it-triq kollha fl-aħħar. U l-każ ieħor ta 'mom, m-o-m, kien fl-indirizz 10, 11, 12, u 13. I kien jqabbel 1, dak l-indirizz, f'dak il-post fil-memorja, kontra 10, li hija ovvjament mhux l-istess. 1 mhix 10. Allura dan huwa sbieħ f'dak huwa pjuttost sempliċi. Imma hija problematika sakemm aħna ma jistgħux jidhru li jqabblu kordi. Allura fundamentally-- u f'dan il-livell baxx, jekk int riedu biex jimplimentaw programm biex iqabblu żewġ kelmiet separati li l- utent ikun ittajpjat fil għall-kwalità, ma huma linja up char għall char, biss f'termini ġenerali, dak li rridu nagħmlu, apparentement? Huwa mhux biżżejjed biss biex tħares lejn dawn iż-żewġ indirizzi. What do we bżonn tagħmel? Yeah? UDJENZA: jtenni permezz l-sekwenza [inaudible]. DAVID J. Malan: Yeah, ejja jtenni permezz tal-sekwenza. Ejja jużaw għal loop, linja waqt, jew tkun xi int l-aktar komdu magħhom. U jekk konna ltqajna żewġ kordi x'imkien fil-memorja, ejja nħarsu lejn kull wieħed li ewwel karattru, allura kull tieni l karattru, allura tielet, u r-raba, u l-ħames, sakemm aħna hit liema valur sentinella speċjali? UDJENZA: [inaudible] DAVID J. Malan: Yeah, il-backslash żero, f'liema punt jew string nistgħu tiddeċiedi li jinsab fiha. Have we mqabbla kull karattru wieħed? Jekk le, ritorn foloz. Jekk iva, ritorn veru. U hekk dan huwa eżattament dak li din il-verżjoni tal-programm iqabblu-1.c ma. Huwa identiku għal dak li aħna ħares lejn it-Tnejn ħlief li ħadthom I gotten rid tal-string-- kelma għalkemm li m'għandha l-ebda impact-- funzjonali kollha Li qed nagħmel issa huwa li jitneħħa xi roti ta 'taħriġ viżwali, iżda biex tara b'mod ċar li iu t huma indirizzi. U dan huwa dak l-istilla, l-asterisk, jirrappreżenta huwa indirizz, inkella magħruf aktar teknikament bħala pointer. Allura meta I niddikjara s fuq linja 9 u jgħidu char * i, dan ma jfissirx tagħti me a string. Dan ifisser jagħtu me varjabbli li iskop fil-ħajja huwa li taħżen l-indirizz. Minħabba I am madwar biex tpoġġi l- indirizz ta 'sekwenza inkorporat fih. U fil-fatt, GetString, li jkun ċara, ma ritorn string. Ma ritorn mom backslash żero, per se. Xi jfisser GetString speċifikament u preċiż ritorn? UDJENZA: [inaudible] DAVID J. Malan: An indirizz, l- indirizz ta 'l-ewwel karattru f'xi string hija gotten. U hekk issa aħna qed jaraw keyword speċjali darb'oħra. U, I allużjoni għal din qabel. Dan se jkun konvenzjoni tajba li aħna ser tara mill-ġdid u għal darb'oħra issa. Jien verifika biex jiġi żgurat li i ma huwiex null u t mhix null. Minħabba bbażata fuq tiegħi verament isemmu malajr qabel, dak li jista 'jfisser jekk GetString prospetti ma indirizz iżda N-U-L-L, li hija għal darb'oħra, xi valur speċjali? UDJENZA: Żball. DAVID J. Malan: Huwa ta 'żball. Xi ħaġa li marret ħażin. U dak li tipikament jista 'jiġri, speċjalment ma strings-- li tista 'tkun ta 'tul mhux magħrufa advance-- forsi l-kompjuters " tal-memorja, forsi inti ittajpjat f'tali kelma twil jew sentenza jew pasted tali essay enormi hemm biss mhux memorja biżżejjed. U għalhekk GetString ma jistgħux jirritornaw l-indirizz tal-ħaġa sħiħa, għalhekk jirritorna xejn. U jgħid żball kien ġara billi jirritorna l-valur NULL speċjali. Hu l-indirizz żero, biex ngħidu hekk. Issa jirriżulta C tiġi flimkien ma ' funzjoni li ma li iterazzjoni. Aħna ma jkollhom biex jimplimentaw din ma a għal loop jew loop waqt nfusna. Nistgħu nużaw funzjoni, imsejħa konċiż, ħawwad comp, jew string iqabblu, li iskop fil-ħajja huwa li tagħmel eżattament dan. Inti tagħti żewġ pointers, żewġ indirizzi, u se jmorru lil dawk l-indirizzi u mbagħad iqabblu ittra għall ittra għall-ittra għall-kwalità, waqfien biss meta dak li huwa veru? Meta intuwittivament għandhom ħawwad comp stop mtennija, biss biex tkun ċara? Meta hits backslash 0 f'kull spag, f'liema punt jista 'jiddeċiedi tkun kollox mqabbla, jew kien hemm diskrepanza? Allura, jekk aħna run dan issa u jippruvaw logħba tagħna kapitalizzazzjoni ftit, sabiex tagħmel iqabblu-1, ./compare-1, u tip mom fl zghar kemm żminijiet. Issa huwa l-istess ħaġa. U jekk jien tagħmel dan mill-ġdid ma zghar u mbagħad forsi uppercase. Issa tabilħaqq tiddistingwi bejn fuq u zghar. Allura mhux kollha li diffiċli jew maġika, iżda ma tispjegax issa x'inhu għaddej taħt il-barnuża. Allura dak li aktar jista aħna estratt minn dan it-tip ta 'lezzjoni? Mela ejja tagħti ħarsa lejn dan. Jien ser jimxi 'l quddiem u jiktbu programm quick hawn imsejħa kopja 0. U issa ejja imorru quddiem u fil-fatt Ejja nagħmlu this-- ma 'kopja 0, tagħti ħarsa lejn dak li stajt ltqajna hawn. I ewwel tgħid l-utent, ngħid xi ħaġa. Imbagħad niġi string u I maħżuna fil s. Imbagħad I jiċċekkjaw jekk i huwa ugwali ugwali NULL, biss jirritorna 1. Allura dan huwa biss żball iċċekkjar standard. Xejn interessanti li ġara. U fil-fatt, jekk irridu jeħles mill-iżball verifika, dan qisu ġimgħa 1 kodiċi fil-mument. Imma stajt bdiet tikseb ftit aħjar dwar dan. Issa fil-linja 16, ġimgħa ilu, forsi jiem anke koppja jew minuti ilu, inti jista 'jgħid linja 16 hija ħolqien ta 'varjabbli imsejjaħ t u l-ikkupjar s fih. U li l-perfettament takeaway raġonevoli. Imma jkun aktar preċiż issa. Dak li qed jiġri fil-linja 16? X'inhu jkollna kkupjata minn lemin għax-xellug? Yeah? UDJENZA: Huwa t jkollna indirizz ta 'i? DAVID J. Malan: Eżattament, t huwa jkollna l-indirizz ta 's. Allura biex tkun ċara issa, jekk immur lura għal dak eżempju ta 'qabel u I tfassal l-ħaġa stajt ittajpjat fil. U dak li stajt ittajpjat in-- hawnhekk i, u hawn huwa dak li stajt ittajpjat fil x'imkien fil memorja, mom u mbagħad backslash 0 thats miżjud għalija. What I maħżuna fil hawn, tfakkar, dan huwa fil-post 1, 2, 3, 4, dan huwa dak li bħalissa s. Mela jekk on-line 16, I say jagħtu me varjabbli imsejħa t-ieħor u jaħżnu f'mill-valur ta 'i, dak gets maħżuna hawn mhux se mom iżda biss in-numru 1. Mela jekk inħarsu 'l quddiem f'dan il-programm issa, dak li jiġri? Allura avviż li hemm din il-funzjoni inti tista użaw dan xi żmien ilu għall Caesar, jew Vigenere, jew forsi xejn affattu. I titlob bil printf tiegħi, jien jmorru għall-kapitalizzazzjoni tal-kopja t. Ewwel linja 19, sanità malajr jivverifikaw, kontrolli strlen-tul ta t. Minħabba I ma jridux jippruvaw li tikkapitalizza xi ħaġa jekk hemm l-ebda string hemmhekk. Jekk l-utent biss hit Ikteb, hemm xejn għall-kapitalizzazzjoni. So I ma trid tagħmel linja 21. Allura linja 21 huwa kapitalizzazzjoni liema ittra, apparentement, f't? UDJENZA: m? DAVID J. Malan: Huwa jistenna simili huwa ikkopjar liema waħda? UDJENZA: m. DAVID J. Malan: Uh, m. OK, hekk l-ewwel m, għaliex avviż li jien tgħaddi biex toupper, li jekk inti stajt qatt raw dan huwa biss funzjoni li kapitalizzazzjoni bħala input tagħha. t bracket żero ifisser jagħtu me-karattru żero ta t. U hekk kif ma dan bidla stampa, li jkun ċar? X'hemm bżonn li tikseb miktuba mill-ġdid jew mibdula fir-rigward iu tu mom żero backslash. UDJENZA: [inaudible] DAVID J. Malan: Yeah, għalhekk dan wieħed hawn sempliċiment teħtieġ li jiksbu mibdula to-- jiffissaw this-- jeħtieġ li jiksbu mibdula għal m kapital. Imma issa, tħares aktar tard fil- programm, jekk I jistampa i u t bħala I tnaddaf hawn, watch x'hemm jiġri stampar ta iu t. Sabiex tagħmel l-ikkupjar 0, ./copy-0. Let me imorru quddiem u t-tip fil mom kollha lowercase. Avviż kemm l-oriġinali u l-kopja ġew kapitalizzati. Għaliex? Well, iu t-tnejn huma tipponta lejn, jekk inti se, l-istess blokki ta 'memorja. U franchement, dan huwa jkollna verament uninteresting---fatt li aħna qed tuża indirizz żero hawn. I mean, I ma verament kura fejn Jittieħed huwa fil-memorja. Jiddispjacini jien tħassir ftit wisq. Imma jien ma verament kura fejn l-affarijiet huma fil-memorja. U għalhekk, tabilħaqq dak programmaturi tendenza li jaħsbu dwar hija li meta tkellem dwar indirizz, jew pointer, quién fejn huwa fl-memorja. I do not care jekk huwa fil byte wieħed jew waħda biljun. I biss kura li dan varjabbli hija effettivament tipponta lejn dak blokki ta 'memorja. U għalhekk, minn issa, aktar milli quibble fuq indirizzi memorja arbitrarji, ejja biss jibdew tiġbed pointers kif pointers, kif vleġeġ. Allura dak i u t verament huma, skond dan il-programm, minħabba kif I maħluqa t, huwa biss żewġ varjabbli separati tipponta fl-istess blokki ta 'memorja. U aħna ma 'kura fejn huma. Allura nistgħu astratt bogħod li dettall. Allura kif nista jiffissaw dan? Jekk irrid jikteb verżjoni tal-kopja programm li attwalment kopji l spag u tikkapitalizza biss l kopja, biss intuwittivament, dak ltqajna biex tkun ingredjent li s-soluzzjoni tagħna? UDJENZA: [inaudible] DAVID J. Malan: Għandna bżonn liema? UDJENZA: Chunk tal-memorja. DAVID J. Malan: Għandna bżonn blokki ieħor ta 'memorja, right? Ma nafux kif tagħmel encore, neċessarjament. Imma I tip ta 'bżonn dan iseħħ hekk li l-mom oriġinali f'ittri żgħar jispiċċa f'dak blokki żejda ta 'memorja. U mbagħad meta I jibdlu l-kopja, I ma jridux bidla din il-kopja hawn. I minflok trid tibdel biss dan Kopja sabiex il-oriġinal ma jinbidilx. Allura, ejja naraw kif nistgħu nagħmlu dan. Fil-1 kopja, li diġà kienet tneħħietlu l-kumment, iżda huwa ikkummenta online. We minflok tagħmel l-following-- dawn linji huma identiċi, jiksbu me string u sejħa hija s. Imma issa ejja nħarsu lejn wieħed mill-aktar tagħna kumpless iżda l-aħħar tal-kumplessità għall awhile, linja 16 ma eżattament dan. Mela jekk comfy tiegħek mal- stampa aħna biss drew-- tagħti me blokki ġdid ta 'memorja, kollox kopja fiha, ejja ara kif aħna tittraduċi dak li kodiċi. Allura linja 16, fuq in-naħa tax-xellug, char * t tagħti me din il-kaxxa hawn fuq. Li kollox li tagħmel. Min-naħa tal-lemin, ALLOC m, jew malloc, huwa allokazzjoni memorja, super fancy, mod cryptic ta 'ftit qal tagħti me blokki ta 'memorja. Kemm memorja ħafna jeħtiġilna? Ukoll, huwa tip ta 'espressjoni big. Imma ejja ara dak li jgħid hawnhekk. Allura dan, naturalment, huwa jagħti me tul sensiela ta 's. Allura, mom għandu jkun dak? Hekk biss tlieta, id-dritt? mom huwa ta 'tliet karattri. Inti ma jgħoddux l- backslash żero meta inti jitkellmu dwar it-tul ta 'sekwenza huwa Attwalment l-ittri viżibbli tal-bniedem. Allura mom, għalhekk dan jagħti me 3. Iżda stenna minuta, jien issa żżid 1. Għaliex għandi attwalment jridu jallokaw 4 bytes u mhux biss 3? Yeah? UDJENZA: Għall-valur sentinella? DAVID J. Malan: Eżattament, għal dak il-valur sentinella. Għall-backslash żero, I bżonn 4 bytes totali. So I bżonn it-tul tas-sekwenza flimkien ma '1. U mbagħad biss għall measure-- tajba anke jekk fuq din is-sistema, huwa dejjem se jkunu 1-- jien tgħid immoltiplika dan mid-daqs ta 'char. Jinstabx sizeof huwa operatur C li biss jgħidlek il numru ta 'bytes li l- meħtieġa għal ċertu tip ta 'data. Hija ma taħdimx għall arrays, tipikament, xi kultant ma. Iżda fil-każ ġenerali, l-ebda. Iżda se tgħidli kemm hemm bytes a char huwa, li jirriżulta huwa dejjem 1. Allura dan huwa simili mmultiplikat b'1. Allura super cryptic linja tħares 'kodiċi. Iżda kollha ma huwa jagħti me blokki ta 'memorja. Iżda ma jidhirx li jkun ikkupjar xejn f'dak memorja? Mhux għalissa. U iva, liema do I fuq il-linja 22, u 23, 24, 25, ukoll, I sempliċiment tagħmel dan. U dan huwa tip ta ' Jittieħed iskola antika issa. Dan huwa simili PSet 2, fejn int biss affarijiet jimxu madwar fil-memorja, jew pjuttost f'qatet. Hekk jien mtennija minn 0 sa it-tul tas-sekwenza s. U jien ikkupjar il-karattru numru i fl-i fil-karattru numru i f't. U minħabba I, il-programmer, magħmula żgur li jallokaw eżattament kif ħafna bytes għandi bżonn, huwa perfett one-to-one relazzjoni. U jien kopja mom fil zghar għal dik ġdida. U mbagħad fl-aħħar, I do din il-linja. U għalhekk l-effett huwa biss għall-kapitalizzazzjoni dan t hawn. Allura ħafna biex jassorbu, iżda jekk inti biss tikkunsidra x'inhu verament għaddej fuq taħt il-barnuża huwa biss dawn jimxu bytes madwar, dak kollu li hija meħtieġa sabiex issolvi din il-problema hija biss biex tagħtina din blokki ta 'memorja. Issa bir-riskju li kbira, let me juru eżempju ieħor li kważi identiċi, ħlief għal dan wieħed linja tal-kodiċi. Allura dan huwa l-verżjoni Hacker ta 'dan il-programm, jekk inti se. Imma ejja biss jiddistillaw fis x'inhu għaddej. Linja 24 użati biex tkun din t bracket i gets bracket s i. Issa, jien jinbidlu dan l ħafna aktar cryptic t star flimkien ma '1 ugwali star s plus 1. Allura x'inhu jiġri u għaliex għandna karattru star? Rajna l-istilla qabel, u huwa qed jintuża b'mod differenti hawn. Aħna diġà raw char *, issa jien jaraw stilla fil-bidu, u li OK. Minħabba jirriżulta aħna tista tip ta 'jiddeduċu biss minn dawk l-ewwel prinċipji x'inhu għaddej. Hekk biss li jkun ċar, dak li huwa s? Last week, kien string. Dan mhuwiex biżżejjed jibqgħalu. X'inhu s, b'mod speċifiku? UDJENZA: [inaudible] DAVID J. Malan: Huwa pointer. Hu l-indirizz tal- ewwel karattru aħna ittajpjat fil. OK, dak li huwa t? UDJENZA: [inaudible] DAVID J. Malan: Il- indirizz ta 'l-ewwel byte f't, li blokki ta 'memorja riallokati. Għalhekk jirriżulta li meta aħna jtenni minn 0 sa l-sekwenza length-- ewwel nett, i jibda off fil-0, għaliex ta din l-iskola antika għal ħaġa loop. Hekk biss għas-sempliċità, ejja jassumi li l-ewwel linja tal-kodiċi huwa verament biss dan, id-dritt. Jekk i huwa żero, u żżid żero għal xi ħaġa preżumibbilment mhux se jkollhom effett. Allura dak li huwa dan qal? Jirriżulta li l-istilla operatur f'dan il-kuntest huwa l-dereference operatur, li huwa biss mod fancy ta 'tgħid tmur f'dan l-indirizz. Mela jekk i huwa l-indirizz ta 'l-ewwel karattru f'dan blokki ta 'memorja, * s mezzi jmorru hemm. U għaliex aħna ħadthom mfassla l-istampa b'dan il-mod, inti tista 'tadotta l- wara mudell mentali. Jekk dan huwa s, u inti tgħidli * i, * s tip simili siġġijiet u slielem, jekk inti tiftakar il-logħba mit-tfulija, huwa simili jirriżultax li vleġġa u jmorru fl-indirizz. * t huwa l-istess ħaġa. Allura tibda hawn, mur blokki tagħha. I tista 'mhux biss tibbaża fuq dan l-iskrin li mod. * t ifisser li jmorru hawn. U mbagħad, il-loop huwa biss għall qal jimxu dan il-karattru hawnhekk, jimxu dan il-karattru hawnhekk, jimxu dan il-karattru hawnhekk. Imma kif nista 'nagħmlu incrementation? I-ħtieġa li jneħħu dak I biss mħassar. Dan huwa dak li ġeneralment jissejjaħ aritmetika pointer, li ifisser matematika bl-indirizzi. Jekk, f'dan il-għal loop, I iżommu inkrementazzjoni i, u s huwa indirizz u t huwa indirizz, jekk I biss iżommu żżid 1, li sempliċiment ifisser iżommu miexja 'l quddiem, u jibgħatu, u jibgħat fil-memorja. Huwa simili Oxford Street, il- triq li l-bini CS huwa fuq. Il-bini CS huwa fil 33 Oxford Street. Mela jekk ġejt biex tagħmel 33 Oxford Street flimkien ma '1, li ġġib inti 34 Oxford Street, allura Street 35 Oxford, imbagħad 36 Oxford Street, ikun x'ikun dawk bini li huma effettivament huma - jekk dawn jeżistu. U għalhekk, li kollox li aħna qed tagħmel hawn ma aritmetika pointer. Allura huwa mod super arcane jesprimu nfusna. Iżda dak kollu li jiġri taħt il-barnuża huwa biss wara dawn l-indirizzi, bħal wara mappa, jekk inti se, jew wara vleġeġ bħall konna mfassal fuq l-iskrin. OK, ħafna biex diġestiva. Kwalunkwe mistoqsija dwar sintassi, kunċetti, pointers, malloc, jew affarijiet simili. Yeah, minn hawn ewwel. UDJENZA: Allura meta dik jgħid * t ugwali toupper * t, huwa li jmorru għall-kapitalizzazzjoni l-ittri jew just-- DAVID J. Malan: Ah, kwistjoni verament tajba. Allura f'dan il-linja hawnhekk, 31, huwa dan se għall-kapitalizzazzjoni l-ewwel ittra jew kollha ta 'l-ittri. Mela ejja risposta għal din billi tmur lura għall-ewwel prinċipji. U l-ewwel prinċipji hawn I jfissirx biss jmorru għall-definizzjonijiet bażiċi ta 'dak involut. Allura toupper l b'funzjoni li tikkapitalizza char. Dak kollox. * t ifisser tmur fil-first-- mur l-indirizz f't. Allura, fl-istampa, jekk dan huwa l-blokki ta 'memorja aħna allokat malloc, u dan huwa t, * t ifisser mur hawn. Sadanittant, int tgħaddi dan il-valur, zghar m li toupper, int jkollna lura kapital M, fejn huma inti tqegħid? Int tqegħid fl-istess post. U hekk minn dak l-loġika ta 'dawk definizzjonijiet bażiċi Huwa biss kapitalizzazzjoni-ewwel ittra sakemm inti jtenni bil i jew għal loop jew loop waqt, mhuwiex ser li tagħmel xejn aktar milli suppost jitlobha. Tajba kwistjoni. Yeah? UDJENZA: Għaliex ma tuża l- dereference metodu pjuttost milli l-array? DAVID J. Malan: Ah, mistoqsija tajba. Għaliex kieku inti tuża l-dereference metodu minflok il-metodu firxa? L-ebda raġuni partikolari, li tkun onest. U, fil-fatt, għal dan tip ta 'eżempju, id-dritt, Jien biss argumenta jagħmlu l- programm aktar ikkumplikati, għajnejn aktar qed glazing fuq, nies huma iċċekkjar minħabba dan jistenna super arcane, iżda anki jekk huwa qed jagħmel l-istess ħaġa. U għalhekk, franchement, dan huwa Soluzzjoni bla bżonn viżwalment kumpless għall-problema. Huwa għadu disinn tajjeb, ħamsa minn ħamsa għad-disinn, jekk fil-kategorija notazzjoni jew in-notazzjoni pointer. But-- speċjalment meta nikbru aktar tard fil-kors PSet 5 meta nimplimentaw li dizzjunarju li Stajt msemmija koppja ta 'times-- aħna ser attwalment kura dwar l- indirizzi memorja livell baxx li aħna verament jifhem x'inhu għaddej. Iżda, għal issa, jirriżulta li din linja ta 'kodiċi parentesi kwadri hawn ma tassew jeżistu. Dawn huma dak li sejjaħ zokkor sintattika, li huwa biss mod weirdly jibred ta 'tgħid l- kompilatur tikkonverti parentesi kwadri li jkun dik l-espressjoni matematika. Allura huwa konvenzjoni tal-bniedem biex tkun tista 'tikteb biss dawn parentesi ħafna faċli għall-utent. Imma dak li l-kumpilatur, clang, hu verament tagħmel kwalunkwe ħin tikteb dak li enfasizzat fil-linja 24, taħt il-barnuża huwa verament jikkonvertuha għal dan. Huwa biss aktar pleasurable bħala bniedem jaqraw u jiktbu kodiċi bħal linja 24. Iżda eventwalment dawk roti ta 'taħriġ wisq come off meta kumdità tiegħu stess gets aktar b'saħħitha. Kull dritt, hekk ifakkar allura li dan kien il-tip ta 'akbar problema aħna dam fis. U dan huwa dak qanqal dan kollu konverżazzjoni kkritikat dwar pointers, u l-indirizzi, u affarijiet ikkupjar. Kien għaliex aħna tripped fuq dan stupid, il-kwistjoni stupid, fejn I implimentati logically-- ma Lauren up here fuq il-demo u l meraq tal-larinġ fil-milk-- perfettament funzjoni algorithmically korretta għall-iskambji żewġ varjabbli " valuri, imma l-ħaġa kkritikat ma kellhomx xi persistenti, jew permanenti, effett fuq kodiċi tiegħi. U għaliex kienet li? Fil-qosor, għaliex huwa dan implimentazzjoni ta 'swap loġikament korrett, imma m'għandha ebda impatt dwar il-varjabbli li huma mgħoddija lilha, bħall x uy għall prinċipali? Liema kienet l-gist tal-kwistjoni? Yeah? UDJENZA: Minħabba varjabbli magħmula kopji ta 'varjabbli fl-pass permezz funzjoni. DAVID J. Malan: Eżattament, meta inti tgħaddi varjabbli ġo funzjoni, jew argumenti fi funzjoni, dawn qed għadda minn kopja, li tfisser ikollok identika tfittex mudell ta 'bits kemm xuy, imsejħa hawn aub. U inti tista 'tagħmel xejn trid ma dawk il-kopji, iżda dawn qed tmur biex ikollhom l-ebda effett fuq il-funzjoni sejħa. U, fil-fatt, aħna ġibdet li istampa fuq l-iskrin, irtirar aħħar darba, fejn jekk inti really think dwar x'hemm għaddej taħt il hood-- jekk dan huwa memorja tal-kompjuter tiegħek, u 'l isfel hawnhekk huwa l-blokki ta' memorja qed jintużaw għal prinċipali, dan huwa l-blokki ta ' memorja qed jintużaw għal tpartit, u għandu hekk anke jekk ewlenija żewġ varjabbli, xuy, tpartit jista 'jkollhom identiċi tfittex valuri, it-tnejn li huma 1 u 2, iżda dawn qed kompletament biċċiet differenti ta 'memorja. Għalhekk għandna bżonn soluzzjoni għal din. U franchement, jidher li aħna issa jkun hemm soluzzjoni għal din il-problema, id-dritt. Jekk issa għandna l-ħila li jimmanipulaw affarijiet permezz ta 'indirizzi u, sort ta żrieżaq u slielem stil, segwi dawn vleġeġ u jmorru kullimkien rridu fil-memorja, ma setgħux aħna issolvi din il-problema billi tgħaddi minn ewlenija tpartit mhux il-valuri irridu tpartit, imma biss intuwittivament dak li nistgħu jgħaddu tpartit minflok? [INTERPOSING VOICES] DAVID J. Malan: Għaliex ma we biss tgħaddiha l-indirizzi, id-dritt? Għaliex ma we tagħti swap ta ' Mappa teżor, jekk inti se, li twassal lill- x valuri attwali u y. Ejja tpartit, attwalment ibiddlu dawk bits oriġinali, aktar milli biss tgħaddi kopji tal-bits. U għalhekk, fil-fatt, dan huwa dak l se tkun is-soluzzjoni. Din il-verżjoni hawnhekk hija bad b'mod ċar u difettuż. U issa, ewwel daqqa t'għajn, hija biss jistenna bħal aħna miżjud mazz ta 'stilel saltwarjament u qasmu idejna li hija kienet ser tiġbor. Iżda, issa se tiġbor. Imma ejja ara dak dawn l-affarijiet jfisser. U, sfortunatament, l-awturi ta C setgħet għażlet simbolu ieħor biex jagħmlu dan ftit aktar ċara, iżda l-operatur istilla għandu tifsira differenti żewġ kuntesti differenti. U Rajna tnejn, imma ejja jiddistingwu. Allura fil-quċċata hemm, meta I nbidlu u b milli s Int fil-ħażin Verżjoni li int stilla, A u B, qabel, kienu interi. Liema huma u b issa fil il-tajba, verżjoni aħdar? Huma qed indirizzi. Indirizzi ta 'dak, tkun ċara? Indirizzi tan-numri interi. Allura l-fatt li jien qal star int mezzi dan huwa l-indirizz ta ' integer, b'mod speċifiku. Allura issa avviż fil-linji ta 'kodiċi, xi ħaġa oħra inbidlet wisq. TMP jibqa l-istess, minħabba li huwa biss l-eqreb numru sħiħ temporanju, ebda magic memorja hemmhekk. Iżda issa jeħtieġ stilla. U, fil-fatt, kull Referenzi oħra au b, avviż li dak kollu li bidla minn aħmar għal aħdar hija li jien prefiss dawk il-varjabbli ma stilla. Minħabba Ma rridx li kopja u b. Għaliex jekk I biss kopja aub u swap au b, dak li jien attwalment iskambji? Just indirizzi, nixtieq li tpartit x'hemm fil dawk l-indirizzi. Irrid immur hemmhekk. U għalhekk l-operatur istilla ġewwa tal-funzjoni tiegħi, mhux ġewwa tal-lista parametru, ifisser li inti tmur għall dawk l-indirizzi u fil-fatt tinbidel dawk il-valuri. Allura dak ma l-istampa issa look like minflok. Ukoll, jekk minflok jien tgħaddi fl għal aub mhux 1 u 2-- I attwalment bżonn li jiżdiedu definizzjoni ieħor hawn. Allura jissoponi li dan chunk tal-memorja huwa fil-post 10. Dan huwa fil-post 11, iżda dan huwa daqsxejn ta 'simplifikazzjoni, I issa għandhom żewġ għażliet do I jgħaddu x uy jew għandi jgħaddu indirizzi tagħhom? Jekk I jgħaddu l-indirizzi tagħhom bħal dan, I biss issa jeħtieġ li jiġu implimentati tpartit kull l-kodiċi aħdar hekk li meta jara u meta jara b, ma biss kopja aub u jimxu l-ħalib u meraq tal-larinġ. Il-ħalib u meraq tal-larinġ metafora issa jieqaf jaħdem, għaliex dawk huma cups ta 'mapep likwidi u mhux. Għandna minflok bżonn biex tmur biex jindirizzaw 10 u aħna bżonn biex tmur biex jindirizzaw 11, u mbagħad iwettqu l-loġika iskambji. Allura l-loġika hija l-istess, iżda għandna bżonn b'mod xi ftit differenti ta 'aċċess dawk il-varjabbli. U hekk fl-aħħar, dak li l- programm għandu jħares bħal hija din. Fil swap.c litteralment kkupjata u pasted l-verżjoni aħdar. Imma I bżonn tagħmel bidla waħda. Huwa mhux biżżejjed biss biex jibdlu tpartit. Liema linja oħra tal-kodiċi għandi bżonn għall-bidla? Yeah? UDJENZA: każ li tieħu l-argumenti. DAVID J. Malan: Fejn li tieħu argument tagħha. Mela jekk jien iscroll sa prinċipali, I tista 'mhux biss jgħaddu fil xuy, u, I wegħda, l-aħħar biċċa sintassi ġdida llum. I bżonn li tgħaddi l f'mhux x u y iżda l-indirizz ta 'x uy. U jirriżulta li, is-simbolu li l-awturi ta 'C għażel huwa jekk inti tuża ampersand hawn, ma tiġi konfuża mal-ampersand bitwise, jekk tuża ampersand hawn u ampersand hawn, dan figuri fl għalik, x'inhu l-indirizz ta 'x, forsi huwa 10, x'inhu l- indirizz ta 'y, forsi huwa 11, u tgħaddi dawk minflok. Allura ħafna biex jassorbu kollha f'daqqa. Imma ejja naraw issa malajr erba tagħna minuti fadal fejn l-affarijiet jistgħu jmorru awry. U bħala twarrib, fil-fatt I ħa din l-istampa, TF ħa din l-istampa sena jew tnejn ilu. Allura dan huwa l-kantuniera ta 'wara tal Eliot Dining Hall. Pointers huma forsi l-agħar tema li aħna ikopru b'mod CS50. Mela jekk inti inkwetati-xorta ta 'inklinazzjoni huwa simili forsi huwa aktar ta 'stick hockey bħal dan, tirrealizza aħna qed tip ta kważi quċċata fil termini tal-kumplessità kunċettwali. U jien tqajjem din ritratt, minħabba I naħlef li god, fil-ħarifa 1996, meta I ħa CS50 ma sħabi tagħlim tiegħi, Nishat Mehta, hu sib me isfel fil- rokna tad-Eliot D. Hall waqt l-ikel, jew pranzu, jew xi ħaġa biex tipprova għinni jifhmu pointers. U dan huwa fejn I kien ġimgħat wara ġie introdott fl lecture meta I finalment mifhum pointers. U jien tama li din se ikklikkja bogħod kmieni għalik. Iżda jirrealizzaw dan assolutament fost is-suġġetti aktar sofistikati konna ħares lejn. Imma hija fost l-aktar qawwija. U meta inti ġġibu, huwa verament kollha biss se finalment jiltaqgħu flimkien. Allura mistrieħ assigurat li ma jeħtieġ li sink kollha fl-lum. Allura hawnhekk-aħħar programm aħna qed tmur biex tħares lejn. U aħna qed tmur biex jispiċċa bil- malajr tliet minuti ta 'claymation magħmula mill ħabib tagħna, Nick Parlante. Hawn programm, li fuq il-quċċata żewġ linji jiddikjara x uy varjabbli. Tnejn li huma indirizzi tan-numri interi, pointers AKA. Aħna mbagħad jalloka biżżejjed memorja biex taħżen l int u jaħżnu l-indirizz ta 'dik memorja fil x. Għalhekk, huwa saħansitra aktar sempliċi mill-eżempju qabel. Agħti me erba 'bytes ta' memorja, dak l-daqs ta 'int, u li jitqiegħdu indirizz x. Din il-linja hawnhekk tfisser mur l-indirizz x u tpoġġi l-tifsira ta ' ħajja, in-numru 42 hemmhekk. Iżda din il-linja inkwiet me. Star y ifisser mur l-indirizz fil-y, u n-numru unlucky 13 hemmhekk. Għaliex huwa perikoluż, f'dan il-punt fil-story-- għalkemm qal malajr fil-minuti waning tagħna here-- għaliex hi ħażina għalija li ngħid, mur l-indirizz y? UDJENZA: Inti għandek mhux [inaudible]. DAVID J. Malan: I ma jkunux jitqiegħdu xejn y. Allura x'inhi l-valur tal y, f'dan il-punt fl-istorja? Għandna l-ebda idea. Huwa xi valur żibel u lanqas ma Binky taf. Jekk nistgħu tispiċċa fil din in-nota. [Daqq video] -Hey, Binky, tqum. Wasal iż-żmien għall-gost pointer. -Dak X'inhu? Tgħallem dwar pointers? Oh, Goody. Well, li tibda, I raden aħna qed ser jeħtieġu koppja pointers. -KOLLOX SEW. Dan il-kodiċi jalloka żewġ pointers li jista 'jiġbed l interi. -OK, Sew nara l żewġ pointers, iżda dawn ma jidhirx li jkun tipponta lejn xi ħaġa. -Li Dritt. Inizjalment Pointers ma jurux xejn. L-affarijiet li jindikaw li huma imsejħa pointees u meta dawn jitwaqqfu huwa pass separat. -OH, Id-dritt, id-dritt. Jien kont naf li. Il pointees huma separati. Allura kif taħseb li jallokaw pointee? -OK, Ukoll dan jalloka kodiċi a pointee ġdid numru sħiħ, u dan parti settijiet x punt lilha. -Hey, Li jistenna aħjar. Sabiex tagħmel dan jagħmlu xi ħaġa. -OK, I ser dereference l pointer x biex jaħżnu l-għadd 42 fis pointee tagħha. Għal dan trick, I bzonn tiegħi bastun maġiku ta dereferencing. Bastun maġiku -Your ta dereferencing? Uh, li, li l-kbir. -Dan Huwa dak l-kodiċi Dehra. I ser biss twaqqaf in-numru and-- [POP ĦOSS] -Hey, Tħares hemm din tmur. Allura, tagħmel dereference fuq x ġej il-vleġġa għall-aċċess pointee tagħha. F'dan il-każ, li jaħżen 42 fil hemmhekk. Ħej, ipprova uża dan biex jaħżnu l-għadd 13 permezz tal-pointer oħra, y. -KOLLOX SEW. I ser biss jmorru fuq hawn biex y, u jiksbu n-numru 13 set up. U mbagħad ħu l-bastun tal dereferencing u just-- [Buzzer ĦOSS] -OH, Ħej li ma ma taħdimx. Say, uh, Binky, jien ma think dereferencing y hija idea tajba, għaliex twaqqif l-pointee huwa pass separat. U jien ma naħsibx we qatt ma kien. -Hmm, Punt tajjeb. -Yeah, Aħna allokati l pointer, y, iżda aħna qatt tistabbilixxi li juru li hemm pointee. -Hmm, Attent ħafna. -Hey, Qed tfittex tajba hemmhekk, Binky. Inti tista 'tiffissa lilha sabiex il-punti y l-istess pointee bħala x. -Sure, I-użu bastun maġiku tiegħi ta 'assenjazzjoni pointer. -Il Li ser tkun problema, bħal qabel? -Nru, Dan ma tmissx il-pointees. Hija biss bidliet pointer wieħed għall-punt li l-istess thing-- [Popping ĦOSS] --as ieħor. -OH, Nara. Issa punti y għall-istess post bħall x. Allura, stenna, issa y hija ffissata. Hija għandha pointee. Allura inti tista 'tipprova l-bastun tal dereferencing darb'oħra biex jibagħtu l-13 fuq. -OH, OK, hawnhekk tmur. -Hey, Tħares lejn dak. Issa dereferencing xogħlijiet fuq y. U minħabba l-pointers huma qsim li pointee wieħed, tnejn jaraw il-13. -Yeah, Qsim, uh, ikun x'ikun. Allura, aħna se jaqilbu postijiet issa? -OH, Tħares we qed barra ta 'żmien. -But-- Just remember-tliet regoli pointer. Numru 1, l-istruttura bażika huwa li inti għandek pointer, u punti fuq għal pointee. Iżda l-pointer u pointee huma separati. U l-iżball komuni huwa li jitwaqqaf indikatur iżda li tinsa biex tagħtiha pointee. Numru 2, dereferencing pointer jibda fil-pointer u jsegwi vleġġa tagħha fuq għall-aċċess pointee tagħha. Kif nafu lkoll, dan jaħdem biss jekk ikun hemm huwa pointee, liema tip ta 'gets lura li tiddeċiedi numru 1. Numru 3, pointer assenjazzjoni jieħu pointer waħda u bidliet li għall-punt li l- istess pointee bħal pointer ieħor. Allura wara l-assenjazzjoni, iż-żewġ pointers se jindika l-istess pointee, kultant li sejjaħ qsim. U li kollox hemm għaliha, verament. Bye-bye issa. [END Daqq] DAVID J. Malan: Li lilha għall CS50. Grazzi għall-Professur Nick Parlante. Aħna ser tara int ġimgħa d-dieħla. [Daqq tal-mużika ELETTRONIKA]