1 00:00:00,000 --> 00:00:03,395 >> [Daqq tal-mużika] 2 00:00:03,395 --> 00:00:11,031 3 00:00:11,031 --> 00:00:13,280 DAVID J. Malan: Dan huwa simili seminar freshman llum. 4 00:00:13,280 --> 00:00:14,060 KOLLOX SEW. 5 00:00:14,060 --> 00:00:15,024 Allura ħafna xita out. 6 00:00:15,024 --> 00:00:17,690 Dan x'aktarx li jseħħ nhar ta 'Erbgħa, iżda kollha l-opportunità aktar 7 00:00:17,690 --> 00:00:18,700 għall-mistoqsijiet llum. 8 00:00:18,700 --> 00:00:22,210 Mela ejja nibdew off fil-fatt mal-film fi ftit mument. 9 00:00:22,210 --> 00:00:24,560 Iżda aħna ser tibda grandly kif dejjem. 10 00:00:24,560 --> 00:00:28,000 >> Dan huwa CS50, u dan hija t-tmiem tal-4 ġimgħa. 11 00:00:28,000 --> 00:00:30,820 Mela jekk inti stajt qatt jarah TV jew fejn movie 12 00:00:30,820 --> 00:00:34,690 hemm xi esperti tal-kompjuter u il-pulizija, jew FBI, jew xi aġenzija 13 00:00:34,690 --> 00:00:36,930 qed jippruvaw jaqbdu xi avversarju, ukoll, inti stajt 14 00:00:36,930 --> 00:00:40,850 probabbilment jinstemgħu l-espressjoni "ittejjeb," fejn dik tekniku b'xi mod 15 00:00:40,850 --> 00:00:44,750 magically zooms fi infinitament s'issa biex tara l-kriminali 16 00:00:44,750 --> 00:00:48,640 identità jew in-numru pjanċa liċenzja anke l-shimmer ta 'mera 17 00:00:48,640 --> 00:00:50,390 jew l-glint ta 'għajnejn ta' xi ħadd. 18 00:00:50,390 --> 00:00:55,196 Allura fil-fatt, ejja tagħti ħarsa lejn ftit xeni bħal dawn minn Hollywood. 19 00:00:55,196 --> 00:00:55,862 [Daqq video] 20 00:00:55,862 --> 00:00:59,243 -OK, Issa ejja tikseb ħarsa tajba fi inti. 21 00:00:59,243 --> 00:01:06,488 22 00:01:06,488 --> 00:01:07,415 >> -Hold Dan. 23 00:01:07,415 --> 00:01:08,267 Mexxi dak lura. 24 00:01:08,267 --> 00:01:09,121 >> -Stenna minuta. 25 00:01:09,121 --> 00:01:11,300 Mur dritt. 26 00:01:11,300 --> 00:01:12,209 >> -Hemm, Friża dan. 27 00:01:12,209 --> 00:01:12,750 Screen Full. 28 00:01:12,750 --> 00:01:13,558 -OK, Friża dan. 29 00:01:13,558 --> 00:01:14,820 -Tighten Fuq dik, ser ikollok? 30 00:01:14,820 --> 00:01:16,530 -Vector F'dak is- Guy mir-rota lura. 31 00:01:16,530 --> 00:01:19,400 -Zoom Fl-dritt hawn fuq dan il-post. 32 00:01:19,400 --> 00:01:22,846 -Bil L-apparat dritt, l-immaġni jista 'jiġi estiż u inċiżiv. 33 00:01:22,846 --> 00:01:24,065 -Dak X'inhu? 34 00:01:24,065 --> 00:01:25,600 -Hija L programm titjib. 35 00:01:25,600 --> 00:01:26,860 -Jista Inti ċar li up xi? 36 00:01:26,860 --> 00:01:27,890 -I Do not know. 37 00:01:27,890 --> 00:01:29,050 Ejja ittejjeb dan. 38 00:01:29,050 --> 00:01:31,575 >> A6 -Enhance taqsima. 39 00:01:31,575 --> 00:01:33,642 >> -I Msaħħa l-dettall, and-- Naħseb li hemm 40 00:01:33,642 --> 00:01:35,433 biżżejjed biex ittejjeb, jgħadduha lill-iskrin tiegħi. 41 00:01:35,433 --> 00:01:37,080 -I Msaħħa l riflessjoni fl-għajnejn tagħha. 42 00:01:37,080 --> 00:01:38,830 >> -Let S run dan permezz video titjib. 43 00:01:38,830 --> 00:01:40,100 -Edgar, Inti tista ttejjeb dan? 44 00:01:40,100 --> 00:01:41,875 >> -Żomm. 45 00:01:41,875 --> 00:01:44,010 >> -I've Ilhom jaħdmu fuq din ir-riflessjoni. 46 00:01:44,010 --> 00:01:44,995 >> Riflessjoni -Someone s. 47 00:01:44,995 --> 00:01:45,495 -Reflection. 48 00:01:45,495 --> 00:01:47,399 -Hemm L riflessjoni tal-wiċċ tar-raġel. 49 00:01:47,399 --> 00:01:48,065 Riflessjoni -Il. 50 00:01:48,065 --> 00:01:48,981 -Hemm L riflessjoni. 51 00:01:48,981 --> 00:01:50,600 -Zoom Fuq il-mera. 52 00:01:50,600 --> 00:01:52,712 'Tista' tara riflessjoni. 53 00:01:52,712 --> 00:01:54,350 -Jista Inti jsaħħu d-dehra minn hawn? 54 00:01:54,350 --> 00:01:55,370 -Jista Inti ittejjeb lilu dritt hawn? 55 00:01:55,370 --> 00:01:56,210 -Jista Inti ittejjeb dan? 56 00:01:56,210 --> 00:01:56,900 Inti tista 'ttejjeb it? 57 00:01:56,900 --> 00:01:57,870 >> -Jista Aħna ittejjeb dan? 58 00:01:57,870 --> 00:01:58,717 >> -Jista Inti ittejjeb dan? 59 00:01:58,717 --> 00:02:00,050 -Hold Fuq it-tieni, I ser itejbu. 60 00:02:00,050 --> 00:02:00,924 -Zoom Fuq il-bieb. 61 00:02:00,924 --> 00:02:01,700 -Times 10. 62 00:02:01,700 --> 00:02:02,586 -Zoom. 63 00:02:02,586 --> 00:02:03,490 -Move In. 64 00:02:03,490 --> 00:02:03,990 -Aktar. 65 00:02:03,990 --> 00:02:04,690 -Wait, Stop. 66 00:02:04,690 --> 00:02:05,190 Stop. 67 00:02:05,190 --> 00:02:05,970 -Pause Dan. 68 00:02:05,970 --> 00:02:09,460 Dawwar il us 75 gradi madwar il-vertikali, jekk jogħġbok. 69 00:02:09,460 --> 00:02:10,962 Stop. 70 00:02:10,962 --> 00:02:14,040 Mur lura għall-parti dwar il-bieb, għal darb'oħra. 71 00:02:14,040 --> 00:02:15,860 >> -Got Enhancer immaġni li jistgħu Bitmap? 72 00:02:15,860 --> 00:02:18,776 >> -Hey, Forsi nistgħu nużaw l Pradeep Metodu sen biex tara fil-twieqi. 73 00:02:18,776 --> 00:02:20,372 Software -Dan huwa state of the art. 74 00:02:20,372 --> 00:02:21,845 >> -Il Eigenvalue huwa off. 75 00:02:21,845 --> 00:02:24,300 >> -Bil-Dritt kombinazzjoni ta 'algorithm-- 76 00:02:24,300 --> 00:02:26,755 >> Meħuda eliminazzjoni -He ta algoritmi għal-livell li jmiss, 77 00:02:26,755 --> 00:02:28,730 u I jistgħu jużawhom biex jsaħħu din ritratt. 78 00:02:28,730 --> 00:02:31,286 >> -Lock Fuq u tkabbar l-assi z. 79 00:02:31,286 --> 00:02:32,560 >> -Enhance. 80 00:02:32,560 --> 00:02:33,100 >> -Enhance. 81 00:02:33,100 --> 00:02:33,600 >> -Enhance. 82 00:02:33,600 --> 00:02:34,960 -Freeze U jtejbu. 83 00:02:34,960 --> 00:02:37,180 >> [END Daqq] 84 00:02:37,180 --> 00:02:41,160 >> DAVID J. Malan: Kull dritt, hekk kollha ta 'dawn huma attwalment kliem. 85 00:02:41,160 --> 00:02:44,450 Huma qed biss midmum flimkien mod li mhux attwalment sensibbli. 86 00:02:44,450 --> 00:02:48,400 U, fil-fatt, CS50 u korsijiet bhalu tendenza li rovina ħafna TV u films 87 00:02:48,400 --> 00:02:48,900 għalik. 88 00:02:48,900 --> 00:02:52,330 Għaliex meta dawk l-esperti tal-kompjuter huma jinstemgħu off termini u qal 89 00:02:52,330 --> 00:02:56,860 affarijiet fancy bħal eigenvectors, u l-assi z, 90 00:02:56,860 --> 00:02:59,572 u kull numru ta 'ieħor fil-fatt termini aktar tekniċi, 91 00:02:59,572 --> 00:03:02,030 dawn qed verament ftit stringing kliem flimkien spiss. 92 00:03:02,030 --> 00:03:05,020 Hija li waħda mill tamiet tagħna hija li, bħala effett sekondarju ta 'teħid korsijiet 93 00:03:05,020 --> 00:03:08,245 bħal dan, se aktar nies fil- dinja effettivament ikun jista 'iżen fil 94 00:03:08,245 --> 00:03:12,040 u biss dejjem hekk ftit jinfluwenzaw il- kwalità u l-preċiżjoni ta 'dawk il-films? 95 00:03:12,040 --> 00:03:14,350 >> Fil-fatt, ejja tagħti ħarsa lejn realtà. 96 00:03:14,350 --> 00:03:18,070 Allura hawnhekk huwa l-ritratt persunal ta ' Marija, wieħed mill-fellows tagħlim tagħna. 97 00:03:18,070 --> 00:03:20,050 U jissoponi hi suspettati ta 'xi ħaġa. 98 00:03:20,050 --> 00:03:23,730 And yet, hemm glimmer ta xi biċċa ta 'prova fl-għajnejn tagħha, 99 00:03:23,730 --> 00:03:25,480 jew fir-riflessjoni ta 'nuċċalijiet tagħha. 100 00:03:25,480 --> 00:03:30,760 Ukoll, jekk nagħmlu eżattament kif il-films tipproponi, fejn aħna zoom u "jtejbu", 101 00:03:30,760 --> 00:03:34,080 dan huwa kemm l-informazzjoni huwa fil-wiċċ Marija 102 00:03:34,080 --> 00:03:36,795 meta inti qbid immaġni ma 'dik ir-riżoluzzjoni oriġinali. 103 00:03:36,795 --> 00:03:39,120 >> U, fil-fatt, tista 'tara dawn tikek. 104 00:03:39,120 --> 00:03:41,900 U dawn huma liema huma imsejħa pixels, P-I-X-E-L-S, 105 00:03:41,900 --> 00:03:45,740 li huwa biss kwadru tipikament li huwa dot li composés immaġini. 106 00:03:45,740 --> 00:03:49,200 U lura fil-ġurnata, u fil-fatt anke illum ma 'wħud mill-lum LED TVs 107 00:03:49,200 --> 00:03:51,950 jew LCD TVs, jekk inti ħadthom ltqajna wieħed fil-kamra tiegħek jew id-dar, 108 00:03:51,950 --> 00:03:55,100 jekk inti tmur up super qrib tiegħu, u speċjalment jekk din hija TV kemmxejn anzjani, 109 00:03:55,100 --> 00:03:58,760 inti tista 'probabbilment anki tara dawn tikek u dan huwa dak compose immaġini. 110 00:03:58,760 --> 00:04:00,980 >> Ukoll, mhemmx iktar informazzjoni minn dan. 111 00:04:00,980 --> 00:04:05,400 Nistgħu "itejbu", fis-sens ta ' smoothing affarijiet aktar u tip ta ' 112 00:04:05,400 --> 00:04:09,040 ddeduċiet tip ta ', sort ta' dak li kulur għandu jkun ħdejn il-għajn Marija 113 00:04:09,040 --> 00:04:10,910 b'tali mod li mhuwiex fil-fatt hekk pixelated. 114 00:04:10,910 --> 00:04:14,510 Imma jekk I iżommu zooming, hemm huwa l-Guy ħażina fl-għajnejn tagħha. 115 00:04:14,510 --> 00:04:16,600 Bħal dik hija l- informazzjoni li għandna. 116 00:04:16,600 --> 00:04:18,920 Inti ma tistax toħloq informazzjoni ta 'xejn. 117 00:04:18,920 --> 00:04:20,790 Hemm biss finit numru ta 'bits hemmhekk. 118 00:04:20,790 --> 00:04:22,873 >> Għalhekk fl Problem Set 4, fejn għandek l-opportunità 119 00:04:22,873 --> 00:04:24,580 jilagħbu ma 'dan it-tip tad-dinja. 120 00:04:24,580 --> 00:04:27,610 Fil Set 4 Problem, inti ser tesplora l- dinja ta 'grafika, u l-forensika, 121 00:04:27,610 --> 00:04:30,870 u fil-fatt jikteb il-kodiċi li jirkupra immaġini mitlufa. 122 00:04:30,870 --> 00:04:33,510 Int ser ikollok jikteb il-kodiċi li jimmanipula immaġini eżistenti 123 00:04:33,510 --> 00:04:36,120 u finalment jifhmu x'hemm għaddej taħt il-barnuża. 124 00:04:36,120 --> 00:04:38,540 >> U, jirriżulta, huwa attwalment mhux kollha li ikkumplikata. 125 00:04:38,540 --> 00:04:41,320 Per eżempju, jekk ridna li jirrappreżentaw wiċċ smiley fejn 126 00:04:41,320 --> 00:04:44,160 ma 'dawn pixels iswed, jew dawn tikek suwed, 127 00:04:44,160 --> 00:04:47,230 ukoll, nistgħu sempliċiment jirrappreżentaw bħala verament Bitmap. 128 00:04:47,230 --> 00:04:50,040 U jekk inti kienu qatt semgħu li Bitmap espressjoni, forsi 129 00:04:50,040 --> 00:04:52,330 issa jibda jagħmel ftit aktar sens illum. 130 00:04:52,330 --> 00:04:53,580 >> Aħna diġà jafu liema daqsxejn hu. 131 00:04:53,580 --> 00:04:54,160 Li għamilhom 0 jew 1. 132 00:04:54,160 --> 00:04:56,201 U mappa huwa biss xi ħaġa bħal biċċa karta 133 00:04:56,201 --> 00:04:59,180 li jagħtik direzzjonijiet u għandha forsi grilja ta 'x- u y-koordinati. 134 00:04:59,180 --> 00:05:00,540 Allura hawnhekk hija Bitmap. 135 00:05:00,540 --> 00:05:03,680 Huwa mappa ta 'bits li biha 1 huwa apparentement 136 00:05:03,680 --> 00:05:07,857 ser jirrappreżenta pixel abjad, u 0 se jirrappreżenta pixel iswed. 137 00:05:07,857 --> 00:05:09,440 Iżda nistgħu ċertament flip madwar. 138 00:05:09,440 --> 00:05:11,648 Hija ma verament kwistjoni daqshekk Sakemm aħna qed konsistenti. 139 00:05:11,648 --> 00:05:15,570 U hawn huwa kif, fil binary-- ġewwa tal-memorja tal-kompjuter, jew saħansitra ġewwa 140 00:05:15,570 --> 00:05:18,160 ta 'fajl fuq hard tiegħek drive-- tista int taħżen 141 00:05:18,160 --> 00:05:20,240 l-aktar sempliċi ta 'immaġini wiċċ smiley. 142 00:05:20,240 --> 00:05:23,990 Imma dak li aħna, naturalment, nieqsa din id-dehra? 143 00:05:23,990 --> 00:05:24,610 Kulur, id-dritt? 144 00:05:24,610 --> 00:05:28,220 Huwa pass ovvju li jmiss jew titjib biex ittejjeb din bil-kulur. 145 00:05:28,220 --> 00:05:32,230 Allura sfortunatament biss bi wieħed bit, 0 jew 1, nistgħu jirrappreżentaw kulur. 146 00:05:32,230 --> 00:05:36,100 Dan jista 'jkun aħmar, jew blu, jew iswed, jew abjad, jew aħdar, jew roża, 147 00:05:36,100 --> 00:05:37,420 jew xi pari ta 'kuluri. 148 00:05:37,420 --> 00:05:40,860 Iżda għall-finijiet ta 'sempliċità, aħna ser biss wieħed jassumi iswed u abjad. 149 00:05:40,860 --> 00:05:45,930 >> Allura dak li loġikament għandna bżonn jekk irridu jridu jimplimentaw kulur ta 'immaġni? 150 00:05:45,930 --> 00:05:49,080 What do għandna nagħmlu? 151 00:05:49,080 --> 00:05:51,900 Simili jekk il-fattur li jillimita hawn hija li ma 'wieħed ftit inti tista' biss 152 00:05:51,900 --> 00:05:55,977 jirrappreżentaw żewġ stati, 0 jew 1, abjad jew iswed, dak li inti trid tagħmel? 153 00:05:55,977 --> 00:05:56,810 Udjenza: Aktar data. 154 00:05:56,810 --> 00:05:58,813 DAVID J. Malan: Aktar bits, yeah data aktar, aktar bits. 155 00:05:58,813 --> 00:06:01,440 U, tabilħaqq, dan huwa eżattament kif immaġini bil-kulur huma rappreżentati. 156 00:06:01,440 --> 00:06:05,120 Pjuttost milli jużaw daqsxejn waħda, 0 jew 1 għal kull pixel, kull dot, 157 00:06:05,120 --> 00:06:06,170 inti biss tuża multiplu. 158 00:06:06,170 --> 00:06:09,660 Forsi l-użu 8, forsi, aktar komunement użu 24, u tabilħaqq, fl Problem Set 159 00:06:09,660 --> 00:06:13,300 4, ser ikollok tilgħab ma 'fajl format li juża 24 bits tipikament. 160 00:06:13,300 --> 00:06:15,430 >> Iżda ħafna inti probabilment familjari ma 'JPEGs. 161 00:06:15,430 --> 00:06:17,460 Jekk inti stajt qatt jittieħdu ritratt fuq il-mobile tiegħek, 162 00:06:17,460 --> 00:06:20,360 jew imtella jew jidhru xi ħaġa fuq Facebook, jew Flickr, kwalunkwe numru 163 00:06:20,360 --> 00:06:24,882 ta 'websajts bbażati fuq ritratt, inti stajt probabbilment jidhru immaġni JPEG qabel. 164 00:06:24,882 --> 00:06:27,840 U jirriżulta li, dan huwa l-fajl format aħna qed tmur għall-użu fl PSet 4, 165 00:06:27,840 --> 00:06:30,340 fejn inti qed tmur biex huma obbligati li jirkupraw stampi 166 00:06:30,340 --> 00:06:35,160 li stajt aċċidentalment mħassra minn korrotta karta tal-memorja fil-camera, 167 00:06:35,160 --> 00:06:35,800 jekk inti se. 168 00:06:35,800 --> 00:06:38,490 >> U jirriżulta li għalkemm JPEG hija pjuttost sophisticated-- 169 00:06:38,490 --> 00:06:40,906 huwa ħafna aktar sofistikata mill-tikek suwed u bojod 170 00:06:40,906 --> 00:06:44,480 rajna mument ilu, għaliex hemm algoritmi attwalment fancy li 171 00:06:44,480 --> 00:06:47,410 huma użati biex jikkompressa JPEG, hekk li inti jista 'jkollhom tassew sbieħ, 172 00:06:47,410 --> 00:06:49,832 stampa ta 'kwalità iżda bl-użu relattivament ftit bits. 173 00:06:49,832 --> 00:06:51,790 U aħna ser terga 'lura għal kompressjoni qabel fit-tul. 174 00:06:51,790 --> 00:06:56,280 Jirriżulta li l-ewwel tliet bytes fil-image-- JPEG 175 00:06:56,280 --> 00:07:02,750 ebda kwistjoni dak li inti ħadt ritratt of-- huma l-valuri 255, 216, 255. 176 00:07:02,750 --> 00:07:05,990 >> Fi kliem ieħor, jekk inti biss tara li mudell ta 'bits, 177 00:07:05,990 --> 00:07:09,180 rrappreżentati hawnhekk kif tlieta bytes, jew 24 bits totali, 178 00:07:09,180 --> 00:07:13,810 bi probabbiltà għolja tista 'tiddeduċi li inti qiegħed tfittex lejn dan il--ewwel tliet 179 00:07:13,810 --> 00:07:15,230 bytes ta 'JPEG. 180 00:07:15,230 --> 00:07:18,040 U dan huwa dak magħruf bħala l-iffirmar ta 'JPEG. 181 00:07:18,040 --> 00:07:20,540 A lott ta 'formats tal-fajls hemmhekk għandhom tendenza li tibda 182 00:07:20,540 --> 00:07:23,735 ma 'ċerti mudelli ta' 0s u 1s, hekk li l-Windows, u Mac OS, u IOS, 183 00:07:23,735 --> 00:07:28,272 u Android taf x'tip ta 'fajl li huma, minbarra l-fajl hekk imsejħa 184 00:07:28,272 --> 00:07:29,730 estensjoni li ħafna ta 'fajls jkollhom. 185 00:07:29,730 --> 00:07:32,590 Jekk għandek jpg, li clue ieħor għall-kompjuter. 186 00:07:32,590 --> 00:07:35,310 >> Mela ejja issa nħarsu lejn din ftit aktar teknikament. 187 00:07:35,310 --> 00:07:37,390 Nafu l-deċimali sistema hija 0 sa 9. 188 00:07:37,390 --> 00:07:38,740 Nafu binarju huwa ta '0 u 1. 189 00:07:38,740 --> 00:07:41,842 U jekk taħseb lura għall PSet 0, kellna inti wrestle ma ', 190 00:07:41,842 --> 00:07:43,800 għal xi ftit, xi ħaġa imsejħa hexadeċimali, 191 00:07:43,800 --> 00:07:47,320 fejn inti għandek 16-il ċifra, minflok 10 jew minflok 2. 192 00:07:47,320 --> 00:07:50,405 U dawk ċifri, b'konvenzjoni, huma 0 sa 9 u mbagħad 193 00:07:50,405 --> 00:07:55,040 permezz f, fejn f jirrappreżenta dak numru deċimali, biss bħala sanità malajr 194 00:07:55,040 --> 00:07:56,640 check? 195 00:07:56,640 --> 00:07:57,610 Allura, 15. 196 00:07:57,610 --> 00:08:01,390 U għandu jirrappreżenta 10, biss billi natura tal-ordni li stajt mogħtija. 197 00:08:01,390 --> 00:08:04,350 Huwa biss konvenzjoni arbitrarja, imma hija pjuttost standard. 198 00:08:04,350 --> 00:08:06,870 >> Mela jekk inħarsu lejn dan il-mudell ta 'tlieta bytes-- ejja 199 00:08:06,870 --> 00:08:09,620 biss jibdew tħares lejn din fil b'mod konsistenti mal-mod kif 200 00:08:09,620 --> 00:08:12,450 xjenzjati tal-kompjuter ġeneralment tħares lejn u jaħsbu dwar fajls. 201 00:08:12,450 --> 00:08:15,580 Inti tista 'ċertament taħseb dwar fajls fil 0s, u 1s, u ċifra deċimali, 202 00:08:15,580 --> 00:08:19,340 iżda fir-realtà, għandna t-tendenza li jużaw binarja jew aktar li tipikament hexadecimal-- 203 00:08:19,340 --> 00:08:20,760 lura mill PSet 0. 204 00:08:20,760 --> 00:08:25,857 So let me jipproponi li 255, 216, u 255 huma biss dawn it-tendenzi ta 0s u 1s. 205 00:08:25,857 --> 00:08:28,440 U inti tista 'tivverifika dan jekk inti trid tagħmel l-matematika minn f'Ġimgħa 0. 206 00:08:28,440 --> 00:08:30,810 Iżda, għal issa, biss wieħed jassumi li dan huwa verament korretta. 207 00:08:30,810 --> 00:08:33,850 Stajt biss miktuba mill-ġdid tliet deċimali numri bħala tliet valuri binarja. 208 00:08:33,850 --> 00:08:36,100 Issa dak li jien ser tagħmel hu li biss żid ftit spazju abjad, 209 00:08:36,100 --> 00:08:37,266 biss għall-finijiet leġibbiltà tal. 210 00:08:37,266 --> 00:08:39,940 U avviż, jien biss ser li l-affarijiet jimxu bogħod minn xulxin. 211 00:08:39,940 --> 00:08:43,090 Allura qabel, wara, qabel, wara. 212 00:08:43,090 --> 00:08:46,180 Li qed nagħmel xejn interessanti oħra minn sempliċiment tixrid affarijiet out hekk 213 00:08:46,180 --> 00:08:50,380 l-avviż kull sett ta 'tmien bits issa huwa żewġ settijiet ta 'erba' bits. 214 00:08:50,380 --> 00:08:54,920 Dan huwa utli għaliex hexadeċimali huwa partikolarment moda 215 00:08:54,920 --> 00:09:00,930 għax kull ħames figuri hexadeċimali 0 permezz f, jew b'mod aktar speċifiku 0 permezz 15, 216 00:09:00,930 --> 00:09:03,430 jistax jiġi rappreżentat b'eżattament erba bits. 217 00:09:03,430 --> 00:09:07,960 Fi kliem ieħor, f'hexadecimal jekk inti tixtieq li jirrappreżentaw 0, huwa biss 0000, 218 00:09:07,960 --> 00:09:08,780 erba żerijiet. 219 00:09:08,780 --> 00:09:13,997 U jekk inti tixtieq li jirrapreżentaw 15, huwa 1111, li huwa erba 'bits. 220 00:09:13,997 --> 00:09:16,080 U jekk inti tagħmel l-matematika, jekk dan huwa l-post dawk, 221 00:09:16,080 --> 00:09:18,210 dan huwa l-post 16s, li għaddej biex jagħti you-- 222 00:09:18,210 --> 00:09:19,960 pjuttost li għaddej to-- sorry, fil binarju, 223 00:09:19,960 --> 00:09:23,660 li għaddej biex jagħtuk 15, dawk il-post, post twos, fours u eights post. 224 00:09:23,660 --> 00:09:26,821 So let me jipproponi li din sett ta 'erba' bits fuq ix-xellug 225 00:09:26,821 --> 00:09:28,070 huwa dak li aħna qed tmur biex sejħa f. 226 00:09:28,070 --> 00:09:30,110 Hu l-akbar numru li jista 'jirrappreżenta ma' erba 'bits. 227 00:09:30,110 --> 00:09:33,300 U aħna diġà jafu minn hexadecimal, f huwa l-akbar ċifri f'hexadecimal. 228 00:09:33,300 --> 00:09:36,020 Imxejna ltqajna ieħor f hemmhekk, żewġ aktar hemmhekk. 229 00:09:36,020 --> 00:09:38,980 U għal issa, ħu fuq il-fidi li I għamlu d-dritt matematika 230 00:09:38,980 --> 00:09:41,890 u li l-nofs xellugi ta 'dawk bits, 1101, 231 00:09:41,890 --> 00:09:43,980 huwa l-istess ħaġa bħat d f'hexadecimal. 232 00:09:43,980 --> 00:09:46,490 U l-lemin, 1000, huwa biss 8. 233 00:09:46,490 --> 00:09:48,140 >> U li wieħed faċli li wieħed jara, right? 234 00:09:48,140 --> 00:09:51,670 Il represents-- 8 huwa dritt taħt dak il-post eights. 235 00:09:51,670 --> 00:09:56,040 Allura aħna għandna waħda fil-kolonna eights u xejn fil-fours, twos jew dawk. 236 00:09:56,040 --> 00:09:59,830 Allura issa aktar konvenzjonalment, il-bnedmin għandhom tendenza jiktbu ċifri hexadecimal bħal dan, 237 00:09:59,830 --> 00:10:03,000 inti biss squish lilhom flimkien, u allura inti prefiss bl 0x. 238 00:10:03,000 --> 00:10:05,920 Dan ifisser xejn ħlief a clue viżwali għal human-- 239 00:10:05,920 --> 00:10:10,350 Hawnhekk jiġi value-- hexadeċimali għaliex jista 'ma jkunx altrimenti tkun ovvja. 240 00:10:10,350 --> 00:10:13,629 >> Li jfisser, finalment, li il-mudell ta 'żero u dawk, 241 00:10:13,629 --> 00:10:16,170 jew il-mudell ta 'hexadeċimali ċifri ekwivalenti li int 242 00:10:16,170 --> 00:10:18,990 ser tibda 'tfittex għal fil Problema Set 4 huwa this-- 243 00:10:18,990 --> 00:10:22,120 u l-spec Problema Set 4 se jimxu inti permezz ta 'dan f'aktar detail-- 244 00:10:22,120 --> 00:10:25,344 iżda jirrealizzaw kif tip ta 'arcane bħala dan tista 'tidher mad-daqqa t'għajn, 245 00:10:25,344 --> 00:10:27,010 int ser tibda tara dan il-lott. 246 00:10:27,010 --> 00:10:30,320 U fil-fatt, anki fil GDB, il- debugger aħna introdotti nhar it-Tnejn 247 00:10:30,320 --> 00:10:35,440 u Dan jintroduċi fil PSet 3, va li spiss nuruk valuri hexadeċimali 248 00:10:35,440 --> 00:10:39,910 sempliċiment minħabba li għandhom tendenza li jkunu aktar konvenzjonali minn deċimali binarja jew 249 00:10:39,910 --> 00:10:41,157 fid-dinja tal-kompjuters. 250 00:10:41,157 --> 00:10:42,490 Issa ejja dan iseħħ fil-kuntest. 251 00:10:42,490 --> 00:10:48,040 Ħafna minnkom jista tiftakar dan stampa hawn, li ġew minn dak? 252 00:10:48,040 --> 00:10:51,240 Vista, hekk anke qabel li, Windows XP ma dan id-debutt. 253 00:10:51,240 --> 00:10:52,620 Allura dan huwa pajsaġġ sabiħa. 254 00:10:52,620 --> 00:10:55,940 U fil-fatt, jekk inti poke madwar online-- Naħseb li huwa artikolu Wikipedia, 255 00:10:55,940 --> 00:11:00,110 fejn xi ħadd amazingly ħafna marru out jinstab dan post fid-dinja imwaqqaf 256 00:11:00,110 --> 00:11:02,240 tiegħu jew kamera tagħha fil preċiżament il place-- dritt 257 00:11:02,240 --> 00:11:06,510 u dan illum jistenna like-- iżda huwa eżattament l-istess setting. 258 00:11:06,510 --> 00:11:10,060 Din id-dehra, għalkemm, hi fil-fajl format imsejħa Bitmap, b 'm-p. 259 00:11:10,060 --> 00:11:12,910 U aħna qed tmur biex tieħu super t'għajn malajr fil dak li tfisser. 260 00:11:12,910 --> 00:11:17,770 >> Iżda Bitmap huwa biss mod differenti ta ' li jirrappreżentaw immaġini għadhom jużaw pixels 261 00:11:17,770 --> 00:11:19,580 fil 0s u 1s, finalment. 262 00:11:19,580 --> 00:11:23,282 Iżda fl t'għajn malajr, hija għandha firma aktar interessanti 263 00:11:23,282 --> 00:11:24,490 fil-bidu tal-fajl. 264 00:11:24,490 --> 00:11:26,670 Huwa mhux biss tlieta bytes, pjuttost hemm 265 00:11:26,670 --> 00:11:30,770 mazz sħiħ ta 'mudelli ta' bytes li jkunu predeterminati tifsira. 266 00:11:30,770 --> 00:11:34,490 Per eżempju, x'imkien fil- ewwel ftit bytes ta 'immaġni Bitmap 267 00:11:34,490 --> 00:11:37,440 se jkun id-daqs tal- immaġni, il-wisa 'l-immaġini, 268 00:11:37,440 --> 00:11:40,390 l-għoli tad-dehra, hekk metadata utli, jekk inti se. 269 00:11:40,390 --> 00:11:43,940 Informazzjoni utli li Photoshop jew xi grafika programm inti qed tuża 270 00:11:43,940 --> 00:11:45,180 jistgħu attwalment kura dwar. 271 00:11:45,180 --> 00:11:47,170 >> Allura aktar dwar dan fil Problema Set 4, iżda dan 272 00:11:47,170 --> 00:11:49,220 huwa biss li wieħed jgħid li fl-aħħar tal-ġurnata 273 00:11:49,220 --> 00:11:52,390 l-formati tal-fajl inti kont qed tuża għall years-- fajls Microsoft Word, 274 00:11:52,390 --> 00:11:55,820 Numri fajls, fajls Excel, kwalunkwe numru ta 'formats tal-fajls 275 00:11:55,820 --> 00:11:57,770 li jista 'jkollhom xi estensjoni fajl magħruf 276 00:11:57,770 --> 00:12:00,130 huma biss 0s u 1s taħtha il-barnuża. 277 00:12:00,130 --> 00:12:02,970 U l-bnedmin iddeċidejt dak li l-konvenzjonijiet għandhom, 278 00:12:02,970 --> 00:12:08,340 liema mudelli ta '0s u 1s jirrappreżentaw fajl Word versus fajl Excel, 279 00:12:08,340 --> 00:12:10,322 versus kull numru ta 'formats tal-fajls oħra. 280 00:12:10,322 --> 00:12:12,780 Għalhekk fl PSet 4, inti ser ikollhom opportunità li tilgħab ma 'dak. 281 00:12:12,780 --> 00:12:14,405 >> Imma dak ma jfisser li jkollhom Istituzzjonjijiet. 282 00:12:14,405 --> 00:12:18,012 Dan huwa attwalment segue sbieħ issa fis C, li għandha biss ftit 283 00:12:18,012 --> 00:12:20,220 karatteristiċi ta 'addizzjonali li għadna ma ħares lejn s'issa. 284 00:12:20,220 --> 00:12:24,230 Huwa lingwa pretty żgħar u wieħed mill il-karatteristiċi sbieħ dwar Ċ hija Istituzzjonjijiet. 285 00:12:24,230 --> 00:12:27,300 Per eżempju, jekk inti riedu represent-- ejja 286 00:12:27,300 --> 00:12:33,690 jgħidu int riedu li jkollhom varjabbli li jirrappreżenta student f'xi programm. 287 00:12:33,690 --> 00:12:37,330 Forsi inti kienu kitba ta 'kors programm ta 'reġistrazzjoni, jew shopping qalba 288 00:12:37,330 --> 00:12:38,870 għodda, jew xi ħaġa bħal dik. 289 00:12:38,870 --> 00:12:42,922 Liema huma biċċiet ta 'data relatata ma' lil student li jiġu f'moħħna? 290 00:12:42,922 --> 00:12:44,880 Bħal student huwa rappreżentati ma 'dak valuri? 291 00:12:44,880 --> 00:12:45,732 Yeah? 292 00:12:45,732 --> 00:12:46,940 Għandek isem bħala student. 293 00:12:46,940 --> 00:12:48,900 X'iktar ma student tipiku jkollu? 294 00:12:48,900 --> 00:12:49,320 >> UDJENZA: [inaudible] 295 00:12:49,320 --> 00:12:50,200 >> DAVID J. Malan: Allura, sorry. 296 00:12:50,200 --> 00:12:50,660 >> UDJENZA: Età. 297 00:12:50,660 --> 00:12:52,980 >> DAVID J. Malan: An età jew birthday b'mod ekwivalenti, Yep. 298 00:12:52,980 --> 00:12:53,557 X 'iktar? 299 00:12:53,557 --> 00:12:54,390 UDJENZA: numru ta 'identifikazzjoni? 300 00:12:54,390 --> 00:12:57,460 DAVID J. Malan: Allura numru ta 'identifikazzjoni, forsi numru tat-telefon, forsi dorm, jew dar, 301 00:12:57,460 --> 00:12:58,670 jew kulleġġ, jew xi ħaġa bħal dik. 302 00:12:58,670 --> 00:13:01,820 Kull numru ta 'biċċiet ta' data li inti jista 'jkollhom fil-lista kuntatti tiegħek 303 00:13:01,820 --> 00:13:03,890 huwa dak li jista 'jiddefinixxi student. 304 00:13:03,890 --> 00:13:08,490 Mela jekk ridna li tagħmel dan, fil-kodiċi, nistgħu nagħmlu xi ħaġa sempliċi bħal dan. 305 00:13:08,490 --> 00:13:15,670 Aħna jista 'jkollhom programm sabiex għandha ejja ngħidu, int prinċipali (vojt). 306 00:13:15,670 --> 00:13:18,920 U jekk irrid jirrappreżentaw student I jista 'jkollhom, per eżempju, 307 00:13:18,920 --> 00:13:24,330 string imsejjaħ isem għal dak student, string imsejjaħ dorm għal dak student, 308 00:13:24,330 --> 00:13:26,900 forsi int sejjaħ ID għal dak student. 309 00:13:26,900 --> 00:13:30,840 U għaliex jien jużaw string, I bżonn li jmorru lura u mqiegħda CS50.h. 310 00:13:30,840 --> 00:13:33,300 Forsi jien ser bżonn stdio.h. 311 00:13:33,300 --> 00:13:38,190 So let me preemptively do dawn u jien ser sejħa dan student.c għal issa 312 00:13:38,190 --> 00:13:40,080 u ħlief dan. 313 00:13:40,080 --> 00:13:44,206 >> U issa I tista 'tagħmel xi ħaġa ma dawn il-varjabbli. 314 00:13:44,206 --> 00:13:46,830 U aħna qed biss ser jikteb li bħala kumment fil-kodiċi psewdo, 315 00:13:46,830 --> 00:13:48,829 għaliex mhuwiex interessanti dak li nagħmlu għal issa. 316 00:13:48,829 --> 00:13:51,242 OK, għalhekk dan huwa programm li b'xi ħwienet student. 317 00:13:51,242 --> 00:13:53,450 What do I trid tagħmel jekk I tixtieq li taħżen żewġ studenti? 318 00:13:53,450 --> 00:13:55,991 Allura l-ewwel istint tiegħi huwa għaddej li jkun id-dritt, stenna minuta, 319 00:13:55,991 --> 00:14:01,920 jekk ikolli student ieħor għaliex ma I biss tagħmel isem string 2, spag dorm 2, 320 00:14:01,920 --> 00:14:04,190 ID2 int. 321 00:14:04,190 --> 00:14:06,540 U aħna ghamilt marret f'din it-triq qabel 322 00:14:06,540 --> 00:14:10,890 u dak li kien soluzzjoni tagħna għal dak li jidher li jkun it-tip ta 'pejst kopja hackish 323 00:14:10,890 --> 00:14:11,555 xogħol hawn? 324 00:14:11,555 --> 00:14:12,346 UDJENZA: Firxa. 325 00:14:12,346 --> 00:14:13,830 DAVID J. Malan: Yeah, nistgħu jużaw firxa. 326 00:14:13,830 --> 00:14:15,620 Dritt dan malajr ħafna isir dens. 327 00:14:15,620 --> 00:14:18,453 Inti għandek biex issolvi tal arbitrarjament tibda ismijiet kollha ta 'dawn il-varjabbli. 328 00:14:18,453 --> 00:14:22,190 U inti, il-bniedem, għandhom iżommu track li jikkorrispondi name2 OK 329 00:14:22,190 --> 00:14:25,060 ma dorm2 tikkorrispondi mal ID2. 330 00:14:25,060 --> 00:14:26,200 Hija biss isir mess. 331 00:14:26,200 --> 00:14:29,350 Allura huwa ħafna aktar faċli, jitlob lura mingħandhom ftit ġimgħat ilu, 332 00:14:29,350 --> 00:14:34,300 għal ftit ma jkollhom għalfejn imsejħa ismijiet string u forsi tagħtina tlieta minn dawn. 333 00:14:34,300 --> 00:14:36,940 U allura forsi għandna dorms spag u jkollhom 334 00:14:36,940 --> 00:14:41,900 tlieta minn dawn, jew ma 'kostanti, int ids u jkollhom tlieta minn dawn. 335 00:14:41,900 --> 00:14:45,250 Iżda anke issa dan iħoss ftit sloppy, right. 336 00:14:45,250 --> 00:14:49,440 Aħna qed jitkellem dwar l-istudenti u għadhom Ninsab verament abitazzjoni fuq il-livell baxx 337 00:14:49,440 --> 00:14:50,470 dettalji tal-implimentazzjoni. 338 00:14:50,470 --> 00:14:52,790 L-istudent huwa isem u dorm u ID. 339 00:14:52,790 --> 00:14:59,814 >> Għaliex ma tistax I biss tiddikjara varjabbli imsejħa student u sejħa hija s. 340 00:14:59,814 --> 00:15:02,230 U jekk irrid student ieħor, għaliex ma I biss sejħa hija t. 341 00:15:02,230 --> 00:15:05,260 Jew jekk irrid mazz sħiħ ta 'studenti, għaliex ma I biss 342 00:15:05,260 --> 00:15:09,740 jgħidu I jkollhom klassi kollha ta ' istudenti, u huwa tlieta minnhom. 343 00:15:09,740 --> 00:15:12,470 Fi kliem ieħor, għaliex ma nista jiġu up ma 'tip data tiegħi stess, imsejħa 344 00:15:12,470 --> 00:15:15,641 Studenti, ġewwa minnhom hija isem, huwa ID, huwa dorm, 345 00:15:15,641 --> 00:15:16,890 huwa kull numru ta 'oqsma oħra. 346 00:15:16,890 --> 00:15:19,030 U jirriżulta inti tista 'tagħmel eżattament dan. 347 00:15:19,030 --> 00:15:21,850 >> Allura C din il-karatteristika imsejjaħ Istituzzjonjijiet. 348 00:15:21,850 --> 00:15:24,700 Li karatteristika lingwa li jippermetti li jagħmlu eżattament dan. 349 00:15:24,700 --> 00:15:28,370 Jien ser jimxi 'l quddiem u jiftħu structs.h 350 00:15:28,370 --> 00:15:32,299 fejn aħna qed tmur biex tara d- wara definizzjoni ta 'student. 351 00:15:32,299 --> 00:15:35,215 Jirriżulta - u dan wieħed anki sempliċi minn dik li jinvolvi ID 352 00:15:35,215 --> 00:15:36,080 mument ilu. 353 00:15:36,080 --> 00:15:39,120 Jekk inti tixtieq li toħroġ bi tip tiegħek tad-data homemade, 354 00:15:39,120 --> 00:15:42,750 u barra minn hekk li int, u char u float u dawn l-oħrajn kollha li jeżistu, 355 00:15:42,750 --> 00:15:45,810 inti tista 'tagħmel dan billi litteralment miktub Struct typedef, 356 00:15:45,810 --> 00:15:47,880 imbagħad xi braces kaboċċi, ġewwa ta 'li inti 357 00:15:47,880 --> 00:15:51,460 lista tal-varjabbli li trid jassoċjaw ma 'din id-data custom ġodda 358 00:15:51,460 --> 00:15:55,670 tip bħal isem u dorm, u mbagħad wara l-braces kaboċċi 359 00:15:55,670 --> 00:15:57,860 inti tagħti isem it-tip ta 'dejta ġdid. 360 00:15:57,860 --> 00:15:59,220 Allura, per eżempju, student. 361 00:15:59,220 --> 00:16:03,247 >> U x'hemm sbieħ dwar dan issa huwa li jekk inħarsu lejn il-kodiċi korrispondenti, 362 00:16:03,247 --> 00:16:05,080 il-konvenzjoni, l-ewwel ta 'kulħadd, huwa li tpoġġi din 363 00:16:05,080 --> 00:16:08,230 fil-fajl imsejħa xi ħaġa dot h, fajl header, li aħna ma 364 00:16:08,230 --> 00:16:09,780 bdew jużaw nfusna wisq. 365 00:16:09,780 --> 00:16:12,120 Iżda aħna qed tmur biex tibda użu pjuttost ftit issa. 366 00:16:12,120 --> 00:16:18,650 U x'nistgħu nagħmlu ma 'dan, finalment, f'dawn ftit linji ta 'kodiċi 367 00:16:18,650 --> 00:16:22,130 huwa jiddikjara eżattament dan tip ta 'data, student. 368 00:16:22,130 --> 00:16:23,230 U issa ejja jużawh. 369 00:16:23,230 --> 00:16:27,274 >> Jien ser issa jmorru fil fajl imsejjaħ structs1.c. 370 00:16:27,274 --> 00:16:29,440 U ejja tagħti ħarsa lejn ftit karatteristiċi hawn. 371 00:16:29,440 --> 00:16:32,250 Allura l-għalf up hawnhekk huwa aktar familjari, u aħna ser 372 00:16:32,250 --> 00:16:35,040 terga 'lura għal dak li mhux familjari fi ftit mument. 373 00:16:35,040 --> 00:16:39,880 Dan naturalment huwa inkluż tiegħi stess fajl header, li huwa ġdid kif ukoll, 374 00:16:39,880 --> 00:16:42,580 ħlief għal PSet 3 fejn, irtirar, għandna helpers.h. 375 00:16:42,580 --> 00:16:45,150 Allura inti tista 'recall helpers.h #include. 376 00:16:45,150 --> 00:16:49,381 >> Why am I għalkemm jużaw kwotazzjonijiet minflok parentesi angolati? 377 00:16:49,381 --> 00:16:50,630 Meta nista jagħżlu bejniethom? 378 00:16:50,630 --> 00:16:52,310 Kważi dejjem I jidhru għall-użu parentesi angolata. 379 00:16:52,310 --> 00:16:55,040 U mbagħad, kollha f'daqqa fuq linja sitt Jien jużaw kwotazzjonijiet doppja. 380 00:16:55,040 --> 00:16:55,860 Għaliex jista 'jkun? 381 00:16:55,860 --> 00:16:56,700 Yeah? 382 00:16:56,700 --> 00:16:57,725 >> UDJENZA: [inaudible] 383 00:16:57,725 --> 00:16:59,350 DAVID J. Malan: Li reali, liema? 384 00:16:59,350 --> 00:17:00,559 UDJENZA: Li fil IDE tiegħek. 385 00:17:00,559 --> 00:17:02,475 DAVID J. Malan: Yeah, li fil IDE attwali tiegħi. 386 00:17:02,475 --> 00:17:05,690 U ejja ma tiffokax fuq il-IDE, minħabba li jinsab biss għodda li jien jużaw. 387 00:17:05,690 --> 00:17:08,119 Li fil kurrenti tiegħi tad-direttorju, b'mod speċifiku. 388 00:17:08,119 --> 00:17:11,647 Allura structs.h huwa fajl tiegħi stess mhux installat fil-IDE, 389 00:17:11,647 --> 00:17:14,480 fis-sistema operattiva nnifisha, pjuttost huwa direttorju kurrenti tiegħi. 390 00:17:14,480 --> 00:17:16,910 Allura l-konvenzjoni hija jekk inti tixtieq biex jinkludu fajl tiegħek header stess, 391 00:17:16,910 --> 00:17:18,200 inti biss tuża kwotazzjonijiet doppja. 392 00:17:18,200 --> 00:17:23,290 >> What do nitolbu dan ħaġa fil linja 8, ġeneralment? 393 00:17:23,290 --> 00:17:25,200 Dan huwa dak? 394 00:17:25,200 --> 00:17:28,220 xi ħaġa #define. 395 00:17:28,220 --> 00:17:31,040 Dan jirrappreżenta kostanti, id-dritt? 396 00:17:31,040 --> 00:17:33,140 Jekk inti tixtieq li jkollok valur fil-programm tiegħek 397 00:17:33,140 --> 00:17:35,110 li tuża sħiħ mazz ta 'drabi, huwa 398 00:17:35,110 --> 00:17:39,330 konvenzjoni tajba għall-fattur it out, tiddikjaraha, bis-simbolu hash 399 00:17:39,330 --> 00:17:43,340 jiddefinixxu, imbagħad, b'konvenzjoni, fl- uppercase word-- għalkemm mhuwiex 400 00:17:43,340 --> 00:17:45,320 strettament meħtieġ, imma huwa konvenzjoni tal-bniedem 401 00:17:45,320 --> 00:17:47,210 li tikkapitalizza kostanti sabiex dawn jaqbżu 402 00:17:47,210 --> 00:17:50,380 fi inti visually-- ispazju u allura l-valur inti tixtieq li tkun 403 00:17:50,380 --> 00:17:52,250 ekwivalenti għal isem li kostanti s. 404 00:17:52,250 --> 00:17:56,110 Nru punto virgola, imma inti sempliċiment jirriżultax li mudell hemm. 405 00:17:56,110 --> 00:17:57,770 >> Allura dak am I tagħmel f'dan il-kodiċi attwali. 406 00:17:57,770 --> 00:18:00,660 Mela ejja tagħti ħarsa lejn il-programm prinċipali hawnhekk. 407 00:18:00,660 --> 00:18:04,080 B'konformità 12 minħabba I inkludew structs.h, 408 00:18:04,080 --> 00:18:06,492 I issa għandhom magically fil tiegħi rimi ta 'tip ta' data ġdida. 409 00:18:06,492 --> 00:18:09,200 I ma biss ikollhom aċċess għall int, u char, u float, u spag, 410 00:18:09,200 --> 00:18:10,060 u blu u oħrajn. 411 00:18:10,060 --> 00:18:12,470 I issa għandhom aċċess għal tip data student. 412 00:18:12,470 --> 00:18:17,740 Dan b'konformità 12, jien kombinazzjoni ta 'żewġ ideas-- wieħed tip data tad-dwana u tnejn, 413 00:18:17,740 --> 00:18:18,940 użu ta 'firxa. 414 00:18:18,940 --> 00:18:21,700 U hekk f'dan il-programm jekk Irrid li attwalment jappoġġaw 415 00:18:21,700 --> 00:18:24,320 tliet studenti differenti fil-programm tiegħi, I 416 00:18:24,320 --> 00:18:30,480 tista sempliċement jgħidu tagħti me a varjabbli imsejħa studenti, li kull waħda minnhom 417 00:18:30,480 --> 00:18:32,970 huwa ta 'studenti tip, li huwa tip ta 'data tad-dwana tiegħi. 418 00:18:32,970 --> 00:18:35,890 U, b'mod speċifiku, agħti lili tlieta minn dawk fil-firxa tiegħi. 419 00:18:35,890 --> 00:18:37,750 >> Allura issa dak li nagħmlu f'dan il-programm? 420 00:18:37,750 --> 00:18:40,670 Hawn biss għall mtennija loop 0-3, minħabba li l 421 00:18:40,670 --> 00:18:42,110 dak il-valur ta 'studenti hu. 422 00:18:42,110 --> 00:18:44,420 Jien biss suġġeriment l-utent tagħti me isem l-istudent. 423 00:18:44,420 --> 00:18:48,090 U mbagħad fil-linja 17, aħna għandhom linja aktar familjari. 424 00:18:48,090 --> 00:18:50,370 Għandna ħabib antik tagħna GetString fuq il-lemin. 425 00:18:50,370 --> 00:18:52,345 U dak biċċa sintassi hija apparentement ġdid, 426 00:18:52,345 --> 00:18:55,130 jekk inti stajt qatt programmati C qabel, u qatt ma użaw l-structs? 427 00:18:55,130 --> 00:18:55,510 Yeah? 428 00:18:55,510 --> 00:18:56,417 >> UDJENZA: Il .name. 429 00:18:56,417 --> 00:18:57,500 DAVID J. Malan: Il .name. 430 00:18:57,500 --> 00:19:01,220 Imma dan mhux wisq ta 'qabża, minħabba li issa istudenti parentesi i 431 00:19:01,220 --> 00:19:02,590 jagħtik l-istudent numru i. 432 00:19:02,590 --> 00:19:04,730 U jekk inti tixtieq li adsa ġewwa ta 'din l-istruttura, 433 00:19:04,730 --> 00:19:09,490 inti biss tuża perjodu wieħed u allura l-isem tal-varjabbli ġewwa, 434 00:19:09,490 --> 00:19:11,900 jew il-proprjetà ġewwa li inti tixtieq li tikseb aċċess għall. 435 00:19:11,900 --> 00:19:14,816 Bl-istess mod imbagħad, jekk I imbagħad fil-pront il- utent, jagħtu me dorm l-istudent, 436 00:19:14,816 --> 00:19:18,390 inti tista 'bl-istess mod tinżamm din string fil-varjabbli dorm ġewwa 437 00:19:18,390 --> 00:19:19,940 ta 'dik l-istruttura student. 438 00:19:19,940 --> 00:19:21,410 >> U issa l-affarijiet jiksbu fancy ftit. 439 00:19:21,410 --> 00:19:24,420 U dan se tħares fi forsi ħafna pjuttost malajr. 440 00:19:24,420 --> 00:19:27,970 Imma inti taf tara dan ħafna iktar fil PSet 4, so ejja biss t'għajn lejn dan issa. 441 00:19:27,970 --> 00:19:33,364 Jirriżulta li fil-linja 23 permezz 38, x'taħseb qed nagħmel forsi? 442 00:19:33,364 --> 00:19:35,530 Stajt jitneħħew l-kummenti għal-lum, iżda l-verżjoni 443 00:19:35,530 --> 00:19:38,660 tal-kodiċi online għall referenza għandha kummenti kollha. 444 00:19:38,660 --> 00:19:40,171 What do I jidhru li tkun qiegħda tagħmel? 445 00:19:40,171 --> 00:19:42,530 >> UDJENZA: Iffrankar il-fajl ma 'l l-informazzjoni li l-utent daħal. 446 00:19:42,530 --> 00:19:44,530 >> DAVID J. Malan: Yeah, eżattament, dan huwa mod ġdid 447 00:19:44,530 --> 00:19:46,370 li aħna qed tara tnejn, fattur ieħor ta 'C, 448 00:19:46,370 --> 00:19:48,700 li biha I tista 'toħloq fajls tiegħi stess. 449 00:19:48,700 --> 00:19:51,580 S'issa, kważi kull programm inti stajt bil-miktub mingħajr Stat. 450 00:19:51,580 --> 00:19:53,334 Hekk kif dan isir taħdem, thats it. 451 00:19:53,334 --> 00:19:55,000 M'hemm l-ebda memorja jew rikollizzjoni ta 'dan. 452 00:19:55,000 --> 00:19:56,110 M'hemm l-ebda fajl ffrankati. 453 00:19:56,110 --> 00:19:58,120 Imma jekk inti tixtieq li jiffranka input li għandha 454 00:19:58,120 --> 00:20:02,100 ġara, bħal fil-logħba jew programm bħal dan, jirriżulta nistgħu nagħmlu hekk. 455 00:20:02,100 --> 00:20:04,360 U tkun taf tara dan aktar fil PSet 4 u fit-Taqsima. 456 00:20:04,360 --> 00:20:08,661 Iżda din il-linja 23 essenzjalment toħloq fajl imsejjaħ students.csv. 457 00:20:08,661 --> 00:20:10,160 U inti tista raw dan qabel. 458 00:20:10,160 --> 00:20:14,250 Anke jekk inti stajt qatt studjati CS qabel, CSV huwa varjabbli mhux mifrudin comma. 459 00:20:14,250 --> 00:20:19,000 Huwa simili raġel fqir ħafna Verżjoni ta 'fajl Excel, 460 00:20:19,000 --> 00:20:22,270 li jfisser li jista 'jinfetaħ fl-Excel u Numri Apple, 461 00:20:22,270 --> 00:20:23,830 u għandu ringieli u kolonni. 462 00:20:23,830 --> 00:20:26,485 Imma din mhix proprjetarja format bħal Microsoft jew Apple. 463 00:20:26,485 --> 00:20:29,840 Huwa biss virgoli jisseparaw l valuri li aħna ser tara fil-mument. 464 00:20:29,840 --> 00:20:31,010 >> U ħu raden. 465 00:20:31,010 --> 00:20:33,480 F'konformità 23, fil-ħafna aħħar, it-tieni argument tiegħi 466 00:20:33,480 --> 00:20:37,700 biex din il-funzjoni ġdida msejħa f miftuħa għall-fajl miftuħ huwa w. 467 00:20:37,700 --> 00:20:39,430 Liema jista w juri? 468 00:20:39,430 --> 00:20:40,022 Yeah? 469 00:20:40,022 --> 00:20:41,260 >> UDJENZA: Hija ihallik jikteb lill-fajl? 470 00:20:41,260 --> 00:20:42,630 >> DAVID J. Malan: Hija tikri tikteb għall-fajl. 471 00:20:42,630 --> 00:20:44,810 Allura hemm koppja ta 'varjanti li nistgħu plagg fil hawn. 472 00:20:44,810 --> 00:20:47,184 Imma jekk inti biss tixtieq li taqra il-fajl, jiġifieri tħares lejn din 473 00:20:47,184 --> 00:20:50,010 u taqrah fil-memorja, inti biss użu quote unquote "r". 474 00:20:50,010 --> 00:20:53,110 Jekk inti tixtieq li jikteb lill- fajl, tuża kwotazzjoni unquote "w". 475 00:20:53,110 --> 00:20:55,190 Hemm ukoll tehmeż u koppja ta 'affarijiet oħra 476 00:20:55,190 --> 00:20:57,356 jekk inti tixtieq li timmodifika fajls eżistenti. 477 00:20:57,356 --> 00:21:00,480 Issa aħna qed tmur biex tibqa 'tara dan ħaġa, allura aħna ser terga 'lura għal-linja 24. 478 00:21:00,480 --> 00:21:02,640 NULL, jirriżulta, huwa valur speċjali li 479 00:21:02,640 --> 00:21:06,070 jistgħu jiġu rritornati minn ċerti funzjonijiet jekk xi ħaġa marret wrong-- 480 00:21:06,070 --> 00:21:08,490 jekk il-fajl ma teżistix, jekk inti ħadthom jispiċċaw ta 'memorja, 481 00:21:08,490 --> 00:21:09,620 jew mazz ta 'żbalji oħra. 482 00:21:09,620 --> 00:21:13,470 Iżda għal issa, ejja biss wieħed jassumi li din huwa iċċekkjar żball biss konvenzjonali. 483 00:21:13,470 --> 00:21:17,090 Hawnhekk fil-linja 26, jien mtennija 0-3 fuq l-istudenti kollha tiegħi. 484 00:21:17,090 --> 00:21:20,470 U dan huwa tip ta 'tip ta 'funzjoni ġdida, fprintf, 485 00:21:20,470 --> 00:21:21,460 imma ħu raden. 486 00:21:21,460 --> 00:21:24,370 Jekk printf huwa biss print string fformattjati, 487 00:21:24,370 --> 00:21:26,507 dak ma fprintf probabbilment jfisser? 488 00:21:26,507 --> 00:21:27,590 UDJENZA: Stampa għal fajl. 489 00:21:27,590 --> 00:21:29,290 DAVID J. Malan: Stampa a string ifformattjat għall-fajl. 490 00:21:29,290 --> 00:21:31,180 Dak hu l-addizzjonali f mezzi huwa fajl. 491 00:21:31,180 --> 00:21:36,420 U l-ewwel argument ġdida trid tiġi il-varjabbli li tirrappreżenta fajl tiegħek. 492 00:21:36,420 --> 00:21:38,866 Imbagħad aħna biss ikollhom format string bħad printf. 493 00:21:38,866 --> 00:21:40,740 U anki jekk dan sintassi huwa ġdid, dan biss 494 00:21:40,740 --> 00:21:44,610 tfisser plagg fl-isem l-istudent, -plagg fil-dorm student, u mbagħad 495 00:21:44,610 --> 00:21:47,160 ma fclose, agħlaq il-fajl. 496 00:21:47,160 --> 00:21:49,730 U allura lastly-- dan huwa ġdid u aħna ser terga 'lura għal dan 497 00:21:49,730 --> 00:21:53,240 qabel long-- Jien ħelsien l-istudent għal raġunijiet 498 00:21:53,240 --> 00:21:54,860 li ġara up hawn fuq hemmhekk. 499 00:21:54,860 --> 00:21:56,820 Iżda aħna ser terga 'lura li li qabel long-- 500 00:21:56,820 --> 00:21:59,820 dan għaliex ta 'kif GetString huwa attwalment qed jaħdmu taħt il-barnuża. 501 00:21:59,820 --> 00:22:01,280 >> Mela ejja tagħti ħarsa hawn. 502 00:22:01,280 --> 00:22:04,380 Jekk I ls tip fl-direttorju tiegħi, avviż li jien ma 503 00:22:04,380 --> 00:22:09,360 jkollhom fajl imsejjaħ students.csv, biss ma jkunx hemm, ma teżistix. 504 00:22:09,360 --> 00:22:14,965 Mela jekk jien issa jiġbor dan il-programm, jagħmlu structs-1,. / structs-1, 505 00:22:14,965 --> 00:22:20,570 u jien ser jimxi 'l quddiem u tip Andi, li jgħix fi Berkeley fil-Yale. 506 00:22:20,570 --> 00:22:26,350 Aħna ser ikollhom Rob li jgħix fil Thayer f'dawn il-jiem. 507 00:22:26,350 --> 00:22:33,760 U ejja toħroġ bi fejn huwa, I think, Maria hija fil Mather, 508 00:22:33,760 --> 00:22:35,100 jekk ikolli mfakkar b'mod korrett. 509 00:22:35,100 --> 00:22:36,460 >> Allura xejn ma jidher li jiġri. 510 00:22:36,460 --> 00:22:40,680 Imma jekk jien ls-tip issa, hemm students.csv. 511 00:22:40,680 --> 00:22:43,080 Ejja imorru quddiem u students.csv miftuħa. 512 00:22:43,080 --> 00:22:46,050 Dan ukoll ħafna format tal-fajl ħfief. 513 00:22:46,050 --> 00:22:49,570 Imma stajt sempliċiment adotta konvenzjoni li għandi żewġ ringieli u kolonni hawn. 514 00:22:49,570 --> 00:22:52,020 L-ewwel kolonna hija ewwel ismijiet tan-nies. 515 00:22:52,020 --> 00:22:55,740 It-tieni kolonna hija l-istudent ta dorm, jew kulleġġ, jew dar, jew whatnot. 516 00:22:55,740 --> 00:22:57,900 U issa stajt salvati dan b'mod permanenti fil-fajl. 517 00:22:57,900 --> 00:22:59,280 >> Allura huwa mhux kollha li interessanti. 518 00:22:59,280 --> 00:23:02,980 Iżda din hija biss tarġa issa li jkunu kapaċi jippersistu informazzjoni 519 00:23:02,980 --> 00:23:04,040 b'mod permanenti. 520 00:23:04,040 --> 00:23:08,340 Mela ejja ara issa liema aktar li nistgħu ma 'dawn u oħrajn karatteristiċi. 521 00:23:08,340 --> 00:23:10,729 Iżda l-ewwel, xi mistoqsijiet? 522 00:23:10,729 --> 00:23:12,145 Dan kien ħafna, u li kien mgħaġġel. 523 00:23:12,145 --> 00:23:16,131 Imma inti taf tara ħafna aktar fil PSet 4, kif ukoll. 524 00:23:16,131 --> 00:23:16,630 Yeah? 525 00:23:16,630 --> 00:23:19,360 >> UDJENZA: Hemm mod biex tkompli żżid ismijiet mal dan il-fajl? 526 00:23:19,360 --> 00:23:19,880 >> DAVID J. Malan: Tajba kwistjoni. 527 00:23:19,880 --> 00:23:21,800 Hemm mod biex ikomplu żżid ismijiet mal dan il-fajl? 528 00:23:21,800 --> 00:23:22,340 Iva. 529 00:23:22,340 --> 00:23:24,630 U, fil-fatt, jekk inti tispiċċa up mill-ġdid jinfetaħ ir-reġistru, 530 00:23:24,630 --> 00:23:26,780 inti tuża quote unquote "a" għal tehmeż, 531 00:23:26,780 --> 00:23:31,090 li kien biss żid linja ġdida, linja ġdida għal darb'oħra u għal darb'oħra, eżattament. 532 00:23:31,090 --> 00:23:32,010 Tajba kwistjoni. 533 00:23:32,010 --> 00:23:32,950 Mistoqsijiet oħra? 534 00:23:32,950 --> 00:23:33,450 Yeah? 535 00:23:33,450 --> 00:23:35,580 UDJENZA: Jekk inti mexxa l- programm ġdid dritt issa, 536 00:23:35,580 --> 00:23:38,000 ikun jidher ikompli jżid ismijiet għall- fajl jew ikun jidher tiftaħ fajl ġdid? 537 00:23:38,000 --> 00:23:38,740 >> DAVID J. Malan: Ah, mistoqsija tajba. 538 00:23:38,740 --> 00:23:41,448 Jekk inti dam il-programm mill-ġdid dritt issa, forsi ittajpjat fl-ismijiet ġodda, 539 00:23:41,448 --> 00:23:44,820 kieku dan iżid il-fajl jew jissostitwixxu l-fajl? 540 00:23:44,820 --> 00:23:47,420 L-aħħar, għaliex jien ma jużawx modalità tehmeż. 541 00:23:47,420 --> 00:23:49,930 U għaliex jien biss bl-addoċċ ftuħ tal-fajl għall-kitba, 542 00:23:49,930 --> 00:23:51,310 huwa biss se jissostitwixxu l-fajl. 543 00:23:51,310 --> 00:23:54,570 So I tassew bżonn tagħmel hu tehmeż, jekk irrid li għandhom attwalment fit-tul 544 00:23:54,570 --> 00:23:55,350 database. 545 00:23:55,350 --> 00:23:58,220 >> Issa CSV huwa utli, franchement, anki simili għal jekk int writing-- 546 00:23:58,220 --> 00:24:00,100 u aħna ser eventwalment tara dan aktar tard fl-semestru meta 547 00:24:00,100 --> 00:24:01,455 nużaw CSVs għal skopijiet oħra. 548 00:24:01,455 --> 00:24:04,920 Jekk inti tixtieq li taħżen kollha tal-poplu li jkunu rreġistraw għal xi avveniment, 549 00:24:04,920 --> 00:24:07,420 jew ffirmaw għall-istudenti tiegħek grupp, jew xi ħaġa bħal dik, 550 00:24:07,420 --> 00:24:10,330 ħażna tad-data f'dan it-tip ta 'format huwa super konvenjenti. 551 00:24:10,330 --> 00:24:12,580 Minħabba litteralment, jekk I kienu biex tniżżel dan il-fajl. 552 00:24:12,580 --> 00:24:14,540 I tista 'double-- u ejja fil-fatt jipprovaw dan 553 00:24:14,540 --> 00:24:16,720 jekk ikolli Excel jew Numri hawn fuq. 554 00:24:16,720 --> 00:24:19,130 >> Jien ser dritt ikklikkja jew kontroll click fajl tiegħi. 555 00:24:19,130 --> 00:24:20,020 Whoops. 556 00:24:20,020 --> 00:24:21,830 Right-click jew kontroll click fajl tiegħi. 557 00:24:21,830 --> 00:24:24,960 Come on, ġurdien tiegħi hija ma tikkooperax. 558 00:24:24,960 --> 00:24:32,694 Download-- Jien ser tniżżel il-fajls kollha hawn hekk 559 00:24:32,694 --> 00:24:33,860 biss hekk I tista 'grab dan wieħed. 560 00:24:33,860 --> 00:24:37,850 U ejja ara jekk dan jaħdem ewwel darba students.csv-- 561 00:24:37,850 --> 00:24:39,310 Stajt attivat. 562 00:24:39,310 --> 00:24:41,360 Issa li jridu jaraw kuntatti tiegħi. 563 00:24:41,360 --> 00:24:44,310 Issa, I bżonn jirreġistraw. 564 00:24:44,310 --> 00:24:47,620 Ara kemm huwa faċli biex jintuża CSVs? 565 00:24:47,620 --> 00:24:50,840 Iva, żżommha aġġornata. 566 00:24:50,840 --> 00:24:52,375 OK, issa aħna lesti għall-klassi. 567 00:24:52,375 --> 00:24:58,750 568 00:24:58,750 --> 00:25:00,370 OK, oh, x'hemm ġdid? 569 00:25:00,370 --> 00:25:02,920 OK, qrib. 570 00:25:02,920 --> 00:25:04,750 Dan kien maġika. 571 00:25:04,750 --> 00:25:07,280 OK, issa għandna biex taġġorna. 572 00:25:07,280 --> 00:25:10,890 U issa, huwa nesa dak fajl I oriġinarjament miftuħa, 573 00:25:10,890 --> 00:25:13,090 imma dak a-- hemm immorru. 574 00:25:13,090 --> 00:25:16,341 OK, hekk issa għandna fajl Excel. 575 00:25:16,341 --> 00:25:18,290 Grazzi. 576 00:25:18,290 --> 00:25:20,764 >> OK, so dak li għamilt kienet il-parti faċli. 577 00:25:20,764 --> 00:25:23,930 Of course I setgħet installat minn qabel Excel, jew Numri, jew kwalunkwe programm. 578 00:25:23,930 --> 00:25:25,846 Iżda dan huwa sbieħ, għaliex issa I tista 'timmanipola 579 00:25:25,846 --> 00:25:28,090 id-dejta f'format standard. 580 00:25:28,090 --> 00:25:30,294 >> Kuntest Allura issa ejja jaqilbu għal fejn aħna jitħalla 'off 581 00:25:30,294 --> 00:25:32,710 aħħar darba, li kellha tibda jieħdu off roti ta 'taħriġ. 582 00:25:32,710 --> 00:25:34,543 Iżda l-ewwel, inti ma tara dan ikla qabel 583 00:25:34,543 --> 00:25:38,150 għal darb'oħra qed jiġri hawn fuq nar u Silġ Cambridge, Sitar fi New Haven. 584 00:25:38,150 --> 00:25:43,150 Sign up fuq il-websajt CS50s ASAP biex jissieħbu istudenti CS50 u persunal. 585 00:25:43,150 --> 00:25:46,090 >> Allura aħna ħa roti ta 'taħriġ off nhar it-Tnejn bħala follows-- 586 00:25:46,090 --> 00:25:49,120 string ġie ddikjarat CS50s librerija għal xi żmien. 587 00:25:49,120 --> 00:25:52,650 U huwa sbieħ, għaliex din tippermetti ahna nitkellmu dwar varjabbli bħala 588 00:25:52,650 --> 00:25:54,660 kliem kompluta u sentenzi u aktar. 589 00:25:54,660 --> 00:25:56,710 Iżda jirriżulta string ma teżistix. 590 00:25:56,710 --> 00:26:00,200 Dan huwa biss sinonimu, jew alias, li ħloqna xi ħaġa li 591 00:26:00,200 --> 00:26:03,780 fil-fatt huwa xi ftit aktar teknika imsejħa char *. 592 00:26:03,780 --> 00:26:07,900 >> U fil-fatt, rajna eżempju ta 'programm nhar it-Tnejn 593 00:26:07,900 --> 00:26:11,200 li ma jaġixxix pjuttost kif aħna mistennija. 594 00:26:11,200 --> 00:26:13,630 Dan kien il-fajl, iqabblu-0. 595 00:26:13,630 --> 00:26:17,910 U tfakkar li jqabblu-0, jekk I recompile programm nhar it-Tnejn 596 00:26:17,910 --> 00:26:22,670 u run jqabblu '0 u tip mom fil lowercase, u mom fl zghar mill-ġdid. 597 00:26:22,670 --> 00:26:25,320 Il-programm insista I tip affarijiet differenti, 598 00:26:25,320 --> 00:26:29,210 anki jekk mom, kollha lowercase, hija identika viżwalment. 599 00:26:29,210 --> 00:26:31,990 Allura dak li kien ir-risposta qasira rigward għaliex ir kompjuter jaħseb 600 00:26:31,990 --> 00:26:34,500 dawn iż-żewġ kordi huma differenti? 601 00:26:34,500 --> 00:26:35,250 Yeah? 602 00:26:35,250 --> 00:26:36,534 >> UDJENZA: [inaudible] 603 00:26:36,534 --> 00:26:37,450 DAVID J. Malan: Dritt. 604 00:26:37,450 --> 00:26:39,600 Allura, mom, l-ewwel darba I tip fil, qed 605 00:26:39,600 --> 00:26:42,710 maħżuna x'imkien fil-kompjuter tiegħi memorja iżda f'post differenti 606 00:26:42,710 --> 00:26:44,690 mit-tieni darba I tip fil mom. 607 00:26:44,690 --> 00:26:46,580 Issa li ċertament tista 'tiġi ottimizzata. 608 00:26:46,580 --> 00:26:49,205 Il-kompjuter jista 'jkun intelliġenti u jirrealizzaw dawn iż-żewġ kordi, ħej, 609 00:26:49,205 --> 00:26:49,954 dawn qed identiċi. 610 00:26:49,954 --> 00:26:51,520 Let me ma redundantly jaħżnu. 611 00:26:51,520 --> 00:26:54,229 Iżda kompjuters ma tagħmel dan ottimizzazzjoni sakemm inti jgħidulhom li. 612 00:26:54,229 --> 00:26:56,061 Allura, awtomatikament, dawn qed biss ser jispiċċaw 613 00:26:56,061 --> 00:26:57,670 f'żewġ postijiet differenti fil-memorja. 614 00:26:57,670 --> 00:27:01,570 U hekk li jkunu aktar ċari, meta qabbilna-żewġ kordi, 615 00:27:01,570 --> 00:27:03,950 l-ewwel ġie imsejħa s, it-tieni kienet imsejħa 616 00:27:03,950 --> 00:27:08,530 t, dak speċifikament kien I tqabbil hawn fuq il-linja 13? 617 00:27:08,530 --> 00:27:09,494 Yeah. 618 00:27:09,494 --> 00:27:12,390 >> UDJENZA: Hu l-post fil-memorja li l-varjabbli se jindika. 619 00:27:12,390 --> 00:27:14,900 >> DAVID J. Malan: Eżattament, I kien tqabbel il-post fil-memorja 620 00:27:14,900 --> 00:27:16,300 li dawk il-varjabbli indikat. 621 00:27:16,300 --> 00:27:20,560 Allura speċifikament, jekk mom kien Numru byte 1, u 2, u 3, 622 00:27:20,560 --> 00:27:24,020 u 4-- minħabba ftakar l-backslash 0 jeħtieġ li jkun it-triq kollha fl-aħħar. 623 00:27:24,020 --> 00:27:29,420 U l-każ ieħor ta 'mom, m-o-m, kien fl-indirizz 10, 11, 12, u 13. 624 00:27:29,420 --> 00:27:33,100 I kien jqabbel 1, dak l-indirizz, f'dak il-post fil-memorja, 625 00:27:33,100 --> 00:27:35,160 kontra 10, li hija ovvjament mhux l-istess. 626 00:27:35,160 --> 00:27:36,260 1 mhix 10. 627 00:27:36,260 --> 00:27:39,620 >> Allura dan huwa sbieħ f'dak huwa pjuttost sempliċi. 628 00:27:39,620 --> 00:27:42,870 Imma hija problematika sakemm aħna ma jistgħux jidhru li jqabblu kordi. 629 00:27:42,870 --> 00:27:44,930 Allura fundamentally-- u f'dan il-livell baxx, 630 00:27:44,930 --> 00:27:47,300 jekk int riedu biex jimplimentaw programm biex iqabblu 631 00:27:47,300 --> 00:27:50,270 żewġ kelmiet separati li l- utent ikun ittajpjat fil għall-kwalità, 632 00:27:50,270 --> 00:27:53,944 ma huma linja up char għall char, biss f'termini ġenerali, 633 00:27:53,944 --> 00:27:55,360 dak li rridu nagħmlu, apparentement? 634 00:27:55,360 --> 00:27:57,940 Huwa mhux biżżejjed biss biex tħares lejn dawn iż-żewġ indirizzi. 635 00:27:57,940 --> 00:27:58,860 What do we bżonn tagħmel? 636 00:27:58,860 --> 00:27:59,360 Yeah? 637 00:27:59,360 --> 00:28:01,120 >> UDJENZA: jtenni permezz l-sekwenza [inaudible]. 638 00:28:01,120 --> 00:28:02,600 >> DAVID J. Malan: Yeah, ejja jtenni permezz tal-sekwenza. 639 00:28:02,600 --> 00:28:05,808 Ejja jużaw għal loop, linja waqt, jew tkun xi int l-aktar komdu magħhom. 640 00:28:05,808 --> 00:28:08,840 U jekk konna ltqajna żewġ kordi x'imkien fil-memorja, ejja nħarsu lejn kull wieħed li 641 00:28:08,840 --> 00:28:11,770 ewwel karattru, allura kull tieni l karattru, allura tielet, u r-raba, 642 00:28:11,770 --> 00:28:15,206 u l-ħames, sakemm aħna hit liema valur sentinella speċjali? 643 00:28:15,206 --> 00:28:16,080 UDJENZA: [inaudible] 644 00:28:16,080 --> 00:28:18,800 DAVID J. Malan: Yeah, il-backslash żero, f'liema punt jew string 645 00:28:18,800 --> 00:28:20,100 nistgħu tiddeċiedi li jinsab fiha. 646 00:28:20,100 --> 00:28:21,970 Have we mqabbla kull karattru wieħed? 647 00:28:21,970 --> 00:28:22,990 Jekk le, ritorn foloz. 648 00:28:22,990 --> 00:28:24,770 Jekk iva, ritorn veru. 649 00:28:24,770 --> 00:28:28,800 U hekk dan huwa eżattament dak li din il-verżjoni tal-programm iqabblu-1.c ma. 650 00:28:28,800 --> 00:28:31,677 Huwa identiku għal dak li aħna ħares lejn it-Tnejn ħlief li ħadthom I 651 00:28:31,677 --> 00:28:34,760 gotten rid tal-string-- kelma għalkemm li m'għandha l-ebda impact-- funzjonali kollha 652 00:28:34,760 --> 00:28:37,450 Li qed nagħmel issa huwa li jitneħħa xi roti ta 'taħriġ viżwali, 653 00:28:37,450 --> 00:28:40,880 iżda biex tara b'mod ċar li iu t huma indirizzi. 654 00:28:40,880 --> 00:28:43,020 U dan huwa dak l-istilla, l-asterisk, jirrappreżenta 655 00:28:43,020 --> 00:28:46,690 huwa indirizz, inkella magħruf aktar teknikament bħala pointer. 656 00:28:46,690 --> 00:28:49,880 >> Allura meta I niddikjara s fuq linja 9 u jgħidu char * i, 657 00:28:49,880 --> 00:28:52,160 dan ma jfissirx tagħti me a string. 658 00:28:52,160 --> 00:28:56,360 Dan ifisser jagħtu me varjabbli li iskop fil-ħajja huwa li taħżen l-indirizz. 659 00:28:56,360 --> 00:29:00,400 Minħabba I am madwar biex tpoġġi l- indirizz ta 'sekwenza inkorporat fih. 660 00:29:00,400 --> 00:29:03,500 U fil-fatt, GetString, li jkun ċara, ma ritorn string. 661 00:29:03,500 --> 00:29:06,110 Ma ritorn mom backslash żero, per se. 662 00:29:06,110 --> 00:29:10,005 Xi jfisser GetString speċifikament u preċiż ritorn? 663 00:29:10,005 --> 00:29:10,880 UDJENZA: [inaudible] 664 00:29:10,880 --> 00:29:14,080 DAVID J. Malan: An indirizz, l- indirizz ta 'l-ewwel karattru 665 00:29:14,080 --> 00:29:16,070 f'xi string hija gotten. 666 00:29:16,070 --> 00:29:19,250 U hekk issa aħna qed jaraw keyword speċjali darb'oħra. 667 00:29:19,250 --> 00:29:20,640 U, I allużjoni għal din qabel. 668 00:29:20,640 --> 00:29:23,620 Dan se jkun konvenzjoni tajba li aħna ser tara mill-ġdid u għal darb'oħra issa. 669 00:29:23,620 --> 00:29:27,540 Jien verifika biex jiġi żgurat li i ma huwiex null u t mhix null. 670 00:29:27,540 --> 00:29:30,100 Minħabba bbażata fuq tiegħi verament isemmu malajr qabel, 671 00:29:30,100 --> 00:29:35,510 dak li jista 'jfisser jekk GetString prospetti ma indirizz iżda N-U-L-L, li hija għal darb'oħra, 672 00:29:35,510 --> 00:29:36,990 xi valur speċjali? 673 00:29:36,990 --> 00:29:37,890 >> UDJENZA: Żball. 674 00:29:37,890 --> 00:29:38,600 >> DAVID J. Malan: Huwa ta 'żball. 675 00:29:38,600 --> 00:29:39,550 Xi ħaġa li marret ħażin. 676 00:29:39,550 --> 00:29:41,341 U dak li tipikament jista 'jiġri, speċjalment 677 00:29:41,341 --> 00:29:45,162 ma strings-- li tista 'tkun ta 'tul mhux magħrufa advance-- 678 00:29:45,162 --> 00:29:46,870 forsi l-kompjuters " tal-memorja, forsi 679 00:29:46,870 --> 00:29:49,280 inti ittajpjat f'tali kelma twil jew sentenza 680 00:29:49,280 --> 00:29:51,880 jew pasted tali essay enormi hemm biss mhux memorja biżżejjed. 681 00:29:51,880 --> 00:29:55,340 U għalhekk GetString ma jistgħux jirritornaw l-indirizz tal-ħaġa sħiħa, 682 00:29:55,340 --> 00:29:56,620 għalhekk jirritorna xejn. 683 00:29:56,620 --> 00:30:00,580 U jgħid żball kien ġara billi jirritorna l-valur NULL speċjali. 684 00:30:00,580 --> 00:30:02,890 Hu l-indirizz żero, biex ngħidu hekk. 685 00:30:02,890 --> 00:30:06,157 >> Issa jirriżulta C tiġi flimkien ma ' funzjoni li ma li iterazzjoni. 686 00:30:06,157 --> 00:30:09,240 Aħna ma jkollhom biex jimplimentaw din ma a għal loop jew loop waqt nfusna. 687 00:30:09,240 --> 00:30:11,150 Nistgħu nużaw funzjoni, imsejħa konċiż, 688 00:30:11,150 --> 00:30:15,400 ħawwad comp, jew string iqabblu, li iskop fil-ħajja huwa li tagħmel eżattament dan. 689 00:30:15,400 --> 00:30:19,990 Inti tagħti żewġ pointers, żewġ indirizzi, u se jmorru lil dawk l-indirizzi 690 00:30:19,990 --> 00:30:23,130 u mbagħad iqabblu ittra għall ittra għall-ittra għall-kwalità, 691 00:30:23,130 --> 00:30:26,610 waqfien biss meta dak li huwa veru? 692 00:30:26,610 --> 00:30:31,540 Meta intuwittivament għandhom ħawwad comp stop mtennija, biss biex tkun ċara? 693 00:30:31,540 --> 00:30:35,400 Meta hits backslash 0 f'kull spag, f'liema punt jista 'jiddeċiedi 694 00:30:35,400 --> 00:30:38,910 tkun kollox mqabbla, jew kien hemm diskrepanza? 695 00:30:38,910 --> 00:30:42,740 >> Allura, jekk aħna run dan issa u jippruvaw logħba tagħna kapitalizzazzjoni ftit, 696 00:30:42,740 --> 00:30:49,260 sabiex tagħmel iqabblu-1, ./compare-1, u tip mom fl zghar kemm żminijiet. 697 00:30:49,260 --> 00:30:50,560 Issa huwa l-istess ħaġa. 698 00:30:50,560 --> 00:30:54,080 U jekk jien tagħmel dan mill-ġdid ma zghar u mbagħad forsi uppercase. 699 00:30:54,080 --> 00:30:56,720 Issa tabilħaqq tiddistingwi bejn fuq u zghar. 700 00:30:56,720 --> 00:31:00,440 Allura mhux kollha li diffiċli jew maġika, iżda ma tispjegax issa 701 00:31:00,440 --> 00:31:03,140 x'inhu għaddej taħt il-barnuża. 702 00:31:03,140 --> 00:31:07,640 >> Allura dak li aktar jista aħna estratt minn dan it-tip ta 'lezzjoni? 703 00:31:07,640 --> 00:31:08,980 Mela ejja tagħti ħarsa lejn dan. 704 00:31:08,980 --> 00:31:15,380 Jien ser jimxi 'l quddiem u jiktbu programm quick hawn imsejħa kopja 0. 705 00:31:15,380 --> 00:31:21,594 U issa ejja imorru quddiem u fil-fatt Ejja nagħmlu this-- ma 'kopja 0, 706 00:31:21,594 --> 00:31:23,010 tagħti ħarsa lejn dak li stajt ltqajna hawn. 707 00:31:23,010 --> 00:31:24,712 I ewwel tgħid l-utent, ngħid xi ħaġa. 708 00:31:24,712 --> 00:31:26,420 Imbagħad niġi string u I maħżuna fil s. 709 00:31:26,420 --> 00:31:29,810 Imbagħad I jiċċekkjaw jekk i huwa ugwali ugwali NULL, biss jirritorna 1. 710 00:31:29,810 --> 00:31:31,590 Allura dan huwa biss żball iċċekkjar standard. 711 00:31:31,590 --> 00:31:33,112 Xejn interessanti li ġara. 712 00:31:33,112 --> 00:31:36,320 U fil-fatt, jekk irridu jeħles mill-iżball verifika, dan qisu ġimgħa 1 kodiċi 713 00:31:36,320 --> 00:31:36,985 fil-mument. 714 00:31:36,985 --> 00:31:39,110 Imma stajt bdiet tikseb ftit aħjar dwar dan. 715 00:31:39,110 --> 00:31:43,340 >> Issa fil-linja 16, ġimgħa ilu, forsi jiem anke koppja jew minuti ilu, 716 00:31:43,340 --> 00:31:46,720 inti jista 'jgħid linja 16 hija ħolqien ta 'varjabbli imsejjaħ t 717 00:31:46,720 --> 00:31:48,219 u l-ikkupjar s fih. 718 00:31:48,219 --> 00:31:50,010 U li l-perfettament takeaway raġonevoli. 719 00:31:50,010 --> 00:31:51,560 Imma jkun aktar preċiż issa. 720 00:31:51,560 --> 00:31:54,190 Dak li qed jiġri fil-linja 16? 721 00:31:54,190 --> 00:31:56,170 X'inhu jkollna kkupjata minn lemin għax-xellug? 722 00:31:56,170 --> 00:31:56,669 Yeah? 723 00:31:56,669 --> 00:31:58,490 UDJENZA: Huwa t jkollna indirizz ta 'i? 724 00:31:58,490 --> 00:32:01,220 >> DAVID J. Malan: Eżattament, t huwa jkollna l-indirizz ta 's. 725 00:32:01,220 --> 00:32:05,170 Allura biex tkun ċara issa, jekk immur lura għal dak eżempju ta 'qabel 726 00:32:05,170 --> 00:32:08,520 u I tfassal l-ħaġa stajt ittajpjat fil. 727 00:32:08,520 --> 00:32:11,640 U dak li stajt ittajpjat in-- hawnhekk i, u hawn 728 00:32:11,640 --> 00:32:15,830 huwa dak li stajt ittajpjat fil x'imkien fil memorja, mom u mbagħad backslash 729 00:32:15,830 --> 00:32:17,840 0 thats miżjud għalija. 730 00:32:17,840 --> 00:32:23,060 What I maħżuna fil hawn, tfakkar, dan huwa fil-post 1, 2, 3, 4, 731 00:32:23,060 --> 00:32:24,655 dan huwa dak li bħalissa s. 732 00:32:24,655 --> 00:32:29,220 Mela jekk on-line 16, I say jagħtu me varjabbli imsejħa t-ieħor u jaħżnu 733 00:32:29,220 --> 00:32:33,590 f'mill-valur ta 'i, dak gets maħżuna hawn mhux se mom 734 00:32:33,590 --> 00:32:35,480 iżda biss in-numru 1. 735 00:32:35,480 --> 00:32:38,520 >> Mela jekk inħarsu 'l quddiem f'dan il-programm issa, dak li jiġri? 736 00:32:38,520 --> 00:32:40,690 Allura avviż li hemm din il-funzjoni inti tista 737 00:32:40,690 --> 00:32:44,410 użaw dan xi żmien ilu għall Caesar, jew Vigenere, jew forsi xejn affattu. 738 00:32:44,410 --> 00:32:48,170 I titlob bil printf tiegħi, jien jmorru għall-kapitalizzazzjoni tal-kopja t. 739 00:32:48,170 --> 00:32:51,616 Ewwel linja 19, sanità malajr jivverifikaw, kontrolli strlen-tul ta t. 740 00:32:51,616 --> 00:32:53,740 Minħabba I ma jridux jippruvaw li tikkapitalizza xi ħaġa 741 00:32:53,740 --> 00:32:55,104 jekk hemm l-ebda string hemmhekk. 742 00:32:55,104 --> 00:32:57,520 Jekk l-utent biss hit Ikteb, hemm xejn għall-kapitalizzazzjoni. 743 00:32:57,520 --> 00:33:01,100 So I ma trid tagħmel linja 21. 744 00:33:01,100 --> 00:33:05,758 Allura linja 21 huwa kapitalizzazzjoni liema ittra, apparentement, f't? 745 00:33:05,758 --> 00:33:06,514 >> UDJENZA: m? 746 00:33:06,514 --> 00:33:08,722 DAVID J. Malan: Huwa jistenna simili huwa ikkopjar liema waħda? 747 00:33:08,722 --> 00:33:09,486 UDJENZA: m. 748 00:33:09,486 --> 00:33:10,450 DAVID J. Malan: Uh, m. 749 00:33:10,450 --> 00:33:12,685 OK, hekk l-ewwel m, għaliex avviż li jien 750 00:33:12,685 --> 00:33:14,935 tgħaddi biex toupper, li jekk inti stajt qatt raw dan huwa 751 00:33:14,935 --> 00:33:16,980 biss funzjoni li kapitalizzazzjoni bħala input tagħha. 752 00:33:16,980 --> 00:33:20,240 t bracket żero ifisser jagħtu me-karattru żero ta t. 753 00:33:20,240 --> 00:33:22,550 U hekk kif ma dan bidla stampa, li jkun ċar? 754 00:33:22,550 --> 00:33:25,490 755 00:33:25,490 --> 00:33:29,160 X'hemm bżonn li tikseb miktuba mill-ġdid jew mibdula fir-rigward iu tu mom 756 00:33:29,160 --> 00:33:30,097 żero backslash. 757 00:33:30,097 --> 00:33:31,470 >> UDJENZA: [inaudible] 758 00:33:31,470 --> 00:33:34,030 >> DAVID J. Malan: Yeah, għalhekk dan wieħed hawn sempliċiment 759 00:33:34,030 --> 00:33:40,860 teħtieġ li jiksbu mibdula to-- jiffissaw this-- jeħtieġ li jiksbu mibdula għal m kapital. 760 00:33:40,860 --> 00:33:44,330 Imma issa, tħares aktar tard fil- programm, jekk I jistampa 761 00:33:44,330 --> 00:33:49,800 i u t bħala I tnaddaf hawn, watch x'hemm jiġri stampar ta iu t. 762 00:33:49,800 --> 00:33:54,310 Sabiex tagħmel l-ikkupjar 0, ./copy-0. 763 00:33:54,310 --> 00:33:57,140 Let me imorru quddiem u t-tip fil mom kollha lowercase. 764 00:33:57,140 --> 00:34:00,140 Avviż kemm l-oriġinali u l-kopja ġew kapitalizzati. 765 00:34:00,140 --> 00:34:00,850 Għaliex? 766 00:34:00,850 --> 00:34:04,431 Well, iu t-tnejn huma tipponta lejn, jekk inti se, l-istess blokki ta 'memorja. 767 00:34:04,431 --> 00:34:06,930 U franchement, dan huwa jkollna verament uninteresting---fatt 768 00:34:06,930 --> 00:34:09,150 li aħna qed tuża indirizz żero hawn. 769 00:34:09,150 --> 00:34:11,719 I mean, I ma verament kura fejn Jittieħed huwa fil-memorja. 770 00:34:11,719 --> 00:34:13,550 Jiddispjacini jien tħassir ftit wisq. 771 00:34:13,550 --> 00:34:15,674 Imma jien ma verament kura fejn l-affarijiet huma fil-memorja. 772 00:34:15,674 --> 00:34:18,510 U għalhekk, tabilħaqq dak programmaturi tendenza li jaħsbu dwar 773 00:34:18,510 --> 00:34:21,080 hija li meta tkellem dwar indirizz, jew pointer, 774 00:34:21,080 --> 00:34:22,679 quién fejn huwa fl-memorja. 775 00:34:22,679 --> 00:34:24,989 I do not care jekk huwa fil byte wieħed jew waħda biljun. 776 00:34:24,989 --> 00:34:27,920 I biss kura li dan varjabbli hija effettivament 777 00:34:27,920 --> 00:34:29,620 tipponta lejn dak blokki ta 'memorja. 778 00:34:29,620 --> 00:34:33,350 U għalhekk, minn issa, aktar milli quibble fuq indirizzi memorja arbitrarji, ejja 779 00:34:33,350 --> 00:34:36,710 biss jibdew tiġbed pointers kif pointers, kif vleġeġ. 780 00:34:36,710 --> 00:34:39,340 Allura dak i u t verament huma, skond dan il-programm, 781 00:34:39,340 --> 00:34:42,130 minħabba kif I maħluqa t, huwa biss żewġ varjabbli separati 782 00:34:42,130 --> 00:34:43,840 tipponta fl-istess blokki ta 'memorja. 783 00:34:43,840 --> 00:34:45,215 U aħna ma 'kura fejn huma. 784 00:34:45,215 --> 00:34:47,130 Allura nistgħu astratt bogħod li dettall. 785 00:34:47,130 --> 00:34:48,780 >> Allura kif nista jiffissaw dan? 786 00:34:48,780 --> 00:34:54,120 Jekk irrid jikteb verżjoni tal-kopja programm li attwalment kopji l spag 787 00:34:54,120 --> 00:34:56,840 u tikkapitalizza biss l kopja, biss intuwittivament, 788 00:34:56,840 --> 00:34:59,766 dak ltqajna biex tkun ingredjent li s-soluzzjoni tagħna? 789 00:34:59,766 --> 00:35:00,640 UDJENZA: [inaudible] 790 00:35:00,640 --> 00:35:01,420 DAVID J. Malan: Għandna bżonn liema? 791 00:35:01,420 --> 00:35:01,820 UDJENZA: Chunk tal-memorja. 792 00:35:01,820 --> 00:35:03,280 DAVID J. Malan: Għandna bżonn blokki ieħor ta 'memorja, right? 793 00:35:03,280 --> 00:35:05,360 Ma nafux kif tagħmel encore, neċessarjament. 794 00:35:05,360 --> 00:35:11,330 Imma I tip ta 'bżonn dan iseħħ hekk li l-mom oriġinali f'ittri żgħar 795 00:35:11,330 --> 00:35:14,170 jispiċċa f'dak blokki żejda ta 'memorja. 796 00:35:14,170 --> 00:35:19,770 U mbagħad meta I jibdlu l-kopja, I ma jridux bidla din il-kopja hawn. 797 00:35:19,770 --> 00:35:26,020 I minflok trid tibdel biss dan Kopja sabiex il-oriġinal ma jinbidilx. 798 00:35:26,020 --> 00:35:27,980 >> Allura, ejja naraw kif nistgħu nagħmlu dan. 799 00:35:27,980 --> 00:35:31,800 Fil-1 kopja, li diġà kienet tneħħietlu l-kumment, 800 00:35:31,800 --> 00:35:33,250 iżda huwa ikkummenta online. 801 00:35:33,250 --> 00:35:36,710 We minflok tagħmel l-following-- dawn linji huma identiċi, jiksbu me string 802 00:35:36,710 --> 00:35:38,340 u sejħa hija s. 803 00:35:38,340 --> 00:35:43,500 Imma issa ejja nħarsu lejn wieħed mill-aktar tagħna kumpless iżda l-aħħar tal-kumplessità 804 00:35:43,500 --> 00:35:47,340 għall awhile, linja 16 ma eżattament dan. 805 00:35:47,340 --> 00:35:49,400 Mela jekk comfy tiegħek mal- stampa aħna biss drew-- 806 00:35:49,400 --> 00:35:51,790 tagħti me blokki ġdid ta 'memorja, kollox kopja fiha, 807 00:35:51,790 --> 00:35:53,730 ejja ara kif aħna tittraduċi dak li kodiċi. 808 00:35:53,730 --> 00:35:59,400 >> Allura linja 16, fuq in-naħa tax-xellug, char * t tagħti me din il-kaxxa hawn fuq. 809 00:35:59,400 --> 00:36:00,230 Li kollox li tagħmel. 810 00:36:00,230 --> 00:36:03,240 Min-naħa tal-lemin, ALLOC m, jew malloc, 811 00:36:03,240 --> 00:36:06,480 huwa allokazzjoni memorja, super fancy, mod cryptic ta 'ftit qal 812 00:36:06,480 --> 00:36:07,640 tagħti me blokki ta 'memorja. 813 00:36:07,640 --> 00:36:09,290 Kemm memorja ħafna jeħtiġilna? 814 00:36:09,290 --> 00:36:10,910 Ukoll, huwa tip ta 'espressjoni big. 815 00:36:10,910 --> 00:36:12,570 Imma ejja ara dak li jgħid hawnhekk. 816 00:36:12,570 --> 00:36:15,940 Allura dan, naturalment, huwa jagħti me tul sensiela ta 's. 817 00:36:15,940 --> 00:36:19,094 Allura, mom għandu jkun dak? 818 00:36:19,094 --> 00:36:21,010 Hekk biss tlieta, id-dritt? mom huwa ta 'tliet karattri. 819 00:36:21,010 --> 00:36:22,830 Inti ma jgħoddux l- backslash żero meta inti 820 00:36:22,830 --> 00:36:25,960 jitkellmu dwar it-tul ta 'sekwenza huwa Attwalment l-ittri viżibbli tal-bniedem. 821 00:36:25,960 --> 00:36:28,020 Allura mom, għalhekk dan jagħti me 3. 822 00:36:28,020 --> 00:36:31,170 Iżda stenna minuta, jien issa żżid 1. 823 00:36:31,170 --> 00:36:34,861 Għaliex għandi attwalment jridu jallokaw 4 bytes u mhux biss 3? 824 00:36:34,861 --> 00:36:35,360 Yeah? 825 00:36:35,360 --> 00:36:36,910 >> UDJENZA: Għall-valur sentinella? 826 00:36:36,910 --> 00:36:38,951 >> DAVID J. Malan: Eżattament, għal dak il-valur sentinella. 827 00:36:38,951 --> 00:36:40,840 Għall-backslash żero, I bżonn 4 bytes totali. 828 00:36:40,840 --> 00:36:42,870 So I bżonn it-tul tas-sekwenza flimkien ma '1. 829 00:36:42,870 --> 00:36:45,400 U mbagħad biss għall measure-- tajba anke jekk fuq din is-sistema, 830 00:36:45,400 --> 00:36:49,390 huwa dejjem se jkunu 1-- jien tgħid immoltiplika dan mid-daqs ta 'char. 831 00:36:49,390 --> 00:36:51,552 Jinstabx sizeof huwa operatur C li 832 00:36:51,552 --> 00:36:53,260 biss jgħidlek il numru ta 'bytes li l- 833 00:36:53,260 --> 00:36:54,700 meħtieġa għal ċertu tip ta 'data. 834 00:36:54,700 --> 00:36:57,740 Hija ma taħdimx għall arrays, tipikament, xi kultant ma. 835 00:36:57,740 --> 00:36:59,210 Iżda fil-każ ġenerali, l-ebda. 836 00:36:59,210 --> 00:37:02,330 Iżda se tgħidli kemm hemm bytes a char huwa, li jirriżulta huwa dejjem 1. 837 00:37:02,330 --> 00:37:04,080 Allura dan huwa simili mmultiplikat b'1. 838 00:37:04,080 --> 00:37:05,900 >> Allura super cryptic linja tħares 'kodiċi. 839 00:37:05,900 --> 00:37:09,320 Iżda kollha ma huwa jagħti me blokki ta 'memorja. 840 00:37:09,320 --> 00:37:13,590 Iżda ma jidhirx li jkun ikkupjar xejn f'dak memorja? 841 00:37:13,590 --> 00:37:14,560 Mhux għalissa. 842 00:37:14,560 --> 00:37:22,040 U iva, liema do I fuq il-linja 22, u 23, 24, 25, ukoll, I sempliċiment tagħmel dan. 843 00:37:22,040 --> 00:37:23,760 U dan huwa tip ta ' Jittieħed iskola antika issa. 844 00:37:23,760 --> 00:37:26,010 Dan huwa simili PSet 2, fejn int biss affarijiet jimxu 845 00:37:26,010 --> 00:37:28,620 madwar fil-memorja, jew pjuttost f'qatet. 846 00:37:28,620 --> 00:37:31,920 >> Hekk jien mtennija minn 0 sa it-tul tas-sekwenza s. 847 00:37:31,920 --> 00:37:37,820 U jien ikkupjar il-karattru numru i fl-i fil-karattru numru i f't. 848 00:37:37,820 --> 00:37:41,820 U minħabba I, il-programmer, magħmula żgur li jallokaw eżattament kif ħafna bytes 849 00:37:41,820 --> 00:37:44,600 għandi bżonn, huwa perfett one-to-one relazzjoni. 850 00:37:44,600 --> 00:37:47,060 U jien kopja mom fil zghar għal dik ġdida. 851 00:37:47,060 --> 00:37:50,170 U mbagħad fl-aħħar, I do din il-linja. 852 00:37:50,170 --> 00:37:54,637 U għalhekk l-effett huwa biss għall-kapitalizzazzjoni dan t hawn. 853 00:37:54,637 --> 00:37:56,470 Allura ħafna biex jassorbu, iżda jekk inti biss tikkunsidra 854 00:37:56,470 --> 00:37:58,220 x'inhu verament għaddej fuq taħt il-barnuża 855 00:37:58,220 --> 00:38:00,880 huwa biss dawn jimxu bytes madwar, dak kollu li 856 00:38:00,880 --> 00:38:06,617 hija meħtieġa sabiex issolvi din il-problema hija biss biex tagħtina din blokki ta 'memorja. 857 00:38:06,617 --> 00:38:08,450 Issa bir-riskju li kbira, let me juru 858 00:38:08,450 --> 00:38:13,200 eżempju ieħor li kważi identiċi, ħlief għal dan wieħed 859 00:38:13,200 --> 00:38:14,350 linja tal-kodiċi. 860 00:38:14,350 --> 00:38:18,870 Allura dan huwa l-verżjoni Hacker ta 'dan il-programm, jekk inti se. 861 00:38:18,870 --> 00:38:21,050 Imma ejja biss jiddistillaw fis x'inhu għaddej. 862 00:38:21,050 --> 00:38:28,920 Linja 24 użati biex tkun din t bracket i gets bracket s i. 863 00:38:28,920 --> 00:38:33,370 Issa, jien jinbidlu dan l ħafna aktar cryptic t star 864 00:38:33,370 --> 00:38:36,280 flimkien ma '1 ugwali star s plus 1. 865 00:38:36,280 --> 00:38:38,702 >> Allura x'inhu jiġri u għaliex għandna karattru star? 866 00:38:38,702 --> 00:38:41,410 Rajna l-istilla qabel, u huwa qed jintuża b'mod differenti hawn. 867 00:38:41,410 --> 00:38:45,490 Aħna diġà raw char *, issa jien jaraw stilla fil-bidu, u li OK. 868 00:38:45,490 --> 00:38:48,190 Minħabba jirriżulta aħna tista tip ta 'jiddeduċu biss 869 00:38:48,190 --> 00:38:50,280 minn dawk l-ewwel prinċipji x'inhu għaddej. 870 00:38:50,280 --> 00:38:53,860 Hekk biss li jkun ċar, dak li huwa s? 871 00:38:53,860 --> 00:38:55,052 Last week, kien string. 872 00:38:55,052 --> 00:38:56,260 Dan mhuwiex biżżejjed jibqgħalu. 873 00:38:56,260 --> 00:38:57,690 X'inhu s, b'mod speċifiku? 874 00:38:57,690 --> 00:38:58,590 >> UDJENZA: [inaudible] 875 00:38:58,590 --> 00:38:59,881 >> DAVID J. Malan: Huwa pointer. 876 00:38:59,881 --> 00:39:02,610 Hu l-indirizz tal- ewwel karattru aħna ittajpjat fil. 877 00:39:02,610 --> 00:39:04,780 OK, dak li huwa t? 878 00:39:04,780 --> 00:39:05,660 >> UDJENZA: [inaudible] 879 00:39:05,660 --> 00:39:07,950 >> DAVID J. Malan: Il- indirizz ta 'l-ewwel byte 880 00:39:07,950 --> 00:39:10,490 f't, li blokki ta 'memorja riallokati. 881 00:39:10,490 --> 00:39:14,720 Għalhekk jirriżulta li meta aħna jtenni minn 0 sa l-sekwenza 882 00:39:14,720 --> 00:39:17,424 length-- ewwel nett, i jibda off fil-0, għaliex 883 00:39:17,424 --> 00:39:18,840 ta din l-iskola antika għal ħaġa loop. 884 00:39:18,840 --> 00:39:22,400 Hekk biss għas-sempliċità, ejja jassumi li l-ewwel linja tal-kodiċi 885 00:39:22,400 --> 00:39:23,760 huwa verament biss dan, id-dritt. 886 00:39:23,760 --> 00:39:26,080 Jekk i huwa żero, u żżid żero għal xi ħaġa preżumibbilment 887 00:39:26,080 --> 00:39:27,540 mhux se jkollhom effett. 888 00:39:27,540 --> 00:39:28,560 >> Allura dak li huwa dan qal? 889 00:39:28,560 --> 00:39:31,600 Jirriżulta li l-istilla operatur f'dan il-kuntest 890 00:39:31,600 --> 00:39:33,700 huwa l-dereference operatur, li huwa biss 891 00:39:33,700 --> 00:39:37,530 mod fancy ta 'tgħid tmur f'dan l-indirizz. 892 00:39:37,530 --> 00:39:42,080 Mela jekk i huwa l-indirizz ta 'l-ewwel karattru f'dan blokki ta 'memorja, 893 00:39:42,080 --> 00:39:43,630 * s mezzi jmorru hemm. 894 00:39:43,630 --> 00:39:45,630 U għaliex aħna ħadthom mfassla l-istampa b'dan il-mod, 895 00:39:45,630 --> 00:39:47,430 inti tista 'tadotta l- wara mudell mentali. 896 00:39:47,430 --> 00:39:51,030 Jekk dan huwa s, u inti tgħidli * i, * s tip simili siġġijiet u slielem, 897 00:39:51,030 --> 00:39:54,540 jekk inti tiftakar il-logħba mit-tfulija, huwa simili jirriżultax li vleġġa u jmorru 898 00:39:54,540 --> 00:39:55,570 fl-indirizz. 899 00:39:55,570 --> 00:39:57,080 >> * t huwa l-istess ħaġa. 900 00:39:57,080 --> 00:39:59,855 Allura tibda hawn, mur blokki tagħha. 901 00:39:59,855 --> 00:40:03,350 I tista 'mhux biss tibbaża fuq dan l-iskrin li mod. 902 00:40:03,350 --> 00:40:05,560 * t ifisser li jmorru hawn. 903 00:40:05,560 --> 00:40:08,830 U mbagħad, il-loop huwa biss għall qal jimxu dan il-karattru hawnhekk, 904 00:40:08,830 --> 00:40:11,330 jimxu dan il-karattru hawnhekk, jimxu dan il-karattru hawnhekk. 905 00:40:11,330 --> 00:40:12,890 Imma kif nista 'nagħmlu incrementation? 906 00:40:12,890 --> 00:40:15,430 I-ħtieġa li jneħħu dak I biss mħassar. 907 00:40:15,430 --> 00:40:18,140 Dan huwa dak li ġeneralment jissejjaħ aritmetika pointer, li 908 00:40:18,140 --> 00:40:20,040 ifisser matematika bl-indirizzi. 909 00:40:20,040 --> 00:40:22,460 >> Jekk, f'dan il-għal loop, I iżommu inkrementazzjoni i, 910 00:40:22,460 --> 00:40:26,880 u s huwa indirizz u t huwa indirizz, jekk I biss iżommu żżid 1, 911 00:40:26,880 --> 00:40:31,406 li sempliċiment ifisser iżommu miexja 'l quddiem, u jibgħatu, u jibgħat fil-memorja. 912 00:40:31,406 --> 00:40:34,030 Huwa simili Oxford Street, il- triq li l-bini CS huwa fuq. 913 00:40:34,030 --> 00:40:36,490 Il-bini CS huwa fil 33 Oxford Street. 914 00:40:36,490 --> 00:40:39,870 Mela jekk ġejt biex tagħmel 33 Oxford Street flimkien ma '1, 915 00:40:39,870 --> 00:40:42,870 li ġġib inti 34 Oxford Street, allura Street 35 Oxford, 916 00:40:42,870 --> 00:40:46,380 imbagħad 36 Oxford Street, ikun x'ikun dawk bini li huma effettivament huma - jekk dawn jeżistu. 917 00:40:46,380 --> 00:40:50,540 U għalhekk, li kollox li aħna qed tagħmel hawn ma aritmetika pointer. 918 00:40:50,540 --> 00:40:53,820 >> Allura huwa mod super arcane jesprimu nfusna. 919 00:40:53,820 --> 00:40:56,160 Iżda dak kollu li jiġri taħt il-barnuża 920 00:40:56,160 --> 00:40:59,330 huwa biss wara dawn l-indirizzi, bħal wara mappa, jekk inti se, 921 00:40:59,330 --> 00:41:02,692 jew wara vleġeġ bħall konna mfassal fuq l-iskrin. 922 00:41:02,692 --> 00:41:04,910 OK, ħafna biex diġestiva. 923 00:41:04,910 --> 00:41:10,410 Kwalunkwe mistoqsija dwar sintassi, kunċetti, pointers, malloc, jew affarijiet simili. 924 00:41:10,410 --> 00:41:11,480 Yeah, minn hawn ewwel. 925 00:41:11,480 --> 00:41:13,755 >> UDJENZA: Allura meta dik jgħid * t ugwali toupper * t, 926 00:41:13,755 --> 00:41:15,575 huwa li jmorru għall-kapitalizzazzjoni l-ittri jew just-- 927 00:41:15,575 --> 00:41:17,283 >> DAVID J. Malan: Ah, kwistjoni verament tajba. 928 00:41:17,283 --> 00:41:19,805 Allura f'dan il-linja hawnhekk, 31, huwa dan se għall-kapitalizzazzjoni 929 00:41:19,805 --> 00:41:21,430 l-ewwel ittra jew kollha ta 'l-ittri. 930 00:41:21,430 --> 00:41:23,460 Mela ejja risposta għal din billi tmur lura għall-ewwel prinċipji. 931 00:41:23,460 --> 00:41:26,168 U l-ewwel prinċipji hawn I jfissirx biss jmorru għall-definizzjonijiet bażiċi 932 00:41:26,168 --> 00:41:27,000 ta 'dak involut. 933 00:41:27,000 --> 00:41:29,770 Allura toupper l b'funzjoni li tikkapitalizza char. 934 00:41:29,770 --> 00:41:30,530 Dak kollox. 935 00:41:30,530 --> 00:41:36,740 * t ifisser tmur fil-first-- mur l-indirizz f't. 936 00:41:36,740 --> 00:41:40,350 Allura, fl-istampa, jekk dan huwa l-blokki ta 'memorja aħna allokat malloc, 937 00:41:40,350 --> 00:41:43,310 u dan huwa t, * t ifisser mur hawn. 938 00:41:43,310 --> 00:41:46,710 >> Sadanittant, int tgħaddi dan il-valur, zghar m 939 00:41:46,710 --> 00:41:50,040 li toupper, int jkollna lura kapital M, fejn huma inti tqegħid? 940 00:41:50,040 --> 00:41:52,410 Int tqegħid fl-istess post. 941 00:41:52,410 --> 00:41:55,540 U hekk minn dak l-loġika ta 'dawk definizzjonijiet bażiċi Huwa biss 942 00:41:55,540 --> 00:41:58,792 kapitalizzazzjoni-ewwel ittra sakemm inti jtenni bil i jew 943 00:41:58,792 --> 00:42:02,000 għal loop jew loop waqt, mhuwiex ser li tagħmel xejn aktar milli suppost jitlobha. 944 00:42:02,000 --> 00:42:02,583 Tajba kwistjoni. 945 00:42:02,583 --> 00:42:03,237 Yeah? 946 00:42:03,237 --> 00:42:05,369 >> UDJENZA: Għaliex ma tuża l- dereference metodu pjuttost milli 947 00:42:05,369 --> 00:42:05,979 l-array? 948 00:42:05,979 --> 00:42:07,395 >> DAVID J. Malan: Ah, mistoqsija tajba. 949 00:42:07,395 --> 00:42:10,672 Għaliex kieku inti tuża l-dereference metodu minflok il-metodu firxa? 950 00:42:10,672 --> 00:42:12,130 L-ebda raġuni partikolari, li tkun onest. 951 00:42:12,130 --> 00:42:15,290 U, fil-fatt, għal dan tip ta 'eżempju, id-dritt, 952 00:42:15,290 --> 00:42:17,556 Jien biss argumenta jagħmlu l- programm aktar ikkumplikati, 953 00:42:17,556 --> 00:42:19,680 għajnejn aktar qed glazing fuq, nies huma iċċekkjar 954 00:42:19,680 --> 00:42:22,830 minħabba dan jistenna super arcane, iżda anki jekk huwa qed jagħmel l-istess ħaġa. 955 00:42:22,830 --> 00:42:26,695 U għalhekk, franchement, dan huwa Soluzzjoni bla bżonn viżwalment kumpless 956 00:42:26,695 --> 00:42:27,320 għall-problema. 957 00:42:27,320 --> 00:42:29,580 >> Huwa għadu disinn tajjeb, ħamsa minn ħamsa għad-disinn, 958 00:42:29,580 --> 00:42:33,140 jekk fil-kategorija notazzjoni jew in-notazzjoni pointer. 959 00:42:33,140 --> 00:42:36,299 But-- speċjalment meta nikbru aktar tard fil-kors PSet 5 960 00:42:36,299 --> 00:42:39,340 meta nimplimentaw li dizzjunarju li Stajt msemmija koppja ta 'times-- 961 00:42:39,340 --> 00:42:42,300 aħna ser attwalment kura dwar l- indirizzi memorja livell baxx 962 00:42:42,300 --> 00:42:44,140 li aħna verament jifhem x'inhu għaddej. 963 00:42:44,140 --> 00:42:48,300 >> Iżda, għal issa, jirriżulta li din linja ta 'kodiċi parentesi kwadri hawn 964 00:42:48,300 --> 00:42:49,900 ma tassew jeżistu. 965 00:42:49,900 --> 00:42:52,230 Dawn huma dak li sejjaħ zokkor sintattika, li 966 00:42:52,230 --> 00:42:58,390 huwa biss mod weirdly jibred ta 'tgħid l- kompilatur tikkonverti parentesi kwadri li jkun 967 00:42:58,390 --> 00:43:00,420 dik l-espressjoni matematika. 968 00:43:00,420 --> 00:43:02,660 Allura huwa konvenzjoni tal-bniedem biex tkun tista 'tikteb biss 969 00:43:02,660 --> 00:43:04,220 dawn parentesi ħafna faċli għall-utent. 970 00:43:04,220 --> 00:43:06,850 Imma dak li l-kumpilatur, clang, hu verament tagħmel kwalunkwe ħin 971 00:43:06,850 --> 00:43:10,970 tikteb dak li enfasizzat fil-linja 24, taħt il-barnuża huwa verament 972 00:43:10,970 --> 00:43:12,330 jikkonvertuha għal dan. 973 00:43:12,330 --> 00:43:16,200 Huwa biss aktar pleasurable bħala bniedem jaqraw u jiktbu kodiċi bħal linja 24. 974 00:43:16,200 --> 00:43:18,530 Iżda eventwalment dawk roti ta 'taħriġ wisq come off 975 00:43:18,530 --> 00:43:21,780 meta kumdità tiegħu stess gets aktar b'saħħitha. 976 00:43:21,780 --> 00:43:27,240 >> Kull dritt, hekk ifakkar allura li dan kien il-tip ta 'akbar problema 977 00:43:27,240 --> 00:43:27,807 aħna dam fis. 978 00:43:27,807 --> 00:43:30,640 U dan huwa dak qanqal dan kollu konverżazzjoni kkritikat dwar pointers, 979 00:43:30,640 --> 00:43:32,340 u l-indirizzi, u affarijiet ikkupjar. 980 00:43:32,340 --> 00:43:35,410 Kien għaliex aħna tripped fuq dan stupid, il-kwistjoni stupid, fejn 981 00:43:35,410 --> 00:43:38,830 I implimentati logically-- ma Lauren up here fuq il-demo u l meraq tal-larinġ 982 00:43:38,830 --> 00:43:43,770 fil-milk-- perfettament funzjoni algorithmically korretta 983 00:43:43,770 --> 00:43:47,010 għall-iskambji żewġ varjabbli " valuri, imma l-ħaġa kkritikat 984 00:43:47,010 --> 00:43:50,550 ma kellhomx xi persistenti, jew permanenti, effett fuq kodiċi tiegħi. 985 00:43:50,550 --> 00:43:51,820 >> U għaliex kienet li? 986 00:43:51,820 --> 00:43:54,650 Fil-qosor, għaliex huwa dan implimentazzjoni ta 'swap 987 00:43:54,650 --> 00:43:58,740 loġikament korrett, imma m'għandha ebda impatt dwar il-varjabbli li huma mgħoddija lilha, 988 00:43:58,740 --> 00:44:01,119 bħall x uy għall prinċipali? 989 00:44:01,119 --> 00:44:02,410 Liema kienet l-gist tal-kwistjoni? 990 00:44:02,410 --> 00:44:02,909 Yeah? 991 00:44:02,909 --> 00:44:05,532 UDJENZA: Minħabba varjabbli magħmula kopji ta 'varjabbli fl-pass 992 00:44:05,532 --> 00:44:06,240 permezz funzjoni. 993 00:44:06,240 --> 00:44:09,060 >> DAVID J. Malan: Eżattament, meta inti tgħaddi varjabbli ġo funzjoni, jew argumenti 994 00:44:09,060 --> 00:44:11,030 fi funzjoni, dawn qed għadda minn kopja, li 995 00:44:11,030 --> 00:44:14,770 tfisser ikollok identika tfittex mudell ta 'bits kemm xuy, 996 00:44:14,770 --> 00:44:15,955 imsejħa hawn aub. 997 00:44:15,955 --> 00:44:18,080 U inti tista 'tagħmel xejn trid ma dawk il-kopji, 998 00:44:18,080 --> 00:44:20,657 iżda dawn qed tmur biex ikollhom l-ebda effett fuq il-funzjoni sejħa. 999 00:44:20,657 --> 00:44:22,990 U, fil-fatt, aħna ġibdet li istampa fuq l-iskrin, irtirar 1000 00:44:22,990 --> 00:44:25,520 aħħar darba, fejn jekk inti really think dwar x'hemm 1001 00:44:25,520 --> 00:44:28,570 għaddej taħt il hood-- jekk dan huwa memorja tal-kompjuter tiegħek, 1002 00:44:28,570 --> 00:44:31,650 u 'l isfel hawnhekk huwa l-blokki ta' memorja qed jintużaw għal prinċipali, 1003 00:44:31,650 --> 00:44:34,020 dan huwa l-blokki ta ' memorja qed jintużaw għal tpartit, 1004 00:44:34,020 --> 00:44:37,090 u għandu hekk anke jekk ewlenija żewġ varjabbli, xuy, 1005 00:44:37,090 --> 00:44:41,840 tpartit jista 'jkollhom identiċi tfittex valuri, it-tnejn li huma 1 u 2, 1006 00:44:41,840 --> 00:44:44,520 iżda dawn qed kompletament biċċiet differenti ta 'memorja. 1007 00:44:44,520 --> 00:44:46,130 >> Għalhekk għandna bżonn soluzzjoni għal din. 1008 00:44:46,130 --> 00:44:51,580 U franchement, jidher li aħna issa jkun hemm soluzzjoni għal din il-problema, id-dritt. 1009 00:44:51,580 --> 00:44:55,760 Jekk issa għandna l-ħila li jimmanipulaw affarijiet permezz ta 'indirizzi 1010 00:44:55,760 --> 00:44:59,310 u, sort ta żrieżaq u slielem stil, segwi dawn vleġeġ 1011 00:44:59,310 --> 00:45:02,820 u jmorru kullimkien rridu fil-memorja, ma setgħux aħna 1012 00:45:02,820 --> 00:45:06,220 issolvi din il-problema billi tgħaddi minn ewlenija tpartit 1013 00:45:06,220 --> 00:45:09,650 mhux il-valuri irridu tpartit, imma biss intuwittivament 1014 00:45:09,650 --> 00:45:11,630 dak li nistgħu jgħaddu tpartit minflok? 1015 00:45:11,630 --> 00:45:12,620 >> [INTERPOSING VOICES] 1016 00:45:12,620 --> 00:45:15,244 >> DAVID J. Malan: Għaliex ma we biss tgħaddiha l-indirizzi, id-dritt? 1017 00:45:15,244 --> 00:45:17,470 Għaliex ma we tagħti swap ta ' Mappa teżor, jekk inti se, 1018 00:45:17,470 --> 00:45:20,950 li twassal lill- x valuri attwali u y. 1019 00:45:20,950 --> 00:45:24,340 Ejja tpartit, attwalment ibiddlu dawk bits oriġinali, aktar milli 1020 00:45:24,340 --> 00:45:26,797 biss tgħaddi kopji tal-bits. 1021 00:45:26,797 --> 00:45:29,130 U għalhekk, fil-fatt, dan huwa dak l se tkun is-soluzzjoni. 1022 00:45:29,130 --> 00:45:31,899 Din il-verżjoni hawnhekk hija bad b'mod ċar u difettuż. 1023 00:45:31,899 --> 00:45:35,190 U issa, ewwel daqqa t'għajn, hija biss jistenna bħal aħna miżjud mazz ta 'stilel saltwarjament 1024 00:45:35,190 --> 00:45:37,106 u qasmu idejna li hija kienet ser tiġbor. 1025 00:45:37,106 --> 00:45:38,460 Iżda, issa se tiġbor. 1026 00:45:38,460 --> 00:45:40,090 >> Imma ejja ara dak dawn l-affarijiet jfisser. 1027 00:45:40,090 --> 00:45:43,990 U, sfortunatament, l-awturi ta C setgħet għażlet simbolu ieħor 1028 00:45:43,990 --> 00:45:46,380 biex jagħmlu dan ftit aktar ċara, iżda l-operatur istilla 1029 00:45:46,380 --> 00:45:48,610 għandu tifsira differenti żewġ kuntesti differenti. 1030 00:45:48,610 --> 00:45:50,890 U Rajna tnejn, imma ejja jiddistingwu. 1031 00:45:50,890 --> 00:45:55,310 >> Allura fil-quċċata hemm, meta I nbidlu u b 1032 00:45:55,310 --> 00:46:00,470 milli s Int fil-ħażin Verżjoni li int stilla, A u B, 1033 00:46:00,470 --> 00:46:01,740 qabel, kienu interi. 1034 00:46:01,740 --> 00:46:05,752 Liema huma u b issa fil il-tajba, verżjoni aħdar? 1035 00:46:05,752 --> 00:46:06,900 Huma qed indirizzi. 1036 00:46:06,900 --> 00:46:09,610 Indirizzi ta 'dak, tkun ċara? 1037 00:46:09,610 --> 00:46:10,770 Indirizzi tan-numri interi. 1038 00:46:10,770 --> 00:46:12,520 Allura l-fatt li jien qal star int mezzi 1039 00:46:12,520 --> 00:46:15,440 dan huwa l-indirizz ta ' integer, b'mod speċifiku. 1040 00:46:15,440 --> 00:46:19,120 >> Allura issa avviż fil-linji ta 'kodiċi, xi ħaġa oħra inbidlet wisq. 1041 00:46:19,120 --> 00:46:22,770 TMP jibqa l-istess, minħabba li huwa biss l-eqreb numru sħiħ temporanju, 1042 00:46:22,770 --> 00:46:24,110 ebda magic memorja hemmhekk. 1043 00:46:24,110 --> 00:46:26,370 Iżda issa jeħtieġ stilla. 1044 00:46:26,370 --> 00:46:28,560 U, fil-fatt, kull Referenzi oħra au b, 1045 00:46:28,560 --> 00:46:31,780 avviż li dak kollu li bidla minn aħmar għal aħdar 1046 00:46:31,780 --> 00:46:34,209 hija li jien prefiss dawk il-varjabbli ma stilla. 1047 00:46:34,209 --> 00:46:35,750 Minħabba Ma rridx li kopja u b. 1048 00:46:35,750 --> 00:46:40,350 Għaliex jekk I biss kopja aub u swap au b, dak li jien attwalment iskambji? 1049 00:46:40,350 --> 00:46:43,760 Just indirizzi, nixtieq li tpartit x'hemm fil dawk l-indirizzi. 1050 00:46:43,760 --> 00:46:44,860 Irrid immur hemmhekk. 1051 00:46:44,860 --> 00:46:48,000 U għalhekk l-operatur istilla ġewwa tal-funzjoni tiegħi, 1052 00:46:48,000 --> 00:46:51,700 mhux ġewwa tal-lista parametru, ifisser li inti tmur għall dawk l-indirizzi 1053 00:46:51,700 --> 00:46:54,490 u fil-fatt tinbidel dawk il-valuri. 1054 00:46:54,490 --> 00:46:56,500 >> Allura dak ma l-istampa issa look like minflok. 1055 00:46:56,500 --> 00:47:03,250 Ukoll, jekk minflok jien tgħaddi fl għal aub mhux 1 u 2-- 1056 00:47:03,250 --> 00:47:05,790 I attwalment bżonn li jiżdiedu definizzjoni ieħor hawn. 1057 00:47:05,790 --> 00:47:09,030 Allura jissoponi li dan chunk tal-memorja huwa fil-post 10. 1058 00:47:09,030 --> 00:47:12,960 >> Dan huwa fil-post 11, iżda dan huwa daqsxejn ta 'simplifikazzjoni, 1059 00:47:12,960 --> 00:47:18,900 I issa għandhom żewġ għażliet do I jgħaddu x uy jew għandi jgħaddu indirizzi tagħhom? 1060 00:47:18,900 --> 00:47:22,500 Jekk I jgħaddu l-indirizzi tagħhom bħal dan, I biss 1061 00:47:22,500 --> 00:47:25,390 issa jeħtieġ li jiġu implimentati tpartit kull l-kodiċi aħdar 1062 00:47:25,390 --> 00:47:29,080 hekk li meta jara u meta jara b, ma biss kopja aub 1063 00:47:29,080 --> 00:47:30,540 u jimxu l-ħalib u meraq tal-larinġ. 1064 00:47:30,540 --> 00:47:32,664 Il-ħalib u meraq tal-larinġ metafora issa jieqaf jaħdem, 1065 00:47:32,664 --> 00:47:35,060 għaliex dawk huma cups ta 'mapep likwidi u mhux. 1066 00:47:35,060 --> 00:47:37,750 Għandna minflok bżonn biex tmur biex jindirizzaw 10 u aħna 1067 00:47:37,750 --> 00:47:42,420 bżonn biex tmur biex jindirizzaw 11, u mbagħad iwettqu l-loġika iskambji. 1068 00:47:42,420 --> 00:47:45,580 >> Allura l-loġika hija l-istess, iżda għandna bżonn b'mod xi ftit differenti 1069 00:47:45,580 --> 00:47:47,160 ta 'aċċess dawk il-varjabbli. 1070 00:47:47,160 --> 00:47:52,400 U hekk fl-aħħar, dak li l- programm għandu jħares bħal hija din. 1071 00:47:52,400 --> 00:47:56,610 Fil swap.c litteralment kkupjata u pasted l-verżjoni aħdar. 1072 00:47:56,610 --> 00:47:58,450 Imma I bżonn tagħmel bidla waħda. 1073 00:47:58,450 --> 00:48:00,180 Huwa mhux biżżejjed biss biex jibdlu tpartit. 1074 00:48:00,180 --> 00:48:03,830 Liema linja oħra tal-kodiċi għandi bżonn għall-bidla? 1075 00:48:03,830 --> 00:48:04,330 Yeah? 1076 00:48:04,330 --> 00:48:05,770 >> UDJENZA: każ li tieħu l-argumenti. 1077 00:48:05,770 --> 00:48:07,603 >> DAVID J. Malan: Fejn li tieħu argument tagħha. 1078 00:48:07,603 --> 00:48:09,985 Mela jekk jien iscroll sa prinċipali, I tista 'mhux biss jgħaddu fil xuy, 1079 00:48:09,985 --> 00:48:12,820 u, I wegħda, l-aħħar biċċa sintassi ġdida llum. 1080 00:48:12,820 --> 00:48:17,200 I bżonn li tgħaddi l f'mhux x u y iżda l-indirizz ta 'x uy. 1081 00:48:17,200 --> 00:48:20,400 U jirriżulta li, is-simbolu li l-awturi ta 'C għażel 1082 00:48:20,400 --> 00:48:23,860 huwa jekk inti tuża ampersand hawn, ma tiġi konfuża mal-ampersand bitwise, 1083 00:48:23,860 --> 00:48:27,130 jekk tuża ampersand hawn u ampersand hawn, 1084 00:48:27,130 --> 00:48:29,570 dan figuri fl għalik, x'inhu l-indirizz ta 'x, 1085 00:48:29,570 --> 00:48:31,740 forsi huwa 10, x'inhu l- indirizz ta 'y, forsi huwa 1086 00:48:31,740 --> 00:48:35,400 11, u tgħaddi dawk minflok. 1087 00:48:35,400 --> 00:48:37,210 >> Allura ħafna biex jassorbu kollha f'daqqa. 1088 00:48:37,210 --> 00:48:40,190 Imma ejja naraw issa malajr erba tagħna minuti fadal 1089 00:48:40,190 --> 00:48:42,150 fejn l-affarijiet jistgħu jmorru awry. 1090 00:48:42,150 --> 00:48:45,120 U bħala twarrib, fil-fatt I ħa din l-istampa, 1091 00:48:45,120 --> 00:48:46,920 TF ħa din l-istampa sena jew tnejn ilu. 1092 00:48:46,920 --> 00:48:49,190 Allura dan huwa l-kantuniera ta 'wara tal Eliot Dining Hall. 1093 00:48:49,190 --> 00:48:52,310 Pointers huma forsi l-agħar tema li aħna ikopru b'mod CS50. 1094 00:48:52,310 --> 00:48:54,810 Mela jekk inti inkwetati-xorta ta 'inklinazzjoni huwa simili forsi huwa 1095 00:48:54,810 --> 00:48:56,770 aktar ta 'stick hockey bħal dan, tirrealizza 1096 00:48:56,770 --> 00:49:00,160 aħna qed tip ta kważi quċċata fil termini tal-kumplessità kunċettwali. 1097 00:49:00,160 --> 00:49:02,300 >> U jien tqajjem din ritratt, minħabba I naħlef 1098 00:49:02,300 --> 00:49:05,920 li god, fil-ħarifa 1996, meta I ħa CS50 ma sħabi tagħlim tiegħi, 1099 00:49:05,920 --> 00:49:09,620 Nishat Mehta, hu sib me isfel fil- rokna tad-Eliot D. Hall waqt l-ikel, 1100 00:49:09,620 --> 00:49:12,330 jew pranzu, jew xi ħaġa biex tipprova għinni jifhmu pointers. 1101 00:49:12,330 --> 00:49:16,520 U dan huwa fejn I kien ġimgħat wara ġie introdott fl lecture meta 1102 00:49:16,520 --> 00:49:18,170 I finalment mifhum pointers. 1103 00:49:18,170 --> 00:49:20,590 U jien tama li din se ikklikkja bogħod kmieni għalik. 1104 00:49:20,590 --> 00:49:23,540 Iżda jirrealizzaw dan assolutament fost is-suġġetti aktar sofistikati 1105 00:49:23,540 --> 00:49:24,420 konna ħares lejn. 1106 00:49:24,420 --> 00:49:25,819 Imma hija fost l-aktar qawwija. 1107 00:49:25,819 --> 00:49:28,860 U meta inti ġġibu, huwa verament kollha biss se finalment jiltaqgħu flimkien. 1108 00:49:28,860 --> 00:49:31,460 Allura mistrieħ assigurat li ma jeħtieġ li sink kollha fl-lum. 1109 00:49:31,460 --> 00:49:32,980 >> Allura hawnhekk-aħħar programm aħna qed tmur biex tħares lejn. 1110 00:49:32,980 --> 00:49:35,605 U aħna qed tmur biex jispiċċa bil- malajr tliet minuti ta 'claymation 1111 00:49:35,605 --> 00:49:37,030 magħmula mill ħabib tagħna, Nick Parlante. 1112 00:49:37,030 --> 00:49:41,440 Hawn programm, li fuq il-quċċata żewġ linji jiddikjara x uy varjabbli. 1113 00:49:41,440 --> 00:49:44,780 Tnejn li huma indirizzi tan-numri interi, pointers AKA. 1114 00:49:44,780 --> 00:49:48,125 Aħna mbagħad jalloka biżżejjed memorja biex taħżen l int 1115 00:49:48,125 --> 00:49:51,344 u jaħżnu l-indirizz ta 'dik memorja fil x. 1116 00:49:51,344 --> 00:49:53,260 Għalhekk, huwa saħansitra aktar sempliċi mill-eżempju qabel. 1117 00:49:53,260 --> 00:49:56,100 Agħti me erba 'bytes ta' memorja, dak l-daqs ta 'int, 1118 00:49:56,100 --> 00:49:58,000 u li jitqiegħdu indirizz x. 1119 00:49:58,000 --> 00:50:01,070 Din il-linja hawnhekk tfisser mur l-indirizz x 1120 00:50:01,070 --> 00:50:05,270 u tpoġġi l-tifsira ta ' ħajja, in-numru 42 hemmhekk. 1121 00:50:05,270 --> 00:50:07,710 Iżda din il-linja inkwiet me. 1122 00:50:07,710 --> 00:50:12,620 Star y ifisser mur l-indirizz fil-y, u n-numru unlucky 13 hemmhekk. 1123 00:50:12,620 --> 00:50:15,780 Għaliex huwa perikoluż, f'dan il-punt fil-story-- għalkemm qal malajr 1124 00:50:15,780 --> 00:50:17,980 fil-minuti waning tagħna here-- għaliex hi ħażina 1125 00:50:17,980 --> 00:50:19,660 għalija li ngħid, mur l-indirizz y? 1126 00:50:19,660 --> 00:50:21,077 >> UDJENZA: Inti għandek mhux [inaudible]. 1127 00:50:21,077 --> 00:50:22,910 DAVID J. Malan: I ma jkunux jitqiegħdu xejn y. 1128 00:50:22,910 --> 00:50:25,520 Allura x'inhi l-valur tal y, f'dan il-punt fl-istorja? 1129 00:50:25,520 --> 00:50:26,570 Għandna l-ebda idea. 1130 00:50:26,570 --> 00:50:29,190 Huwa xi valur żibel u lanqas ma Binky taf. 1131 00:50:29,190 --> 00:50:32,532 Jekk nistgħu tispiċċa fil din in-nota. 1132 00:50:32,532 --> 00:50:34,832 >> [Daqq video] 1133 00:50:34,832 --> 00:50:36,500 >> -Hey, Binky, tqum. 1134 00:50:36,500 --> 00:50:39,140 Wasal iż-żmien għall-gost pointer. 1135 00:50:39,140 --> 00:50:40,210 >> -Dak X'inhu? 1136 00:50:40,210 --> 00:50:41,690 Tgħallem dwar pointers? 1137 00:50:41,690 --> 00:50:43,570 Oh, Goody. 1138 00:50:43,570 --> 00:50:46,600 >> Well, li tibda, I raden aħna qed ser jeħtieġu koppja pointers. 1139 00:50:46,600 --> 00:50:47,380 >> -KOLLOX SEW. 1140 00:50:47,380 --> 00:50:51,120 Dan il-kodiċi jalloka żewġ pointers li jista 'jiġbed l interi. 1141 00:50:51,120 --> 00:50:53,557 >> -OK, Sew nara l żewġ pointers, iżda dawn 1142 00:50:53,557 --> 00:50:55,140 ma jidhirx li jkun tipponta lejn xi ħaġa. 1143 00:50:55,140 --> 00:50:55,970 >> -Li Dritt. 1144 00:50:55,970 --> 00:50:58,100 Inizjalment Pointers ma jurux xejn. 1145 00:50:58,100 --> 00:51:00,950 L-affarijiet li jindikaw li huma imsejħa pointees u meta dawn jitwaqqfu 1146 00:51:00,950 --> 00:51:02,330 huwa pass separat. 1147 00:51:02,330 --> 00:51:03,210 >> -OH, Id-dritt, id-dritt. 1148 00:51:03,210 --> 00:51:03,940 Jien kont naf li. 1149 00:51:03,940 --> 00:51:05,730 Il pointees huma separati. 1150 00:51:05,730 --> 00:51:08,310 Allura kif taħseb li jallokaw pointee? 1151 00:51:08,310 --> 00:51:11,960 >> -OK, Ukoll dan jalloka kodiċi a pointee ġdid numru sħiħ, 1152 00:51:11,960 --> 00:51:15,050 u dan parti settijiet x punt lilha. 1153 00:51:15,050 --> 00:51:16,240 >> -Hey, Li jistenna aħjar. 1154 00:51:16,240 --> 00:51:17,743 Sabiex tagħmel dan jagħmlu xi ħaġa. 1155 00:51:17,743 --> 00:51:23,580 >> -OK, I ser dereference l pointer x biex jaħżnu l-għadd 42 fis pointee tagħha. 1156 00:51:23,580 --> 00:51:27,130 Għal dan trick, I bzonn tiegħi bastun maġiku ta dereferencing. 1157 00:51:27,130 --> 00:51:30,200 >> Bastun maġiku -Your ta dereferencing? 1158 00:51:30,200 --> 00:51:32,310 Uh, li, li l-kbir. 1159 00:51:32,310 --> 00:51:34,270 >> -Dan Huwa dak l-kodiċi Dehra. 1160 00:51:34,270 --> 00:51:35,970 I ser biss twaqqaf in-numru and-- 1161 00:51:35,970 --> 00:51:37,070 >> [POP ĦOSS] 1162 00:51:37,070 --> 00:51:39,140 >> -Hey, Tħares hemm din tmur. 1163 00:51:39,140 --> 00:51:43,980 Allura, tagħmel dereference fuq x ġej il-vleġġa għall-aċċess pointee tagħha. 1164 00:51:43,980 --> 00:51:46,150 F'dan il-każ, li jaħżen 42 fil hemmhekk. 1165 00:51:46,150 --> 00:51:50,700 Ħej, ipprova uża dan biex jaħżnu l-għadd 13 permezz tal-pointer oħra, y. 1166 00:51:50,700 --> 00:51:51,840 >> -KOLLOX SEW. 1167 00:51:51,840 --> 00:51:56,270 I ser biss jmorru fuq hawn biex y, u jiksbu n-numru 13 set up. 1168 00:51:56,270 --> 00:52:00,380 U mbagħad ħu l-bastun tal dereferencing u just-- 1169 00:52:00,380 --> 00:52:01,646 >> [Buzzer ĦOSS] 1170 00:52:01,646 --> 00:52:04,080 >> -OH, Ħej li ma ma taħdimx. 1171 00:52:04,080 --> 00:52:06,470 Say, uh, Binky, jien ma think dereferencing 1172 00:52:06,470 --> 00:52:10,850 y hija idea tajba, għaliex twaqqif l-pointee huwa pass separat. 1173 00:52:10,850 --> 00:52:12,480 U jien ma naħsibx we qatt ma kien. 1174 00:52:12,480 --> 00:52:14,620 >> -Hmm, Punt tajjeb. 1175 00:52:14,620 --> 00:52:19,810 >> -Yeah, Aħna allokati l pointer, y, iżda aħna qatt tistabbilixxi li juru li hemm pointee. 1176 00:52:19,810 --> 00:52:21,590 >> -Hmm, Attent ħafna. 1177 00:52:21,590 --> 00:52:23,215 -Hey, Qed tfittex tajba hemmhekk, Binky. 1178 00:52:23,215 --> 00:52:26,390 Inti tista 'tiffissa lilha sabiex il-punti y l-istess pointee bħala x. 1179 00:52:26,390 --> 00:52:29,290 >> -Sure, I-użu bastun maġiku tiegħi ta 'assenjazzjoni pointer. 1180 00:52:29,290 --> 00:52:31,970 >> -Il Li ser tkun problema, bħal qabel? 1181 00:52:31,970 --> 00:52:33,790 >> -Nru, Dan ma tmissx il-pointees. 1182 00:52:33,790 --> 00:52:35,840 Hija biss bidliet pointer wieħed għall-punt li l-istess thing-- 1183 00:52:35,840 --> 00:52:36,465 >> [Popping ĦOSS] 1184 00:52:36,465 --> 00:52:37,450 --as ieħor. 1185 00:52:37,450 --> 00:52:38,440 >> -OH, Nara. 1186 00:52:38,440 --> 00:52:41,200 Issa punti y għall-istess post bħall x. 1187 00:52:41,200 --> 00:52:42,950 Allura, stenna, issa y hija ffissata. 1188 00:52:42,950 --> 00:52:44,110 Hija għandha pointee. 1189 00:52:44,110 --> 00:52:47,779 Allura inti tista 'tipprova l-bastun tal dereferencing darb'oħra biex jibagħtu l-13 fuq. 1190 00:52:47,779 --> 00:52:51,110 >> -OH, OK, hawnhekk tmur. 1191 00:52:51,110 --> 00:52:52,330 >> -Hey, Tħares lejn dak. 1192 00:52:52,330 --> 00:52:53,570 Issa dereferencing xogħlijiet fuq y. 1193 00:52:53,570 --> 00:52:57,900 U minħabba l-pointers huma qsim li pointee wieħed, tnejn jaraw il-13. 1194 00:52:57,900 --> 00:52:59,952 >> -Yeah, Qsim, uh, ikun x'ikun. 1195 00:52:59,952 --> 00:53:01,535 Allura, aħna se jaqilbu postijiet issa? 1196 00:53:01,535 --> 00:53:03,730 >> -OH, Tħares we qed barra ta 'żmien. 1197 00:53:03,730 --> 00:53:04,660 >> -But-- 1198 00:53:04,660 --> 00:53:06,520 >> Just remember-tliet regoli pointer. 1199 00:53:06,520 --> 00:53:09,550 Numru 1, l-istruttura bażika huwa li inti għandek pointer, 1200 00:53:09,550 --> 00:53:11,630 u punti fuq għal pointee. 1201 00:53:11,630 --> 00:53:13,740 Iżda l-pointer u pointee huma separati. 1202 00:53:13,740 --> 00:53:15,620 U l-iżball komuni huwa li jitwaqqaf indikatur 1203 00:53:15,620 --> 00:53:18,000 iżda li tinsa biex tagħtiha pointee. 1204 00:53:18,000 --> 00:53:21,170 >> Numru 2, dereferencing pointer jibda fil-pointer 1205 00:53:21,170 --> 00:53:24,020 u jsegwi vleġġa tagħha fuq għall-aċċess pointee tagħha. 1206 00:53:24,020 --> 00:53:27,815 Kif nafu lkoll, dan jaħdem biss jekk ikun hemm huwa pointee, liema tip ta 'gets lura 1207 00:53:27,815 --> 00:53:29,260 li tiddeċiedi numru 1. 1208 00:53:29,260 --> 00:53:31,990 >> Numru 3, pointer assenjazzjoni jieħu pointer waħda 1209 00:53:31,990 --> 00:53:35,330 u bidliet li għall-punt li l- istess pointee bħal pointer ieħor. 1210 00:53:35,330 --> 00:53:37,150 Allura wara l-assenjazzjoni, iż-żewġ pointers 1211 00:53:37,150 --> 00:53:40,927 se jindika l-istess pointee, kultant li sejjaħ qsim. 1212 00:53:40,927 --> 00:53:42,510 U li kollox hemm għaliha, verament. 1213 00:53:42,510 --> 00:53:43,130 Bye-bye issa. 1214 00:53:43,130 --> 00:53:43,475 >> [END Daqq] 1215 00:53:43,475 --> 00:53:44,830 >> DAVID J. Malan: Li lilha għall CS50. 1216 00:53:44,830 --> 00:53:46,246 Grazzi għall-Professur Nick Parlante. 1217 00:53:46,246 --> 00:53:47,730 Aħna ser tara int ġimgħa d-dieħla. 1218 00:53:47,730 --> 00:53:51,706 1219 00:53:51,706 --> 00:53:56,435 >> [Daqq tal-mużika ELETTRONIKA] 1220 00:53:56,435 --> 00:57:22,775