[Daqq tal-mużika] Camille REKHSON: Hi, kulħadd. Merħba għall-kwizz CS50 sessjoni reviżjoni żero. Jien Camille. U jien ser jkunu għaddejjin fuq xi temi miegħek guys illum biex jgħinek jippreparaw għall-kwizz. Allura hawnhekk tagħna mhux eżawrjenti Lista ta 'suġġetti inti għandhom ikunu familjari magħhom għall-kwizz. Dawn kienu meħuda direttament mill-sillabu. Naf jidher li huwa simili ħafna. Iżda trust me, inti ħadthom tgħallmu kollha dawn l-affarijiet fl-aħħar ftit ġimgħat. Allura aħna ser definittivament jkunu għaddejjin fuq lott ta 'dawn lum. Iżda wkoll tieħu xi żmien fuq tiegħek stess biex tirrevedi dawn l-affarijiet. U jekk inti ma kinux familjari mal dak li xi wħud minn dawn l-affarijiet huma, aċċerta ruħek li titlob wieħed minna. Ukoll, il-kelma uffiċjali fuq il-kwizz, mur din ir-rabta. Dan se jkollu l-informazzjoni kollha li magħhom kamra għandek bżonn biex tmur fil- jinfirdu alfabetikament, u wkoll xi suġġerimenti dwar liema materjali inti għandek tkun jistudjaw, u x'tip ta 'mistoqsijiet kwizz ghandek tistenna. Sabiex tagħmel żgur li tivverifika li l-. Ukoll, xi tips għal meta inti qed jippreparaw għall-eżami. Prattika kodifikazzjoni fuq il-karta. Naf li inti stajt gotten użati biex wara il-verifika IDE għall-iżbalji tiegħek għalik, u it's-- meta int ittajpjar it up, huwa ftit differenti milli jkollu li tikteb affarijiet out. Allura prattika tagħmel xi kodifikazzjoni. Xi funzjonijiet tajba għall-prattika tagħmel huma strlen u atoi, jaraw jekk inti tista 'tikteb dawk fuq tiegħek. Ikun familjari mal-settijiet problema. Ħafna snin hemm mistoqsijiet li għandhom x'jaqsmu għal xi wħud mill-materjal problema stabbiliti. Sabiex tagħmel ċert li tifhem kif jagħmlu l-settijiet problema. Ipprova tagħmel xi wħud mill-kwiżż qodma taħt il darba restrizzjoni 75 minuta. A lott tal-kwiżż jista jkun it-tip ta 'twil. Allura huwa mod tajjeb biex jagħtu yourself xi prattika, u kemm se tieħu inti, u kif inti għandhom jaqsmu l-ħin tiegħek biex tiżgura inti finitura kollox sa l-aħħar. U wkoll, ikollok paġna waħda, żewġ folja referenza naħat li inti tista 'tikteb xi tkun trid fuq għall-użu matul il-kwizz. Allura meta int ħolqien li, li wkoll mod verament kbir biex jistudjaw minħabba inti ser tip ta 'tirrevedi affarijiet kif int bil-miktub dan. Allura xi mistoqsijiet ġenerali dwar l-kwizz, jew kif taħdem? Yeah. UDJENZA: Se dik il-lista ta 'suġġetti li inti biss wera tkun disponibbli lilna online? Camille REKHSON: Dan slide kollu juru se jkunu stazzjonati fil-websajt. Ukoll, il-video ta 'reviżjoni tal-lum sessjoni ser tkun fuq il-websajt. Allura ma joqogħdu jinkwetaw wisq dwar kitba affarijiet isfel kollu. Dan kollu se jkun hemm. Kwalunkwe mistoqsijiet oħra? OK, so ejja tibda. Allura ħaġa waħda biex ikunu familjari ma huwa tip ta 'data differenti u d-daqs li huma jieħdu fuq. Dan jista 'jkun xi ħaġa kbira biex jikteb fuq folja referenza tiegħek, biss tagħmel żgur li int ftakar dawn kollha. But-- hekk Chars huma 1 byte. Ints huma 4 bytes. A twil, twil, li hi bażikament aktar ispazju għall integer, huwa 8 bytes. A float huwa 4 bytes. A doppja, li bażikament tagħtik aktar spazju biex jaħżnu float, huwa 8 bytes. U mbagħad pointer huwa wkoll 8 bytes. Kwalunkwe mistoqsijiet dwar dawn? Allura binarju huwa suġġett ieħor konna koperti ftit dan is-semestru. Mela ejja jagħmlu xi prattika ma konverżjoni bejn il-binarju u deċimali. Allura ħadd li jkollu xi idea dak li li l-ewwel waħda tkun? Kulħadd? Yeah, huwa 42. Mela jekk inti tiftakar, kull mill-postijiet fil binarju huwa bażikament simili 2 għall-enerġija f'dak il-post tal. Allura li l-ewwel post hija ta '2 għall-qawwa 0. U aħna għandna 0 hemmhekk, hekk xejn hemm. Il-post li jmiss huwa 2 għall-ewwel poter. U nagħmlu jkollhom 1 hemmhekk, b'tali mod li bażikament 2. Il-post li jmiss huwa minn 2 sa it-tieni, li huwa ta '4. Aħna ma jkollhom xejn hemmhekk. Il-post li jmiss fuq hija 2 sa it-tielet, li jkun 8. U aħna għandna waħda hemm. U aħna jibqgħu għaddejjin. Li last-- l-aktar 'il- waħda baqa 'huwa fejn għandna 32. U hekk, aħna bażikament għandhom 32 plus 8 flimkien ma '2 li tikseb 42. Kwalunkwe mistoqsijiet? UDJENZA: X'inhu l-subscript għall? Camille REKHSON: Il subscript bażikament tgħidilna huwa binarja. Allura hemm 2 hemmhekk. Jekk kien hemm like-- fil-li jmiss wieħed, jew meta aħna qed jikkonvertu deċimali li binarju, hemm 10 li turi lilna li dan in-numru huwa oriġinarjament fl deċimali. UDJENZA: Grazzi. Camille REKHSON: Yeah. Kwalunkwe mistoqsijiet oħra fuq li wieħed? OK, so ejja jippruvaw li jmiss wieħed imbagħad, li deċimali binarja. Allura tieħu 50 u tpoġġija ta 'dak fil binarja. Kif inti tagħmel dan? Yeah. UDJENZA: 110010. Camille REKHSON: Iva. Allura one-- mod faċli biex jaħsbu dwar konverżjoni minn deċimali sa binarju huwa to-- spiss jgħin biex jiktbu out dak il-poteri differenti tat-2 huma. U mbagħad jgħaddu minnha, u ara tkun xi tkun l-ogħla waħda minn dawk hija li inti tista 'tpoġġi fil lill- Numru deċimali mingħajr ma tidħol fuq dan. Allura f'dan il-każ, waħda mill is-setgħat tat-2 huwa 32. Allura 32 tmur fil-50. Iżda l-qawwa sa jmiss ikun 64, li ovvjament ma jidħlux fil-50. Allura l-ogħla għandna huwa l-32. Il-wieħed li jmiss isfel sa 16. U 32 plus 16 huwa biss 48. Allura li għadhom tidħol fil-50. Allura aħna għandna 1 ta f'dawn iż-żewġ. U allura jekk aħna jibqgħu għaddejjin isfel, l-unika ħaġa li għandna bżonn xellug huwa 2 aktar biex tikseb 48-50. Mela allura għandna 1 f'dik il-pożizzjoni, u 0 fl-aħħar pożizzjoni. Għaliex hemm xejn fil 2 għall-post 0-th. Mistoqsijiet dwar konverżjoni deċimali biex Binarju? Allura issa ejja tipprova tagħmel xi żieda binarja. Kif meta inti żid dawn iż up? Yeah. UDJENZA: 11100. Camille REKHSON: Iva. Allura tagħmel żieda fil binarja hija pjuttost l-istess bħal tagħmel dan fil deċimali. Ħlief jekk għandek żewġ benesseri 1 ta magħduda flimkien, 1 flimkien ma '1 huwa 2, iżda 2 fil binarju huwa 1 0. Allura inti għandek twettaq l-1, u jżommu twettiq tiegħu għal dawk kolonni koppja. U minbarra dan, żid ftit normalment. Kwalunkwe mistoqsijiet dwar dak? Yeah. UDJENZA: Jiddispjacini, dak li huwa l-aħħar post? Hemm sitt numri. Allura l-kolonna fuq ix-xellug, liema valur huwa? Camille REKHSON: Fuq dan wieħed qiegħ? UDJENZA: Fuq il-quċċata waħda, għat-50. Camille REKHSON: Għal 50? Oh, sabiex il-leftmost waħda hija 32. UDJENZA: 32? Camille REKHSON: Yeah, hekk ikun jkun 32, 16, allura 8, 4, 2, 0-- jew 1. Ukoll, huwa 2 il 0, li hija l-1. Yeah. Kwalunkwe mistoqsijiet oħra dwar dan? OK, hekk allura aħna qed tmur biex tagħmel ftit ma hexadecimal. Allura dan jista 'jkun ftit inqas familjari, minħabba I know we ghamilt ħafna aktar ma 'binarju. Imma mod verament tajjeb biex jaħsbu dwar hexadeċimali huwa li ikissru binarja Numru fis 4 biċċiet bit. Minħabba li kull 4 bits ta ' numru binarju huwa bażikament wieħed mill-numri hexadeċimali. Mela jekk ikollna dan l-ewwel waħda, għandna bażikament tmien 1 ta. Allura dawn jistgħu jinqasmu up-- UDJENZA: 255. Camille REKHSON: Say li għal darb'oħra. UDJENZA: 255 fil deċimali, jew 0xFF f'hexadecimal. Camille REKHSON: Yeah, huwa. Allura, jekk inti maqsuma li sa f'żewġ biċċiet 4-bit, aħna bażikament erba 'settijiet ta' 1. Liema hija l-maximum-- bażikament l-massimu nistgħu nibdew mal-4-bits fil binarja. U l-massimu nistgħu jiksbu għall li f'hexadecimal ikun F. Allura rridu naraw żewġ F tal. Kwalunkwe mistoqsijiet dwar dak? Yeah? UDJENZA: Tista jirrepetu dak. Camille REKHSON: Sure. Allura kull wieħed, bażikament, post ta 'hexadeċimali huwa ekwivalenti għall-4-bits ta 'binarja. Allura l-eħfef mod biex isir dan huwa li farrku fis-biċċiet 4-bit. Allura f'dan il-każ, għandna tmien 1 ta. Allura jekk aħna maqsuma dawk f'żewġ biċċiet 4-bit, rridu naraw żewġ settijiet ta 'erba' 1 s. U kull wieħed minn dawk huwa ekwivalenti għal F. Jekk taħseb about-- Naf imħuħ tagħna huma tip ta 'fili biex jaħsbu aktar permezz deċimali, għaliex dan huwa dak li aħna qed jintużaw biex. Allura mod wieħed li inti tista 'taħseb bħala l-erba '1 huwa ugwali għal 15 fl-deċimali. U 15 f'hexadecimal hija F. Allura dak hu mod ieħor inti tista 'taħseb permezz tiegħu. Yeah. UDJENZA: X'inhu l-0x għall? Camille REKHSON: Il 0x tindika li huwa hexadeċimali. Allura aħna biss jitqiegħed dan prefiss hemm, normalment. Mistoqsijiet oħra fuq dik. OK, so ejja tipprova tmur il-mod ieħor imbagħad. F'dan il-każ aħna have-- sorry? UDJENZA: [inaudible]. Camille REKHSON: Aħna ser binarja. Allura, tmur il-mod ieħor. Iżda f'dan il-każ, għandna 5 u A. Mela jekk naħsbu dwar dan, jekk kull wieħed mill those-- 5 u lA huma kemm se jirrappreżentaw 4-bit blokki, kif tgħid 5 fil binarja? UDJENZA: 0101. Camille REKHSON: Yeah, b'tali mod li l-parti 0101. U allura kif tgħid A in-- UDJENZA: 10. Camille REKHSON: Say it-- sorry? UDJENZA: 10. Camille REKHSON: Yeah, hekk dak l-tieni parti minnha. U mbagħad, jekk inti tpoġġi dawn iż-żewġ flimkien, li kif ikollok l-sħiħ binarju għall-hexadeċimali. Yeah? UDJENZA: Biex tkun taf li A hija 1010, do inti għandek memorize dan? Jew tista 'inti like-- Camille REKHSON: Mela jekk you-- l differe-- hekk meta inti qed tmur permezz binarju, bażikament binarja għandha 0 sa 9 u mbagħad A permezz F kif l-affarijiet tagħha 16. Mela jekk it-triq kollha 0 biex 9-- jekk you-- 9 u mbagħad A, bażikament jekk aħna tikkonvertih li deċimali, A ikun simili 10, B tkun simili 11. U jekk taħseb dwar l- binarju 1010 huwa ta '8 u 2, minħabba dawn huma ż-żewġ postijiet li jammontaw għal 10, li huwa eżattament dak A huwa ekwivalenti għal. Allura dak it-tip ta 'faċli mod biex jaħsbu dwar dan. Mistoqsijiet oħra fuq hexadeċimali. OK, hekk issa aħna qed tmur biex tieħu ħarsa lejn operaturi bitwise. Allura dawn jistgħu definittivament toħroġ fuq il-kwizz. Naf aħna ma ħadem magħhom lott. Iżda aħna qed biss se jagħmlu reviżjoni ftit ta 'dawn. Hekk nisperaw li dawn se jkunu ftit aktar familjari għalik. Allura s-sitt operaturi bitwise li għandna huma elenkati hawn. U huma ejjew jimmanipulaw bits individwali. Allura l-operatur U huwa ampersand wieħed. Ma jħawdux li ma l ampersand doppja, li hija l-loġika U li tikri us iqabblu żewġ affarijiet. Il uniku U huwa kif nistgħu jimmanipulaw affarijiet bitwise. Allura dan jagħtina r-riżultat ta '1 jekk iż-żewġ mill-argumenti li aħna qed jitqabblu huma l-same-- jew huma 1. U l-bar vertikali, JEW, se tagħti us 1 jekk mill-inqas wieħed minnhom huwa 1. Allura bażikament eżattament dak il-kliem jimplika. U, jekk iż-żewġ bits huma 1, 1 u 1 tagħtina 1. Iżda ma 'l-OR, jekk huwa 0 jew 1, jew 1 jew 1, fi kwalunkwe każ, għandna 1 bħala wieħed minnhom. Mela allura aħna se tikseb 1. UDJENZA: X'tifhem li jgħid li jagħti 1? Camille REKHSON: Il- riżultat. Tip ta ', bħalek would-- jekk inti ma 0 u 1, l riżultat ta 'dan ikun 1-- jew 0 u 1 bir-riżultat ta ' li jkun 0, sorry. Yeah, kien tip ta 'l- riżultat tal-espressjoni. U mbagħad, dan is-simbolu caret hija l-XOR, jew JEW esklussiva. Allura dan ifisser esklussivament waħda jew eżattament wieħed miż-żewġ argumenti huwa ugwali għal 1. U allura jtik 1. Il-linja squiggly ftit huwa l-operatur MHUX. Allura kuntrarjament għall-bqija ta 'dawn, li joperaw fuq par ta 'bits, l-operatur MHUX tieħu biss bit waħda, u se flip. Mela jekk inti give-- jekk inti tagħmel MHUX 0, ikun jagħtuk 1. U jekk inti ma 1, dan jagħti inti 0. Yeah? UDJENZA: X'hemm differenza bejn il-OR b'linja waħda u l-aktar imbiegħda b'żewġ? Camille REKHSON: Allura l-OR ma żewġ linji hija l-aktar imbiegħda loġiku. Allura dak għall-paragun żewġ numri interi sħiħa, jew two-- biex tara jekk l-affarijiet huma ugwali. Jew bħal tagħmel din hija egwali għal dan, OR din hija egwali għal dan il-ħaġa tip. Billi l-bar unika jew, huwa biex tagħmel affarijiet bitwise. Yeah. UDJENZA: X'tifhem minn bitwise? Camille REKHSON: Allura bitwise qed taħdem direttament mal-bits fil binarju. UDJENZA: Oh, nara. Camille REKHSON: Yeah, hekk ħidma ma 0 u 1 ta. Aħna ser nagħmlu ftit eżempji ta 'dan wara, biss hekk mhuwiex wisq konfużjoni. U allura l-aħħar tnejn huma l- shift xellug u l-bidla dritt. Liema huma bażikament tnejn inqas minn sinjali jew tnejn akbar minn sinjali. U huma jixxaqleb għal daqsxejn in-numru mogħti ta 'postijiet li inti tagħti fid-direzzjoni. Għalhekk ikun jew bidla li lejn ix-xellug, jew lejn il-lemin. Yeah? UDJENZA: X'inhu l-sintassi għat-tmexxija? Camille REKHSON: Aħna ser jmorru permezz ta 'eżempju fit-tieni. Hekk nisperaw, li se jgħinu. Kwalunkwe mistoqsijiet dwar kemm x'hemm up here, before-- OK. Allura jmorru permezz ta 'xi eżempji. Nibdew bl-U dawk. X'għandu nagħmlu jekk irridu ma 0 u 1? UDJENZA: 0. Camille REKHSON: OK, u jekk aħna ma 1 U 1? UDJENZA: 1. Camille REKHSON: Yeah, dak jekk aħna ma 0 jew waħda? UDJENZA: 1. Camille REKHSON: Kif dwar 1 JEW 1? UDJENZA: 1. Camille REKHSON: OK, kif madwar 0 XOR 1? UDJENZA: 1. Camille REKHSON: U 1 XOR 1? UDJENZA: 0. Camille REKHSON: You guys huma tajbin. Kif dwar MHUX 0? UDJENZA: 1. Camille REKHSON: U MHUX 1? UDJENZA: 0. Camille REKHSON: OK, u mbagħad dan l-aħħar One ftit wieħed ma 'l-ċaqliq. Allura jekk aħna inizjali stabbilit x li tkun ta '8, u allura y hija x tinbidel għall-xellug 3, dak li dak tagħtina? UDJENZA: [inaudible]. Camille REKHSON: Say li għal darb'oħra. UDJENZA: [inaudible]. Camille REKHSON: Allura, dan attwalment tagħtina 64. UDJENZA: [inaudible]. Camille REKHSON: Hekk jien biss ser jikteb dan up hawn, hekk dan jagħmel xi ftit ta 'sens. Jekk ikollna 2 għall-0, 2 għall-1, 2 għall-2, 2 sa 3 se tkun ta '8. U jekk irridu li ċċaqlaq 3 bits aktar lejn ix-xellug, li jkun 2 sa 4, 2 sa 5, u 2 għall- 6, u 2 sa 6 huwa 64. Does li jagħmel sens? Iva. Udjenza: Does li shift l-1 ta u 0 TAL-numru binarju li the-- Camille REKHSON: Iva. U int mhux se jkollhom għalfejn tinkwieta dwar il- kwizz dwar dawn tkun negattiva. Aħna mhux se tagħmel inti jittrattaw bidliet negattivi f'kwalunkwe mod. Kwalunkwe mistoqsijiet oħra dwar dan? Iva. UDJENZA: Jekk huwa ċċaqlaq lejn il-lemin, xi ħaġa li wasn't-- xi ħaġa li oriġinarjament ma kenitx parti mill-ħaġa 0? Camille REKHSON: Yeah, inti żid ftit 0 fuq fl-oriġinal. Yeah. UDJENZA: Allura x'hemm li 100 tinbidel għall--dritt tliet darbiet? Camille REKHSON: 100 qalbu lejn il-lemin, b'tali mod li se jieħu kollha ta 'l Tal-1 ta 'u 0 u biss tbiddilhom għad-dritt kemm drabi inti huwa li neqilbu għal-lemin. UDJENZA: [inaudible]? Camille REKHSON: Well, 100-- huma inti titkellem dwarhom 100 fl binarju, jew 100 fl deċimali? UDJENZA: Jien sorry, 100 fil binarja. Camille REKHSON: 100 fil binarju, jekk inti bidla lill-right-- jekk inti bidla lejn il-lemin ladarba, tista 'ssir 10. Jekk inti bidla hija lejn il-lemin darbtejn, tista 'ssir 001. U allura jekk inti bidla mill-ġdid, inti tip ta 'jitilfu l-bit. Yeah, li jinsab biss 0. Kwalunkwe mistoqsijiet oħra dwar dan? Iva. UDJENZA: Allura imbagħad isir 000. Camille REKHSON: Iva. OK, so ejja jmorru permezz ta ' Ftit ftit ta 'matematika ASCII. Allura karattri jistgħu essenzjalment jiġu ttrattati bħala interi ibbażata fuq il-valuri ASCII tagħhom. Allura jekk aħna sib int A ekwivalenti għal 65, int B huwa ugwali A flimkien ma '1, char int C ugwali D minus 1, u char D ugwali 68, dak li jistampa fil-qiegħ? Allura, aħna qed istampar these-- bless you-- aħna qed istampar dawn kollha kif Chars ibbażat fuq il-mija C. Allura aħna qed bażikament istampar out il-valur karattru ta 'l-erba ta 'dawn il-varjabbli. Bħala ħjiel, 65 huwa l-valur ASCII tal-kapital A. Forsi li għen. Xiex? UDJENZA: ABCD. Camille REKHSON: Yeah, hekk dan jistampa eżattament ABCD għaliex aħna waqqafna int A daqs il-valur ASCII A. Mela jekk aħna istampar li fl bħala karattru, aħna biss jiksbu kapital A, A plus 1 tkun kapitali B fil ASCII. D minus 1 ikun il-kapital C fil ASCII. U 68 huwa l-valur ASCII tal D. Mistoqsijiet dwar ASCII? Iva. UDJENZA: Allura, il-virgoletti madwar A, ma li bidla A għall-ASCII? Camille REKHSON: Hija uses-- it kwotazzjonijiet count-- uniku madwar l-A jagħmilha karattru. U jekk int jittrattaw huwa fin-numru form-- hekk meta, bħal f'dan il-każ, huwa qed tiġi trattata bħala int-- allura jittrattaw ma huwa valur ASCII. Iva. UDJENZA: Do you jirrakkomandaw li għandna tabella referenza ASCII? Camille REKHSON: I ma think-- UDJENZA: Jew ikun jidher biss ikunu jittrattaw ma 'dawn? Camille REKHSON: I think we tagħmel dan ma 'affarijiet faċli. I ma naħsibx li kieku iweġġgħu biex jikteb forsi dak il-kapital A u zghar A huma, biss liema huma dawk firxiet qed jibdew bihom. Imma ma naħsibx li għandek bżonn tieħu l l-ispazju li jitqiegħed tabella ASCII kollu. Yeah. UDJENZA: X'hemm differenza bejn tgħid int A u char C, simili tagħmel fil-quċċata? Camille REKHSON: Allura huwa biss kif thats maħżuna fil-memorja. Iżda int tista 'titratta dan jew mod. Bħal naraw hawn, nagħmlu print l-A bħala karattru. UDJENZA: Allura dak l-istess bħal A? Camille REKHSON: Yeah. Kwalunkwe mistoqsijiet oħra? UDJENZA: Allura,-mija C huwa qal stampar ta 'char? Camille REKHSON: Iva. UDJENZA: Għalhekk anki jekk A għandu biss ġie definit bħala numru sħiħ, jekk nippruvaw għal stampar ta ' char bħala 65, it would-- Camille REKHSON: Dan imur għall bażikament tmur għall chart ASCII u gets kwalunkwe karattri fil-grafika ASCII għal li 65. UDJENZA: Grazzi. Camille REKHSON: Yeah. Iva? UDJENZA: Mela jekk inti ma% I,% I, % I,% I, ikun jidher biss print-- Camille REKHSON: Yeah, jekk inti ma 4% tal kollha I, it se jistampa l-ASCII valuri ta 'kull erbgħa minnhom. Kwalunkwe mistoqsijiet oħra? OK, so ambitu, bażikament din jgħinna ddeterminat fejn varjabbli jeżisti fil-programm tiegħek. Allura konna tkellimna dwar żewġ differenti tipi ta 'ambitu, globali u lokali. Jekk varjabbli huwa globalment scoped, dan ifisser programm kollu tiegħek ikollu aċċess għal dak il-varjabbli. U jekk inti globalment ambitu varjabbli, inti tiddikjaraha qabel funzjoni prinċipali tiegħek. Allura dan isir id-dritt barra l-BAT. U mbagħad kollu tiegħek programm tista 'aċċess. Jekk huwa scoped biss lokalment, li varjabbli konfinata għal xi reġjun speċifiku. Mela jekk inti tiddikjara fi għal loop, biss li għal loop tista 'aċċess. Jew jekk inti tiddikjara fi ħdan funzjoni speċifika, biss dik il-funzjoni tista 'aċċess. Mistoqsijiet dwar l-ambitu. OK, so prototipi funzjoni. Bażikament għaliex C, meta dan jikkompila, jgħid top down. Jekk inti tiddikjara funzjoni tard fil-kodiċi tiegħek, l kumpilatur ma jafx li teżisti dik il-funzjoni. Allura dak li nużaw huma prototipi, li bażikament tgħid il-kompilatur, din il-funzjoni teżisti, mur tħares għaliha aktar tard fil-kodiċi. Allura l-mod li inti tagħmel prototip funzjoni huwa eżattament kif tibda off kitba ta 'funzjoni. Inti tagħti t-tip ta 'ritorn, l-isem tal-funzjoni, u mbagħad ebda argument li dik il-funzjoni jieħu. Allura, biex tħares lejn eżempju malajr, f'dan każ jekk il-funzjoni tagħna li aħna qed tuża hawn hija bażikament funzjoni kubu. Allura filwaqt li fl integer u jirritorna l-kubu ta 'dak numru sħiħ. Allura għaliex konna bil-miktub li funzjoni taħt il-funzjoni ewlenija tiegħu, u aħna tixtieq li tuża l- output ta 'that-- jew aħna jridu dik il-funzjoni fil-funzjoni prinċipali tagħna, npoġġux mod prototip tiegħu fil-quċċata tal-programm tagħna. U allura meta nitolbu fil-funzjoni prinċipali tagħna, l kompilatur jaf li dik il-funzjoni hija miktub wara, u se jmorru tfittex għal dan, u se jużawh sewwa. Mistoqsijiet dwar prototipi? Iva. UDJENZA: Allura x'inhu l-punt? I ma jsibux l-punt ta 'prototipi. Għaliex mhux biss ikollhom l-isfel hemmhekk? Camille REKHSON: Ukoll jekk huwa stabbiliti hawn, allura meta ikollok għal-linja kubu ta x fil-funzjoni prinċipali tiegħek, l kumpilatur se jkollu ebda idea li il-funzjoni kubu fil-fatt teżisti. UDJENZA: Ma kellekx inti biss jitqiegħed quddiem? Camille REKHSON: Huwa prattika kodifikazzjoni aħjar li tqiegħed lilha taħt funzjoni prinċipali tiegħek. Allura hu għalhekk li nixtiequ jagħmlu l-ħolqien ta 'prototipi. Sempliċiment għax, jekk inti kellhom ħafna ta 'funzjonijiet, ikun verament messy li tinqara permezz ta 'dawk il-funzjonijiet kollha qabel ikollok l-laħam tal-programm tiegħek. Yeah, u kellek q-- UDJENZA: Allura, huwa ddikjarat varjabbli tiegħek up fil-quċċata sabiex inti tista 'jkollhom aċċess għaliha, jagħmilha varjabbli globali? Hija li simili għal dan fejn huwa ddikjarat li up hemm, b'tali mod li jaf li li għaddej biex jkollhom aċċess għaliha aktar tard u inti tista 'tagħmel użu minnha? Camille REKHSON: Yeah. Iva. UDJENZA: Jekk the-- kwalunkwe addizzjonali funzjonijiet inti toħloq ewlenin barra ta 'dan il-ħaġa, or-- Camille REKHSON: Yeah, jekk int ħolqien prinċipali functions-- oħra nnifisha hija l-function-- hekk jekk int ħolqien funzjonijiet oħra, dawn għandhom ikunu barra. Iva? UDJENZA: X'hemm fil-mija D? Camille REKHSON: Perċentwali D huwa l-istess ħaġa bħat-mija I. Hija tirreferi għal numru sħiħ. Iva. UDJENZA: Allura dak li qed tagħmel ewlenija int? Liema kienet li null? Camille REKHSON: Null jgħid jieħu fir ebda argumenti. UDJENZA: [inaudible]. Camille REKHSON: Tista jitkellmu louder ftit, sorry? UDJENZA: Yeah, sorry, għaliex ma inti tpoġġi invalidu għal-ewwel wieħed, u mbagħad int input għat-tieni waħda? Camille REKHSON: Oh, għaż-żewġ different-- għall-funzjoni prinċipali kontra l-funzjoni kubu? Allura fil-funzjoni ewlenija tiegħu, nużaw nulli minħabba li hemm l-ebda parametri li jiġu meħuda. Billi fil-kubu funzjoni, għandna input. C'est pourquoi jgħid int, input, għaliex hemm argumenti li aħna qed filwaqt li fl jiddekorri funzjoni tagħna. Yeah. Hemm mistoqsijiet? OK, u mbagħad malajr punt varjabbli impreċiżjoni. Allura aħna għandna numri reali infinitament ħafna. Iżda hemm biss numru finit ta 'bits li nistgħu nużaw biex juru dawk numri, u tirrappreżentahom. Mela allura aħna jispiċċaw ma 'xi nuqqas ta' preċiżjoni. U numri tiegħek mhux se dejjem jkun pjuttost eżattament dak taħseb li huma meta int jittrattaw punt varjabbli. Dan huwa biss xi ħaġa tajba li tkun taf. Mistoqsijiet dwar dan? Iva. UDJENZA: Huwa dan jirreferi l-idea ta 'bit overflow li kien fil-lecture? Kienet li xi ħaġa separati? Camille REKHSON: Huma qed kompletament separati, yeah. OK, kbir. PULAK Goyal: Hi, kulħadd. Jisimni Pulak, u jien ser jkun għaddej matul pointers. OK, so ejja ewwel think dwar dak memorja Dehra. Allura kif tista 'tara hawn, aħna jieħu memorja u aħna jaqsamha up fi mazz ta 'blokki. U aħna referenza kull blokk minn indirizz, id-dritt? U ħadd ma tiftakar dak it-tip ta ' notazzjoni nużaw sabiex jindika indirizz? UDJENZA: Eżadeċimali, 0X. PULAK Goyal: Eżadeċimali, id-dritt? Allura l-0X ifisser li aħna qed jitkellem dwar hexadeċimali. OK, so kif nistgħu joħolqu pointers? Allura aħna jieħdu t-tip, aħna jitqiegħdu it-- żid stilla miegħu, u allura aħna żid l-isem varjabbli. Allura l-eżempji Rajna l int star x, y star char, u float tibda z. Allura meta I say star int x, jista 'xi ħadd tell me dak li nkun qiegħed tip ta 'jitkellem dwar hemmhekk? UDJENZA: Il-lokazzjoni ta 'l-disk. PULAK Goyal: Jiddispjacini, liema? Inti tista 'tirrepeti li? UDJENZA: Il-lokazzjoni ta 'disk. PULAK Goyal: Allura actually-- iva, liema I fisser, huwa meta għandna int star x, aħna qed tgħid huwa ħolqien pointer, u jista 'jaħżen l-indirizz ta' varjabbli thats int, id-dritt? Allura ma y star char, aħna qed joħolqu pointer li jista 'jaħżen l-indirizz ta 'varjabbli li l-char. Allura li jagħmel sens għal kulħadd? OK, berred OK, so ma pointers, hemm żewġ operazzjonijiet importanti li nistgħu nagħmlu. Hemm referenzar, u theres dereferencing. Yeah? UDJENZA: Tista 'tmur ftit aktar bil-mod? PULAK Goyal: Sure. Yeah, yeah so--, jistaqsu mistoqsijiet kif mmur flimkien jekk you-- jekk xi ħaġa mhux ċar. Allura aħna għandna referenzar u dereferencing. Allura meta inti tixtieq li tikseb l-indirizz ta 'varjabbli, allura l-użu l-ampersand. Mela ejja ngħidu I ddikjarat Int x x'imkien. U nixtieq li tikseb l-indirizz ta 'dak u li jgħaddi bi, Jien kont nagħmel ampersand x. U meta inti tixtieq li tikseb l- valur assoċjat ma 'pointer, tuża l-dereference operatur, li hija stilla. Allura tikri say I kellhom int star x, u I kieku tipponta lejn xi ħaġa. Jekk I rridu nġibu l-valur ta 'dak li huwa tipponta lejn, nixtieq biss tagħmel star x. Huwa dan ċar? Kwalunkwe mistoqsijiet dwar dan? Yeah. UDJENZA: Allura ġenerali, inti mhux se tkun tista 'tagħmel fid x u stilla x bl-istess x. Hija li korretta? Għaliex jekk x huwa varjabbli, imbagħad inti għandek li tagħmel fid x li tikseb li huwa pointer. Imma jekk x huwa pointer, imbagħad inti għandek bżonn tagħmel star x biex jiksbu l-varjabbli. PULAK Goyal: Iva, sabiex il- kwistjoni kienet dwar meta do nużaw star-- meta kieku inti tuża l-istilla, u meta nużaw l- ampersand, u nistgħu użu ma 'l-istess tip ta' varjabbli? Mela normalment jekk għandek, per eżempju, int x, inti tkun aktar tuża l- ampersand li jiksbu l-indirizz ta 'dak. Minħabba li ma jagħmilx sens li b'rispett fis x. Billi, jekk kellna star int x, youd tkun qed tuża l-operazzjoni dereference minħabba li ma jagħmel ebda sens għall-użu fil x f'dak il-każ. Does li jagħmel sens? UDJENZA: Allura inti ma tistax u, u mbagħad pointer? PULAK Goyal: Allura inti teknikament, fil-fatt jistgħu jagħmlu l-ampersand ta 'pointer. Imma dak li barra mill- ambitu ta 'din il-klassi. Għall-purpose-- għall guys tiegħek " skopijiet, kull meta inti għandek pointers, inti tixtieq li tuża l-operatur dereference biex jiksbu l-valur assoċjat ma 'dak. U meta jkollok regolari varjabbli, bħal int x, inti tixtieq li tuża l-ampersand operatur li jiksbu l-indirizz ta 'dak. KOLLOX SEW? OK, so ejja nħarsu lejn pointers u dak li jiġri taħt il-barnuża. Allura l-ewwel ħaġa li għamilt hawnhekk huwa l-int iddikjarat x hija ugwali għal 5. L-indirizz ta 'dan il-varjabbli huwa 0x04, u il-valur huwa 5. Mela ejja ara dak li jiġri mal-linja li jmiss. Allura issa aħna tiddikjara pointer. Indirizz tagħha huwa 0x08, u tiegħu valur huwa-indirizz ta 'x. Does li jagħmel sens għal kulħadd? Kwalunkwe mistoqsijiet dwar dan? OK, u issa ejja ara dak jiġri mal-linja li jmiss. Allura ma din il-linja li jmiss, aħna għandna l-indirizz tal-kopja li tkun 0x10, u l-valur tagħha huwa 5. Allura r-raġuni aħna ltqajna ħames huwa għidna, aħna dereference pointer, li aħna dikjarata bħala star int. U għalhekk went-- meta aħna dereference dan, huwa qal, OK, x'inhu fl-0x04 slot. U marru għal dan. U dak x hija x0-- 0x04, u il-valur huwa 5. Does li jagħmel sens? Yeah? UDJENZA: Għaliex huwa l-indirizz tal-kopja tal biss 4 bytes fuq mill-x pointer? PULAK Goyal: Iva, dan huwa żball on-- Camille REKHSON: Allura, iva, ftakar dan huwa miktub f'hexadecimal. PULAK Goyal: Oh, yeah. Camille REKHSON: Allura dan huwa attwalment 8 u mbagħad 16 għaliex aħna qal li, l-pointer, ftakar, fil IDE tagħna se tkun 8 bytes twil. PULAK Goyal: Yeah. Hekk biss tkun ċara, pointers huma 8 bytes twil. An int huwa 4 bytes. Allura r-raġuni għaliex dak qabża minn 0x04 li 0x08 huwa għaliex aħna kellhom tagħmel qabża ta '8 bytes. U allura for-- peress kopja huwa biss int, huwa 4 bytes, li huwa nofs ta '8 bytes. Allura aħna biss jaqbżu 0x10, li hija ta 'żewġ bogħod minn 0x08. Kwalunkwe mistoqsijiet oħra? OK, let's-- yeah? UDJENZA: Għaliex mhix il-valur tal-kopja int biss the-- għaliex hi 5 minflok 0x04? PULAK Goyal: OK, għaliex hi 5? OK, hekk meta the-- so ejja ewwel jaħsbu dwar dan f'termini ta 'tipi. Hekk jien tgħid kopja int hija ugwali għal star pointer. Allura dak li huwa t-tip ta 'pointer? Huwa star int. U meta I dereference li, it-tip isir int. Allura dak li nistennew li jaħżen hawnhekk hija attwalment int. Does li jagħmel sens? UDJENZA: Sure, xi ftit. PULAK Goyal: Allura normalment meta taħseb f'termini ta 'tipi, dan jgħin inti tifhem x'inhi l- tip tal-valur li għandu jmorru hemm. Allura inti tista 'normalment teskludi ħafna ta 'dawn l-iżbalji komuni billi jaħsbu f'termini ta 'tipi. Let me jgħaddu ftit slides aktar. U nistgħu nibdew mistoqsijiet fil l-aħħar tat-taqsima pointer. OK, hekk aħna jkollhom programm Buggy hawn. U għalhekk ma anyone-- jista 'xi ħadd tell me dak li hu ħażin ma 'dan il-programm? Dritt, hekk dak li aħna qed jistennew li nagħmlu hawnhekk is-- dak li rridu nagħmlu huwa li tieħu l-varjabbli int x u dawwar it-- jagħmluha ugwali 5 minflok 3 u mbagħad print dik. Iżda li mhux qed iseħħ. Jista xi ħadd tell me għaliex? Iva? UDJENZA: Meta l-funzjoni to_five jieħu x kif huwa argument, dan ma jieħux x innifsu, iżda minflok toħloq kopja, a, ta 'dan. U dan jifforma l-operazzjonijiet fuq dan. Iżda minħabba li, inti ma jibdlu l-valur attwali ta 'x. Peress li int [inaudible]. PULAK Goyal: Dritt, dritt, hekk meta aħna sejħa l to_five funzjoni, liema li aħna qed tagħmel qed taħseb, tagħti me kopja tal- valur li dik il-funzjoni. Din il-funzjoni, allura, huwa ser u tagħmel xi manipulazzjonijiet. Imma ladarba dan jirritorna, huwa issa out ambitu tal-funzjoni prinċipali hawnhekk. U hekk x għadu, fil-fatt, daqs 3, u aħna istampar 3. OK, so ejja naraw kif jiġri dan. OK, hekk hemm xejn iddikjarat. Imbagħad, hawnhekk, x hija ugwali għal 3. U issa is-- fil-pożizzjoni tnejn, a għadu mhux fl-iskop. U issa immorru pożizzjoni tlieta, fejn issa jassumi l-valur tat-3. Għal erbgħa, aħna issa bidla sa 5. Imma issa, meta aħna jaqbżu lura lill ħames, li hija l-istqarrija istampar, a issa huwa barra mill-ambitu. U x għadu daqs 3. Does this jagħmel sens għal kulħadd? OK, hekk issa ejja nitkellmu dwar kif nistgħu nużaw pointers biex jiffissaw dan. Ħadd ma jkollu xi ideat kif aħna tista 'tiffissa dan billi tuża pointers? UDJENZA: Inti tieħu fi star int minflok int għal to_five. PULAK Goyal: Jiddispjacini, jista inti titkellem up? UDJENZA: Inti tieħu fi star int minflok int għal to_five. PULAK Goyal: OK, iva. Mela ejja pass-- minflok tgħaddi biss il-valur, ejja jgħaddu b'referenza. Din il-funzjoni ġdida, id-dritt? U hekk billi tgħaddi l-indirizz fl, aħna tista 'tagħmel manipulazzjonijiet fuq l-indirizz. U hekk aħna qed attwalment, fil-fatt, il-bdil x. Mela ejja ara kif din taħdem. OK, hekk f'dan l-eżempju aħna iffissat. Imxejna inbidel firma tagħna tal to_five li jieħdu fi int istilla minflok biss int hawn. Imbagħad aħna dereference dan au tassenja 5 lilha. U issa dan se, fil-fatt, jistampa 5. Mela ejja ara kif il-passi jaħdem hawn. Allura l-ewwel pass, hemm xejn iddikjarat s'issa. Allura hawnhekk, it-tieni pass, konna qal x hija ugwali sa 3, iżda għadu barra mill-iskop. Issa fit-tielet linja, għandna x għadu ugwali għal tlieta. U issa, aħna għaddew in-- x'hemm maħżuna fil-issa huwa l-indirizz ta 'x. Does li jagħmel sens li kulħadd, kif sirna li? Dritt, aħna għandna l-amper-- li kif aħna għadda l ampersand x-funzjoni to_five. U mbagħad mal-linja li jmiss, dak nagħmlu, hija aħna dereference a. U minn dereferencing a, aħna kapaċi li jibdlu l-valur ta 'x 3-5. Minħabba x jgħix f'dak l-indirizz 0x12. U mbagħad, fl-aħħarnett, meta nerġgħu lura lura għall ewlenija, għalkemm dan issa huwa barra mill- ambitu, aħna għandna, fil-fatt, inbidlet x. U huwa 5. Kwalunkwe mistoqsijiet dwar dan? Yeah? UDJENZA: Tista 'tgħidli dak l-ampersand x kien? Ħsibt ampersand kien simili U. PULAK Goyal: Iva, hekk aħna nużaw l-istess simbolu għal ħafna affarijiet differenti. Allura hawnhekk, meta inti have-- fil F'dan il-każ, meta għandek, I guess-- hekk f'dan il-każ, meta int jittrattaw pointers, meta inti tpoġġi l-ampersand quddiem ta 'int, a int varjabbli, jew char, jew fluss, dak li qed tgħid huwa, agħtini l-indirizz ta 'dan. Imma dak li inti kienu qed jaħsbu ta ', meta inkella inti tuża ampersand huwa, ejja ngħidu, fi jekk dikjarazzjoni. Għandek veru, u xi varjabbli li jevalwa sa ċertu Boolean, u xi varjabbli oħra li jivvalidaw xi Boolean u inti tixtieq li tikseb l-u ta 'dak. Imbagħad inti tuża l-ampersand. SPEAKER 1: Yeah, hekk biss illum, konna tkellem dwar tliet użi differenti ta ampersand. Għandna żewġ ampersands, li hija dak Pulak għadu kif deskritt. Għandna ampersand wieħed, li huwa dak deskritt Camille preċedenti, li hija ampersand wieħed. U li għal bitwise U. U tinnota li kemm l- AND-- kondizzjonali jew, sorry, l loġiku U u l bitwise U, dawk għandhom żewġ numri, id-dritt? Kien xi ħaġa ampersand xi ħaġa ampersand, xi ħaġa xi ħaġa ampersand. Hawnhekk, meta aħna biss għandhom ampersand xi ħaġa, li l-dereferencing. PULAK Goyal: Yeah, kwistjoni kbira. Yeah. UDJENZA: Għaliex ma f'konformità 5a u star a jsiru N / A? Għaliex ma huma biss tip ta 'jżommu l- istess valuri mil-linja ta 'qabel? PULAK Goyal: Minħabba konna ħareġ l-funzjoni. U iva, liema happens-- hekk what-- issa aħna qed barra mill-iskop ta 'dik il-funzjoni, dak li jiġri attwalment huwa dawk huma mneħħija mill-memorja. Yeah. UDJENZA: Bejn 3 jew 4 star a ugwali 5. PULAK Goyal: Iva. UDJENZA: Xi jfisser li eżattament juru? PULAK Goyal: Xi jfisser? UDJENZA: Yeah. PULAK Goyal: Allura l- kwistjoni kienet, dak li huwa that-- x'qed tagħmel online meta aħna ngħidu, star huwa ugwali għal 5? Mela ftakar l-istilla l- operatur dereference. Allura meta, f'dan il-każ, huwa pointer. Huwa ta 'star int. Allura meta aħna dereference a mill jużaw l-istilla, dak li aħna qed tgħid huwa, mur kollu li huwa maħżun fil- indirizz, maħżuna a-- hekk take-- hekk, dritt issa, għandha xi indirizz maħżuna fih. Mur fil fejn li jindirizzaw il-punti sa, u issa tbiddel dak kollu li huwa għal ħamsa. Yeah. UDJENZA: Tista 'tgħid aktar sempliċi? Ibdel il--indirizz ta 'sa 5. PULAK Goyal: Aħna ma jinbidlu l-indirizz ta 'sa 5. A għandha xi indirizz fiha, li hija l- indirizz tal-varjabbli ta 'interess. U hekk dak li aħna qed tgħid meta aħna dereference hija, issa irridu li change-- aħna issa qed referenzar interess dirett tal-varjabbli tal. Does li jagħmel sens? SPEAKER 1: Mod ieħor biex jaħsbu ta 'dan huwa go-- hekk huwa indirizz. L-istilla jgħid tmur f'dak jindirizzaw u ħarsa lejn il-valur tagħha. U issa stabbilit valur tagħha sa 5. Għalhekk jgħid, mur l- indirizz tal x, li se tkun x'hemm maħżuna fil-, u l-bidla sa 5. PULAK Goyal: Yeah? UDJENZA: Allura l-pożizzjoni huwa fejn l-pointer li qed jiġri,-indirizz. Iżda l-valur huwa xi assenjat valur ibbażat fuq l-indirizz. PULAK Goyal: Yeah. Kwalunkwe mistoqsijiet oħra dwar dan? UDJENZA: Għandi mistoqsija. PULAK Goyal: Yeah, sorry. UDJENZA: Allura meta inti store-- hekk jekk inti qed tgħid [inaudible] a. PULAK Goyal: Iva. UDJENZA: Għandek biex jaħżnu l-x bi ampersand? Għaliex ma tistax inti biss jgħidu x qabel int tiegħek [inaudible]? PULAK Goyal: So-- UDJENZA: [inaudible]. PULAK Goyal: Allura huwa question-- tiegħek oh. Allura mistoqsija tiegħek hija, għaliex ma tistax we-- għall-to_five funzjoni, għaliex ma nistgħu biss jgħaddu minn x, id-dritt? UDJENZA: Dritt. PULAK Goyal: OK, yeah, għalhekk dan mill-ġdid tmur lura għad-diskussjoni tagħna fuq tipi. Allura l-to_five funzjoni issa huwa jistennew tip ta 'stilla int. Allura dak li huwa t-tip ta 'x? X huwa biss int. Imma dak li din il-funzjoni jistenna huwa star int. Għalhekk jistenna varjabbli li għandha l-indirizz maħżuna fih. Allura li kif you-- tpoġġi l- ampersand, u b'tali mod li kif aħna jgħaddu fil- indirizz, li huwa now-- u li jinterpreta dan bħala star int, yeah. Kwistjoni kbira. Kwalunkwe mistoqsijiet oħra dwar dan? OK, berred. OK, hekk issa ejja nitkellmu dwar aritmetika pointer. Allura hawnhekk, biż-żieda u t-tnaqqis i taġġusta l pointer minn i darbiet id-daqs ta ' it-tip ta 'bytes pointer. Mela ejja nħarsu lejn kif li qisu. Allura hawnhekk, konna iddikjarat int x ugwali għal 5. U issa aħna qed tmur biex tiddikjara pointer y, u jgħaddu fil-indirizz ta 'x hemmhekk. Allura aħna għandna dan. Allura x hija maħżuna fil 0x04. Allura issa y hija ugwali għal dik. U jista 'xi ħadd tell me dak li jaħsbu se jiġri meta nagħmlu y plus ugwali 1? Yeah? UDJENZA: Se bidla għal 0 ħinijiet 0 8? PULAK Goyal: Daqs, u type-- UDJENZA: Inti qed jiċċaqalqu-indirizz. PULAK Goyal: Yeah was-- iva. Dritt So--. Għalhekk ser tinbidel għal 0x08. U because-- hekk youd tuża dan formula, 1 darbiet id-daqs tal-pointer u l-pointers huma ta size-- [STUDENTI ħsejjes] PULAK Goyal: Dritt. [STUDENTI ħsejjes] SPEAKER 1: Allura l-tip li il-punti pointer to-- PULAK Goyal: Huwa, yeah, yeah, dan huwa 4 bytes. SPEAKER 1: Allura ints huma 4 bytes. PULAK Goyal: hekk jekk kellna a-- ejja ngħidu aħna ddikjarat, I raden, char. X'għandu that-- so ejja ngħidu aħna għandhom x char ugwali għal jew xi ħaġa. U kellna l-indirizz ta 'dak fil 0x04, X'għandu y plus jegwalja 1 tagħmel issa? Jiddispjacini, liema? UDJENZA: 0x05. PULAK Goyal: 0x05, id-dritt. Does kulħadd tara li? OK, u issa ejja ngħidu huwa float. X'jista 'jiġri? Kulħadd? Allura sufruni huma kemm bytes? UDJENZA: 4 bytes. PULAK Goyal: Dritt. Għalhekk ikun l-istess ħaġa bħat dan. Kessaħ. OK, u issa ejja nitkellmu dwar pointers u arrays. Allura inti raw dan fuq il- żewġ settijiet ta 'qabel, p fejn nistgħu treat-- arrays hekk u pointers mhumiex l-istess ħaġa. Iżda nistgħu jikkura arrays bħala pointers. Allura hawnhekk, aħna għandna dan array hawn, li għandu tliet slots. Fl-ewwel slot-- aħna jkollhom waħda, tnejn, u tlieta. Mela jekk we-- hekk nistgħu tassenja li billi qal, għandna firxa, dereference dik. U allura meta aħna dereference li, dak li aħna qed fil-fatt jagħmlu huwa jirreferi għall-istess slot. Allura firxa star ugwali 1. Aħna could- kif jistgħu aħna tikteb that-- x'hemm mod alternattiv nistgħu jikteb li? UDJENZA: Array 0 ugwali 1. PULAK Goyal: Eżattament, kulħadd ma tara li? Allura istess ħaġa ma 'hawn. Allura meta aħna għandna firxa flimkien ma '1, aħna do-- hekk even-- niftakar aritmetika li aħna biss tkellem dwar, meta nagħmlu flimkien ma '1 jew jġorrhom f'idejn 4 bytes, id-dritt. Does kulħadd tara li? U dik in-naħa, meta aħna dereference li, nistgħu stabbilit li għal 2. U li kif aħna stabbiliti il-blokk li jmiss għal 2. U hekk mod alternattiv biex jiktbu dan ikun il bracket firxa 0 parentesi ugwali 1. UDJENZA: Għandek bżonn l-parentesi? PULAK Goyal: Iva, għax int dereferencing il-kwantità kollha firxa plus 1. OK, u istess ħaġa għall-firxa plus 2. Kwalunkwe mistoqsijiet dwar dan? Yeah. UDJENZA: Allura firxa hija awtomatikament stabbilita għal 0? PULAK Goyal: Array is-- sorry, liema? UDJENZA: Array huwa ta '0. L-indirizz tal-firxa huwa biss 0. PULAK Goyal: Għalhekk il-kwistjoni kienet, huwa l-indirizz ta 'firxa biss 0? Allura, l-ebda, array għandha xi indirizz. Allura meta aħna dereference dan, that's-- sabiex inti tista 'taħseb about-- litteralment bħal tipponta pointer għall-bidu ta 'firxa. Allura li għandha xi indirizz. Ma nafux dak li hu. Iżda meta aħna dereference dan, nafu dak l-bidu tal-firxa. U hekk meta nimxu mill 1, aħna qed biss jiċċaqalqu relattiva għal fejn dak l-indirizz kien. Kwalunkwe mistoqsijiet oħra? Yeah? UDJENZA: Mela jekk inti tagħmel bracket firxa plus 1-- PULAK Goyal: Jiddispjacini, I-- jista inti titkellem up? UDJENZA: Yeah, jekk inti tagħmel bracket array [inaudible]. Mela allura jekk inti tpoġġi l-Pointer PULAK Goyal: Skużani jien ma tistax tisma int. Inti tista 'tgħid li waħda aktar ħin? UDJENZA: Inti OK. PULAK Goyal: OK, sorry. OK, berred. Any-- yeah. Allura meta inti tmur fil-bracket tal-firxa 3-- PULAK Goyal: Yeah. UDJENZA: --isn't there-- kieku ma huwa jkun ta 'erba spots bħal 0, 1, 2, u 3? Għaliex huwa mhux int firxa 2? PULAK Goyal: Le, hekk biss il-konvenzjoni ta 'C is-- meta aħna niddikjaraw l-array, we---numru npoġġux hemmhekk huwa kemm slots rridu. Iżda l-indiċi tal-firxa huma fil-fatt firxa 0, array 1, u array 2. Allura huwa biss il-konvenzjoni dwar kif aħna tiddikjara arrays. Yeah, xi mistoqsijiet oħra? Yeah. UDJENZA: Allura aħna qed għadhom jitkellem dwar pointers, id-dritt? PULAK Goyal: Yeah. UDJENZA: Tista għadhom star għall-firxa 0 ugwali 1? PULAK Goyal: No, no, so-- OK, sabiex il-kwistjoni kienet tista inti biss tagħmel bracket firxa star żero, u mbagħad jgħidu li egwali għal 1. Allura, l-ebda, dak li aħna qed tgħid hawnhekk hija li nistgħu think-- nistgħu jittrattaw arrays bħala pointers. Allura aħna have-- dak li aħna qed qal huwa għandna żewġ modi li issa referenza għall-istess blokka. Mela doing-- jekk għandek firxa żero, it-tip ta 'li issa huwa int. U jekk tieħu l-istilla li, ikollok ħaġa invalidu. Allura dak li aħna qed tgħid hawnhekk, huwa hemm żewġ modi alternattivi li jirreferu għall-istess blokka. Inti tista 'jew tagħmel firxa bracket 0 ugwali 1. Jew inti tista 'tagħmel dereference firxa, u li jkollhom daqs 0. Hekk biss żewġ modi ta ' tagħmel l-istess ħaġa. Yeah. UDJENZA: Għaliex hux daqs tal int 1 li żżid to-- PULAK Goyal: Daqs ta 'int 1. UDJENZA: Għaliex dan huwa li jiċċaqalqu off wieħed. PULAK Goyal: Għaliex dan huwa biss il-mod C jaħdem. Huwa biss il-mod pointer aritmetika hija definita. Li ser tieħu l-pointer. U allura x'ikun inti żid lilha, dan ser timmultiplika din mid-daqs ta 'kwalunkwe il-maħżen pointer huwa, yeah. Yeah. UDJENZA: Allura inti tgħidli nistgħu jikkura pointers u arrays l-istess, iżda li dawn qed differenti. Allura dak li jagħmel lilhom differenti? X'nistgħu ma tagħmel ma wieħed iżda mhux l-oħra? PULAK Goyal: Għall-finijiet ta 'dan klassi, naħseb it's-- liema do you-- SPEAKER 1: Allura, we-- OK, iva, għal eżempju, jekk inti jallokaw memorja u inti għandek pointer li integer, per eżempju. Jekk inti ppruvaw biex tibda tagħmel aritmetika pointer u jmorru lil hinn mill-ammont tal-memorja li inti allokati, youd run fis żbalji. Nafu ma arrays, aħna jgħidu qabel iż-żmien, OK, I tixtieq li allocate-- dan essenzjalment jgħid, nixtieq li jallokaw biżżejjed spazju għal tliet numri interi. U hekk issa nistgħu jikkura memorja bħallikieku għandna tlieta minn dawk il interi. Does li tip ta 'jagħmel sens? PULAK Goyal: Yeah. Yeah. UDJENZA: Allura stilla firxa, huwa li tassenja 1 l-indiċi 0 tad-array? PULAK Goyal: Iva. UDJENZA: Allura, dak li huwa wara l- żewġ linji li jmiss f'termini ta 'the-- I jifhmu li inti qed tipprova għall-użu aritmetika pointer hawn, iżda għal darb'oħra, ma nifhimx dak pointer aritmetika hu. Allura l-firxa plus 1, int tgħid li int issa tmur jridu jitkellmu dwar l-ewwel indiċi fil-firxa. PULAK Goyal: Dritt, u għalhekk il- raġuni li jaħdem huwa array, hawn, nistgħu jaħsbu bħala stilla int. U hekk meta aħna pointer aritmetika fuqha, tiftakar il-formula fejn nieħdu the-- I raden dak kollu -indirizz attwali huwa, u mbagħad meta aħna żid 1 lilha, aħna fil-fatt immoltiplika 1 mid-daqs tal il-ħaġa aħna qed manipulazzjoni. Allura f'dan il-każ, id-daqs ta 'int. U allura aħna jġorrhom jgħaddi minn li ħafna. SPEAKER 1: Allura nippretendu għandek star b firxa. PULAK Goyal: OK, yeah. SPEAKER 1: B'id tiegħek. Mur hawn. PULAK Goyal: Or nista 'just-- yeah. OK hekk here--, hekk firxa fil- bidu, huwa biss id-dritt hawn. Allura meta aħna dereference firxa, konna biss li jirreferu għall-ewwel blokk hawn. Imma issa meta I do firxa flimkien ma '1, li is-- li vleġġa issa huwa dritt hawn. Does li jagħmel sens? Dritt, minħabba dan il-blokk hija ta 'int daqs, li huwa ta' 4 bytes. U hekk, dak li aħna qed tagħmel hija aħna qed jiċċaqalqu li pointer minn 4 bytes fuq. Kull meta nagħmlu aritmetika fuqha, se dejjem jġorrhom b'żidiet ta '4 bytes. Minħabba li dan huwa bħal stilla int. Does li jagħmel sens? KOLLOX SEW. UDJENZA: Allura l-affarijiet fil-firxa kienu ta '5 bytes, aħna'd jġorrhom 5 bytes-- PULAK Goyal: Dritt, hekk jekk kellna star char, aħna'd jġorrhom mill-1 byte biss. Allura fil-każ ta 'stilel char, huwa d jkun biss jġorrhom f'idejn 1. UDJENZA: Biex tikseb l- li jmiss ikollok bżonn stilla. PULAK Goyal: Yeah, yeah, ma li jagħmel sens? SPEAKER 1: Nistgħu chat dwar dan aktar tard. PULAK Goyal: Yeah, yeah, għall-żgur. OK, berred. Ejja jimxu fuq il-taqsima li jmiss. SPEAKER 1: Oh, OK jibred. Yeah, dan huwa me. Dritt kollox, biża '. OK, berred, hekk issa aħna qed fuq ftit informazzjoni aktar ġenerali dwar memorja. Ukoll, I japprezzaw il-fatt li huma kienu ser pretty malajr. Huwa ħafna ta 'materjal li tikseb permezz fl-siegħa u nofs. Iżda jekk ikun hemm xi suġġetti inti tixtieq li tmur aktar fil-fond fis- aħna qed tmur biex ikollhom ħinijiet tal-uffiċċju din il-ġimgħa fejn inti tista 'chat magħna waħda fuq waħda. Jew inti tista 'biss toħroġ fil- tmiem u aħna ser chat dwar affarijiet. U kif dejjem, tħossok liberu li jistaqsu mistoqsijiet. Tal-biża. Allura hawnhekk stampa tagħna ta 'memorja li Rajna fl lecture biljun darbiet. U nafu li dan munzell jikbru mill-qiegħ u l-borġ tikber isfel. U x'inhu l-differenza bejn affarijiet li inżommu fuq il-borġ u affarijiet li inżommu fuq il-munzell? Xi ħadd tarmi xi ħaġa hemmhekk. Yeah. UDJENZA: Huwa munzell għal affarijiet li huma biss varjabbli impermanent li aħna qed biss tiddikjara jużaw ċerti funzjonijiet? SPEAKER 1: Beautiful, yeah. Allura kull darba fejn, ejja jgħidu aħna qed fil-funzjoni, u aħna biss għandhom xi varjabbli lokali. Dawk ser jispiċċaw fuq il-munzell. Jekk, minflok, nagħmlu sejħa malloc u fil-fatt jalloka memorja, li dejjem ġej mill-borġ. Allura, yeah Kessaħ? U sabiex tiftakar li kull memorja li inti jallokaw tuża malloc, li għaddej biex jispiċċaw fuq il-borġ. U jekk tinsa lilu b'xejn, il-kompjuter li mhux se tkun taf li qed isir magħha. Allura huwa biss se hang hemmhekk fil-memorja. U int essenzjalment jnixxu li l-memorja. Int titlef dan. Għaliex inti qatt ma qal il-kompjuter, ħej jien jsir jużawh, tħossok liberu li juża, l-affarijiet oħra hemmhekk. Kessaħ. Kwalunkwe mistoqsijiet hemmhekk? Iva. UDJENZA: Allura x'tip ta 'memorja huwa munzell? Għalf mhux dinamiku, ddelegati? What would you sejħa hija? SPEAKER 1: Sure, sabiex inti tista ' jaħsbu bħala varjabbli lokali. Sejħiet attwali għall-funzjonijiet ser munzell up. Xi ħaġa oħra? Yeah? UDJENZA: Kif inti liberu l-memorja inti miżjud mal the-- SPEAKER 1: Sure, hekk meta inti jallokaw memorja fuq il-munzell, inti sejħa malloc. U hekk allura li jagħtik lura pointer li xi indirizz fil-memorja. Allura ngħid inti imsejħa li pointer, id-dritt? Imbagħad, inti biss jgħidu pointer ħielsa. U li jillibera l-memorja. Kessaħ. Mistoqsijiet oħra? Iva. UDJENZA: X'tagħmel allokati dinamiku jfisser? SPEAKER 1: Dinamikament allokat ifisser, fil-kors tal-programm tiegħek. Allura meta inti sejħa malloc fil -nofs tal-programm tiegħek, fil-bidu tal-programm, hemm l-ebda memorja allokati. U kif il-kompjuter pass permezz dan il-kodiċi, li għaddej biex jalloka l-memorja. Allura dak hu li rridu nfissru minn dinamiku. Tajba kwistjoni. Yeah? UDJENZA: Meta inti jiddefinixxu array mal-parentesi kwadri, ma li xorta [inaudible]? SPEAKER 1: Li l-mistoqsija tajba. I think meta inti jalloka firxa, fil-fatt tqiegħdu fuq il-munzell. Jien ma pożittivi dwar li, sabiex ma jikkwotaw lili. SPEAKER 2: I think it-- yeah li tqiegħed fuq il-munzell. SPEAKER 1: tqiegħdu fuq il-munzell. OK, berred, ikkonfermat. Mistoqsijiet oħra? Yeah? UDJENZA: Meta inti tiddelega malloc, ma 'l-kompjuter awtomatikament jalloka memorja għall-varjabbli tiegħek? SPEAKER 1: Yeah, għal varjabbli lokali tiegħek, awtomatikament iqiegħed memorja fuq il-munzell. UDJENZA: Allura x'inhu l- punt ta 'użu malloc? SPEAKER 1: X'inhu l- punt ta 'użu malloc? Allura rajna mazz ta 'eżempji, bħal, per eżempju, bl-użu tpartit, fejn irridu li l-ambitu ta ' l varjabbli li tkun xi ħaġa lil hinn minn sempliċiment sejħa funzjoni tiegħu. U aħna nagħmlu xi ħaġa li nistgħu jgħaddu madwar u li nistgħu aċċess minn postijiet differenti. Li meta aħna'd tixtieq li jitqiegħdu memorja fuq il-borġ. Sabiex dawn kollha differenti funzjonijiet tista 'aċċess. UDJENZA: Tista 'biss tispjega li? SPEAKER 1: Allura għażla waħda is-- hekk il kwistjoni kienet, nistgħu biss allocate-- sorry, nistgħu tiddikjara varjabbli globali, essenzjalment. Li hija għażla waħda. Iżda ma 'lott ta' dawn, dawk tendenza li jiksbu verament messy. U aħna ġeneralment jaħsbu ta 'dak id-disinn bħala ħżiena. Yeah. Kessaħ, xi mistoqsijiet oħra? Tal-biża. OK, jimxu fuq. Allura dan huwa effettivament kif aħna jalloka memorja. Aħna tkellimna dwar dan ftit. Aħna nużaw din il-funzjoni tissejjaħ malloc. U inti tgħid li kemm bytes fil memorja, hekk kif ħafna bytes fuq il-munzell, trid. U li għaddej biex jirritorna l-indirizz, hekk pointer li, biċċa tal-memorja li huwa allokat għalik. Allura l-tip se tkun stilla null. Huwa ser tkun pointer li tkun xi tkun inti tiddeċiedi li tqiegħed fil hemmhekk. Kwalunkwe ħin li inti sejħa malloc, aħna diġà qal ikollok biex ħielsa hekk aħna ma jkollhomx tnixxijiet memorja. X'hemm-ħaġa oħra li inti assolutament tagħmel kull waħda darba li inti sejħa malloc? OK, inti għandek ħielsa it. X'hemm-ħaġa oħra? Iċċekkja għal null, beautiful. Allura, yeah, huwa dritt hemm fuq il-bord. Jekk inti tipprova talloka memorja u inti għandek ebda memorja xellug, il-kompjuter se ngħid, Għandi xejn li jtik. U jagħtik lura null. Mistoqsijiet dwar li? Yeah. UDJENZA: Għaliex kieku inti qatt tixtieq li tiddikjara pointer ma 'tip speċifiku meta star null jistgħu jimmaniġġjaw tipi kollha pointer anyways? SPEAKER 1: Tajba kwistjoni. Għaliex kieku ngħidu star int għall-kuntrarju null star meta star vojt jistgħu jimmaniġġjaw kollox? Allura aħna ma rridux li qatt mitfugħa b'mod espliċitu pointers. Huwa biss prattika ħażina. Iżda ejja nitkellmu dwar istilel Int biss bħala għarfien tal- dan huwa pointer għal numru sħiħ. UDJENZA: OK. SPEAKER 1: Yeah, u dan jippermetti li jimmanipulaw l-valuri fiha kif interi. UDJENZA: Oh, OK. U stilla vojt ma let inti tagħmel dan? SPEAKER 1: Hija tiddependi fuq il- kuntest Yeah, so tinkwetax ma jinkwetaw wisq dwar it-tip hemmhekk. Just jafu li, b'mod ġenerali, malloc prospetti pointer għal xi ħaġa. Tajba kwistjoni. UDJENZA: Għaliex għandek jimmultiplikaw it-ħinijiet 10? [Inaudible]. SPEAKER 1: Sure, so I kien biss tagħmel eżempju każwali hawn fejn Jien ridt li jallokaw biżżejjed kamra biex taħżen 10 interi. Just għażla każwali. Yeah. Yeah, x'hemm up? UDJENZA: What do you jfisser minn verifika għall null? Do inti tixtieq li tivverifika l- pointer għall null jew l malloc? SPEAKER 1: Iva, eżattament. Għalhekk il-kwistjoni kienet, dak do rridu nfissru permezz ta 'ċekk mill null? Irridu to-- ghaċ nitolbu malloc u aħna qed lura pointer, irridu ngħidu, huwa pointer ugwali għal nulla? Allura litteralment PTR. Huwa PTR ugwali għal nulla. Iva. UDJENZA: Allura, I kien tip tal jistaqsi, jekk inti initialize l pointer fis malloc, ma huwa punt għall-bidu tal malloc? Għaliex jekk huwa ta 'array-- SPEAKER 1: Li l-kwistjoni kbira. Yeah, jekk inti sejħa malloc, il pointer li it-- ejja ngħidu, hekk hawn aħna jallokaw 10 bytes ta 'memorja. Allura, jien sorry, biżżejjed kamra għal 10 interi, aħna qed tmur biex tikseb l-indirizz ta ' li l-ewwel biċċa ta 'l-memorja. Li l-mistoqsija tajba. Yeah. UDJENZA: Billi wieħed jalloka 10 interi mifruxa, inti tista attwalment jużaw dan pointer kif like-- kważi bħal firxa ta 'numri interi? SPEAKER 1: Yeah, għalhekk tista 'inti jużawha bħala firxa ta 'numri interi? Yeah, eżattament, dan huwa dak Pulak biss wera inti on-- ftit slides ilu, fejn aħna ngħidu, OK, dan huwa verament biss tip of-- aħna tista 'taħseb li bħala firxa ta '10 interi. Hija biss jiġri li jkun fuq il-borġ. UDJENZA: Imma int ma setgħux aċċess bl notazzjoni parentesi kwadri? SPEAKER 1: Inti fil-fatt tista 'aċċess bl notazzjoni parentesi kwadri, yeah. Inti tista jittrattawhom l-istess. Iva. UDJENZA: Għaliex kieku Pointer qatt ikunu nulli? SPEAKER 1: Għaliex kieku Pointer qatt ikunu nulli? Jekk inti se tuża up kollha tal il-memorja fuq borġ tiegħek. Jekk programm tiegħek qed tiekol up, tiekol up, tiekol up memorja, u hemm xejn xellug, imbagħad malloc għaddej biex say-- jekk inti tgħidli, Irrid 100 bytes aktar, li għaddej ngħid, jien ma jkollhom 100 bytes. Hawn null. Dan ifisser, I fallew. Iva. UDJENZA: F'dak il-każ, null xejn, id-dritt? SPEAKER 1: Iva, f'dak każ, null xejn. Inti għandek l-ebda indirizz. M'hemm l-ebda memorja. Dritt kollha, jimxu fuq. OK, ejja nitkellmu verament malajr dwar overflow buffer. Meta jista niltaqgħu buffer overflow? Ejja ngħidu li għandna a-- aħna jallokaw blokki ta 'memorja, u aħna qed tmur biex jiktbu l-sekwenza fil. U aħna qed tmur biex ngħid, OK, jien ser talloka biżżejjed spazju għal sitt karattri. U jien ser jistaqsu l-utent għal xi input. U l-inputs utent, per eżempju, bonjour. U li taqbel perfettament multa għaliex għandna kamra għal kulħadd l-karattri ta 'hello, u l-karattru li jtemm null. Ħafna spazju, l-ebda problema. Imma x'jiġri jekk aħna nagħtu l-opportunità għall-utent ħażen biex tużah programm tagħna, u dawn it-tip f'mhux sitt karattri, jew le ħames karattri, iżda miljun. Huma jżommu ittajpjar, u t-tajping, u ittajpjar, x'inhu jiġri? Well we biss jagħtu l- enough-- kompjuter jew sorry, aħna biss taw din is-sekwenza biżżejjed spazju għal 5 karattri. Allura, aħna qed tmur biex tikseb xi ħaġa bħal dan, fejn il-persuna ħażen li l- ittajpjar fl input tista jissostitwixxu id-daqs tal-buffer, u tista 'tmur fil-fatt fil-passat l-ammont li huwa oriġinarjament allokati. U allura x'tista 'tagħmel, il- ħaġa verament ħażen inti tista 'tagħmel, huwa jissostitwixxu l-indirizz ta 'ritorn. Li bażikament ifisser inti tista 'tip ta' jieħu kontroll tal-imġiba tal-programm. Allura f'livell tassew għoli overflow buffer huwa meta inti jalloka xi ammont tal-memorja. U allura you-- dan għax int teħid jintuza mill-utent jew xi ħaġa bħal that-- inti tmur fuq il-limiti ta 'dak li inti stajt ġew allokati oriġinarjament u jibdew messing up program tiegħek. Iva? UDJENZA: Għaliex kieku ma biss li ritorn tort segmentazzjoni? SPEAKER 1: Għaliex kieku ma dik ritorn tort segmentazzjoni? Hija tista '. Xi kultant l-kompilatur jew matul wieħed mill runtime tiegħek huwa attwalment għaddejjin biex jivverifikaw li. Jekk ċerti affarijiet jiġri, u dan huwa tip ta 'livell aktar baxx, imbagħad inti għandek bżonn tkun taf. Imma jekk inti ma disinn sewwa dawn is-sistemi, allura inti għandek l-opportunità ta 'mhux qbid dan u biss li jippermetti l-kompjuter take-- l persuna ħażen biex jikkontrollaw il-kompjuter tiegħek. Yeah. UDJENZA: [inaudible]? SPEAKER 1: Sure. Oh, meta ngħid buffer, I jfissirx biss l- ammont tal-memorja li inti stajt allokat. So here I said, oh, konna allokat sitt char-- biżżejjed spazju għal sitt karattri. U jien biss sejħa li buffer tiegħi fejn I tista 'tikteb l-informazzjoni. Yeah. Kwalunkwe mistoqsijiet oħra dwar dan? Yeah. UDJENZA: Kif inti tieqaf? Kif inti tieqaf? SPEAKER 1: kwistjoni biża. Kif inti tieqaf? Kif inti jkunx hemm fluss żejjed buffer? Ukoll mod wieħed biex tagħmel dan huwa xi ħaġa simili GetString, fejn ahna kontinwament tiżdied l-ammont tal-memorja li aħna jallokaw jekk l-utent jidħol ħafna test. Ieħor il-ħaġa hija, jekk inti biss trid sitt karattri, tagħmel verifika malajr. Say biss input sitt karattri. Yeah. Mela ejja ngħidu li inti kienu taħdem on-- aħna qed tmur li jmorru lil Jittieħed web ftit aktar tard fil-course-- imma ejja jgħidu li qed jaħdmu fuq formola, inti biss jillimitaw kemm jista mogħtija in. Yeah. UDJENZA: GetString jiġbed memorja minn munzell, id-dritt? Just biex tiċċara? SPEAKER 1: Wieħed aktar ħin? UDJENZA: Does GetString jieħu memorja mill-munzell? SPEAKER 1: Nemmen Getm-- get int tieħu memorja mill-munzell għaliex hija ssejjaħ ALLOC. UDJENZA: Oh. KOLLOX SEW. SPEAKER 1: Yeah, malloc u realloc. Mistoqsijiet oħra? Yeah. UDJENZA: Allura billi jiddefinixxu id-daqs tal-lqugħ, inti tevita xi ħadd mill tkun tista 'tinjetta kodiċi li jista 'slide passat il-[inaudible]. SPEAKER 1: Allura, billi jiddefinixxu id-daqs tal-buffer, inti stajt qal, OK hawnhekk kif memorja ħafna nistgħu nużaw. Jekk inti jippermettu lill-utent biex jiktbu fuqha, allura int ser tiffaċċja xi problemi. Jagħmel sens. Tal-biża. Ejja jimxu flimkien. Kull dritt. Taħdit ta 'żbalji, hawn huma xi messaġġi ta 'żball komuni li jistgħu urew waqt li kont kodifikazzjoni, li jaħdmu fuq settijiet problema tiegħek. Ċans tajjeb li wieħed mill dawn juri fuq l-kwizz jekk aħħar snin huma xi indikazzjoni. Allura, tweġibiet huma tip ta ' up here fuq il-bord. Iżda li tħossok liberu li shout out ftit aktar. Għaliex jista difett segmentazzjoni jiġri? Għaliex jista ikollok tort segmentazzjoni meta int taħdem program tiegħek? UDJENZA: [inaudible]. SPEAKER 1: Tajba. Yeah, jekk nippruvaw aċċess memorja li mhux mogħtija lilna. Jekk aħna dereference pointer null. Per eżempju, jekk nagħmlu sejħa malloc, u tinsa biex jiċċekkjaw jekk huwa null, u aħna biss jippruvaw tużaha,-kompjuter ser tagħtina tort segmentazzjoni. Tajba. Xi ngħidu dwar impliċitu Dikjarazzjoni tal-funzjoni? Xi tfisser? UDJENZA: Inti qed tipprova tuża funzjoni li int ma definiti. SPEAKER 1: Tajba. Inti qed jippruvaw jużaw funzjoni li int ma definiti. Allura li jista 'jkun wieħed minn żewġ affarijiet. Forsi kien simili l-eżempju Camille wera inti qabel. U inti għandek funzjoni ewlenija li jitlob xi ħaġa imsejħa kubu. U ejja ngħidu li inti nesa li tikteb din prototip. Inti nesa li jgħidu, ħej kompjuter, I jkollhom din il-funzjoni tissejjaħ kubu. Int ser ikollok tara aktar tard. Ejja ngħidu li inti nesa li tikteb il- prototip, inti tista 'tikseb dan l-iżball. Ħaġa oħra hija, ejja ngħidu vous essayé tuża printf, u nesa li jinkludu l-librerija standard, allura huwa għaddej biex ngħid impliċitu dikjarazzjoni tal-funzjoni. U l-aħħar, iżda mhux l-inqas, identifikatur mhux iddikjarat. Yeah. UDJENZA: You ħadthom ltqajna ambitu problema. Bħal forsi inti qed tipprova sejħa varjabbli lokali li l- fi speċi differenti ta 'żona. SPEAKER 1: Great, hekk jekk ikollok varjabbli li mhux fl-ambitu, u inti qed tipprova li jużawh, int ser tikseb fl-inkwiet. U biss b'mod aktar ġenerali, ejja ngħidu inti tipprova tuża x, mal dejjem qal int x ugwali 5, allura int ser jidħlu f'inkwiet. Skuża me, mistoqsijiet dwar dan? Tal-biża, chugging dritt flimkien. OK, recursion, għaliex might-- ejja see-- Tlift tiegħi sch-- oh here we go, biss tagħmel żgur aħna qed bejn wieħed u ieħor fuq l-iskeda. Dritt kollha, berred. OK, recursion, l-idea ġenerali ta recursion, funzjoni jirrikorri hija funzjoni li s-sejħiet innifsu. OK, hekk dan huwa dak I jfisser minn kunċett programm li biha funzjoni sejħiet innifsu. Liema jkun some-- x'hemm raġuni tajba għall-użu recursion? Meta jista 'dan ikun utli? Jew X'qed programm li verament jippresta ruħu għal recursion? UDJENZA: tfittxija Binarju. SPEAKER 1: tfittxija Binarju jippresta ruħu għal recursion, għaliex għandek din il-problema li inti jistgħu jkissru f'biċċiet iżgħar, u kontinwament iwettqu l-istess algoritmu fuqha. Dan iwassal għal, f'ħafna każijiet, aktar kodiċi eleganti li l-aktar preċiż. Aħna biss huma l-eżempju ta 'tfittxija binarja. Eżempju ieħor huwa jingħaqdu sort. Xi kultant, meta taħseb tal algoritmu, bħal fatturi, hija biss iħoss rikursivi, id-dritt? Għaliex aħna nafu li l-fattorjali tal-5 huwa fattorjali 4 darbiet 5. U hekk meta inti twaqqaf problema il-mod, hija biss iħoss rikursivi. Allura li tkun mod tajjeb ħafna biex tiktibha. Mistoqsijiet? Iva. UDJENZA: X'hemm a każ bażi? SPEAKER 1: Oh x'hemm każ bażi? I said, ma ninsewx li jinkludu każ bażi. Ejja ngħidu li konna bil-miktub funzjoni fatturi, u aħna kienu qed jagħmlu fattorjali tal-5. U nafu fattorjali ta '5 huwa 5 darbiet fattorjali ta '4, blah, blah, blah, blah. Kif inkunu nafu meta tieqaf? Kif inkunu nafu li aħna fil-fatt ikollhom numru? Għaliex jekk aħna miżmuma ssejjaħ fatturi, allura aħna qatt ma d jirċievi risposta, right? Allura meta inkunu nafu kif stop fl-eżempju fattorjali. Kulħadd, yeah. UDJENZA: Meta l-fattorjali 1 huwa 1. SPEAKER 1: Tajba. Allura nafu. Nistgħu jieħdu għal mogħtija li 1 fattorjali huwa ugwali għal 1. Allura jekk aħna jasal sal-punt fejn aħna qed ssejjaħ fattoriku fl-1, biss jimxi 'l quddiem u r-ritorn 1. U li każ bażi tiegħek. Għaliex aħna nafu ladarba aħna hit li, u aħna dejjem se tolqot dan, aħna se never-- aħna mhux se biss iżommu għaddejjin għal dejjem. Kwalunkwe mistoqsijiet oħra fuq recursion? Iva. UDJENZA: Allura meta inti tirritorna 1, hija biss awtomatikament se twaqqaf il-programm, id-dritt? SPEAKER 1: Yeah hekk meta inti sejħa ritorn 1, if-- ejja ngħidu, ejja ngħidu fattorjali ta '2 sejħiet fattorjali ta '1, fattorjali ta 1 biss għandhom jagħtu lura 1. U issa fattorjali ta 2 se ngħid OK, 2 ħinijiet 1 huwa 2, u r-ritorn din ir-risposta. Iva. UDJENZA: Do we jkollhom għalfejn tinkwieta dwar ambitu fl recursion meta inti tmur fis algoritmu? SPEAKER 1: Ah, iva. Iva, inti do jkollhom għalfejn tinkwieta dwar ambitu fil-kuntest ta 'recursion. Allura biss il-varjabli definiti f'dak run tal-funzjoni ser ikunu utli. Yeah mistoqsija tajba. Kull dritt, ejja iżommu jimxu tul. Għaliex għandna ħafna ta ' materjal li tinkiseb permezz. Imma kif għidt, tħossok liberu li tolqot up ħinijiet tal-uffiċċju, jew us wara l-fatt. Dan huwa biss slide tassew mgħaġġla. Aħna tgħallimna ħafna dwar tiftix u xorta. Jekk jogħġbok, jekk jogħġbok, jekk jogħġbok, dawn is-sezzjonijiet huma online, Nemmen fil cs50.net/quizzes. Allura jmorru jieħdu din it-tabella u poġġih fuq folja reviżjoni tiegħek, għaliex se jkun hemm mistoqsija dwar din. Jekk jogħġbok ma jsibux hija żbaljata. Just malajr ħafna, dak din it-tabella ifisser, huwa taħdidiet o dwar big, li nafu li jkun l-ogħla marbut ta 'algoritmi running time. U aħna għandna omega, li hija se tkun l-inferjuri ta 'runtime algoritmi. KOLLOX SEW? UDJENZA: [inaudible]. SPEAKER 1: Yeah, x'inhu l-aħħar ħaġa? X'hemm theta? Huwa jekk we-- aħna qed biss ser kura dwar f'din il-klassi fil-każ fejn fuq tagħna marbuta u inferjuri tagħna huma l-istess. Yeah, dak l-uniku ħin huwa ser toħroġ f'din il-klassi. OK, jien ser jibqgħu għaddejjin. Jekk ma tkunx ħadt stampa tiegħek, I wegħda dawn ser ikunu online. OK, biża, structs. Għaliex jista irridu structs? X'hemm raġuni utli aħna tista 'tixtieq structs. Xi ħadd shout xi ħaġa out. Well ejja nħarsu lejn il- eżempju fuq il-bord. Ejja ngħidu aħna qed jittrattaw kollha ta 'dawn l-istudenti. Jekk aħna qed tagħmel programm għall CS50, hemm bħal 800 persuna. Għandna bżonn li write-- aħna qed tmur biex bżonn biex jimmaniġġaw ħafna ta 'informazzjoni dwar l-istudenti. Ikun sbieħ jekk nistgħu tip ta 'grupp this-- l-informazzjoni kollha li għandha x'taqsam ma 'student partikolari fis tip ta 'data wieħed. Iżda nafu hemm l-ebda data tip imsejħa, Student, id-dritt? Għandna numru sħiħ, għandna float, għandna string, jew stilla char, iżda aħna ma jkollhomx, student. Allura nistgħu nagħmlu huwa attwalment tip ta 'jiddefinixxu istruttura tagħna stess, sejħa hija student, u nistgħu jassoċjaw xi oqsma differenti li Struct. Allura f'dan il-każ, ejja ngħidu aħna għandna student. U l-affarijiet li aħna kura dwar huma n-numru student ID u l-isem l-istudent. U issa nistgħu jassoċjaw din ID u dan l-isem ma 'student partikolari. Mela ejja naraw xi eżempji. OK, so here I say, OK, ejja ngħidu aħna tixtieq li tagħmel student. I jsejjaħħlu student 1. U n-numru ID tiegħu, fil F'dan il-każ, nistgħu aċċess bi ftit tagħmel l-isem ta 'l-istudent dot-qasam irridu aċċess. Allura dan se jkun biss student 1 dot ID, u aħna waqqafna dan ugwali għal 1. Minħabba ftakar, aħna qal li ID se tkun numru sħiħ. U l-istess ħafna, nistgħu ngħidu, dan Isem istudent se tkun Davin, pereżempju. Allura nistgħu biss aċċess qasam ta 'Struct jużaw dan dot. Mistoqsijiet dwar li? Yeah. UDJENZA: Hemm xi mod biex jipproteġu varjabbli tiegħek? Hemm xi mod biex jipproteġu varjabbli milli jiġu aċċessati esternament? SPEAKER 1: Hemm xorta waħda biex jipproteġu varjabbli tiegħek milli jiġu aċċessati esternament? Mhux fl-ambitu ta 'CS50. Mistoqsijiet oħra? Yeah. UDJENZA: X'inhu typedef Istituzzjonjijiet? Xi jfisser kull komponent jfisser? SPEAKER 1: Ah, dak li huwa typedef Istituzzjonjijiet? Xi jfisser kull komponent medja ta 'dan Guy? UDJENZA: Yeah. SPEAKER 1: OK, berred. Allura dan jgħid, ħej kompjuter, I tixtieq li tinħoloq struttura ġdida. U jien ser jiddefinixxu definizzjoni għal dan, tali li I jistgħu jużawha daqs li kieku kienet tip matul programm tiegħi. OK, so I tixtieq li jiddefinixxu struttura. U jien issa ser ikunu tista 'tużah bħala tip. U ismu jkun student. U hawn huma oqsma. UDJENZA: Allura huwa li typedef Struct [inaudible]? SPEAKER 1: Jekk inti tixtieq li tkun tista ' tuża din Struct matul il-programm tiegħek, u f'ħafna każijiet CS50 aħna tagħmel, irridu ngħidu tip Def. U li jippermettilha tuża l-istess mod li nużaw bħal int jew float. Il-kompjuter se dejjem taf għalxiex. Yeah. UDJENZA: Nistgħu jiktbu dan fil-fajl header? SPEAKER 1: Oh, sorry. Do we tikteb din fil-fajl header? Inti tista 'tikteb dan fil-quċċata tal tiegħek programm, fil-quċċata tal-programm c tiegħek. Yeah, li tkun l-aktar post raġonevoli għal dan. Lura hemm. UDJENZA: L-istess kwistjoni, hekk qabel prinċipali? SPEAKER 1: Dritt, inti jeħtieġ li dan ikun x'imkien li kulħadd jista 'jkollhom aċċess għaliha. Allura qabel prinċipali fil-każ tiegħek, yeah. UDJENZA: Hemm differenza bejn tqegħid student fuq quċċata u fuq qiegħ? SPEAKER 1: Ah, hemm differenza bejn it-tqegħid student fuq quċċata jew fuq qiegħ? Let-- jiffrankaw din id-domanda, u meta nikbru għal listi marbuta, Ser naraw li, OK? Allura iżomm il-li għat-tieni waħda. L-aħħar ħaġa li nixtieq insemmi hawn, huwa minflok li jkollha struttura, għandna pointer għal struttura, nistgħu nbiddlu notazzjoni tagħna li jkun nicer ftit. Nistgħu ngħidu, ejja ngħidu aħna għandna pointer lil student aktar milli biss student. Jekk irridu aċċess għal qasam, minflok tagħmel, sew jmorru dereference l pointer, u mbagħad ikollhom aċċess l-isem qasam. Dan notazzjoni jistenna ftit messy ma 'l-istilla f'dan dot. Totalment korretta, iżda xorta ta 'mod aktar nodfa biex tagħmel dan, huwa biss jgħidu isem vleġġa pointer. U li attwalment tgħaqqad dereferencing u aċċess fil simbolu sbieħ wieħed. Mistoqsijiet dwar li? UDJENZA: Just jgħidu li waħda aktar ħin. SPEAKER 1: Jgħidu li waħda aktar ħin. UDJENZA: Eżattament dak li inti biss qal. SPEAKER 1: Sure, eżattament dak I biss qal. Jekk għandna pointer lil student aktar milli l-istudent innifsu, aħna can-- mod wieħed li nistgħu aċċess għall- il-qasam huwa li dereference, u mbagħad isem aċċess. , Mod ieħor nicer aħna tista 'tagħmel dan, li huwa biss xi ftit ta 'zokkor sintattika, huwa biss li tagħmel isem vleġġa pointer. U li se jgħaqqdu l- dereferencing u l-aċċess. Yeah, pretty jibred. Kull dritt. Mela ejja nitkellmu dwar il-kwistjoni oħra. Ejja jaqbżu fin-nodi, li aħna qed tmur biex tuża fil-listi marbuta fi ftit tieni. Allura hawnhekk, inti ser ikollok avviż li hemm hija l-node kelma kemm fuq il-qiegħ, u fuq il-quċċata. Qabel, meta konna tiddefinixxi student, aħna biss kellhom student fuq il-qiegħ. Aħna ma jkollhom student fuq il-quċċata. Xi ħadd jaf għaliex dan jista 'jkun? X'inhi d-differenza? Yeah. UDJENZA: Allura inti tuża node hija d-definizzjoni ta 'node, għalhekk hija ħaġa jirrikorri? SPEAKER 1: Tajba. Yeah, għandna bżonn lymph tagħna biex jkollhom pointer fin-nodi oħra. Allura peress nużaw dan it-tip qabel ma jkun fil-fatt definit, għandna bżonn li tqiegħed lilha fil-quċċata biss u għalhekk jaf dak li hu. UDJENZA: Allura aħna xorta bżonnu fil-qiegħ? SPEAKER 1: Iva. UDJENZA: Allura dejjem fil-qiegħ. SPEAKER 1: Dejjem fil-qiegħ. Allura kollha tal tiegħek se jara li tkun fil-qiegħ. Kwalunkwe mistoqsijiet oħra? Kull dritt, hekk tikri attwalment jitkellmu dwar listi marbuta verament malajr. Allura listi marbuta are-- aħna jużawhom minflok arrays f'xi każijiet, għaliex aħna nafu li arrays huma tul fiss, filwaqt listi marbuta nistgħu jikbru u tiċkien kif irridu. Allura dan huwa eżempju ta 'dak li lista marbuta jista 'dehra. Dak li għandna bżonn biex tara hija il-kap tal-lista. Għalhekk, fejn il-lista tibda. U imbagħad huwa node, kull node sussegwenti, huwa responsabbli għall jafu fejn il-node li jmiss huwa. Allura f'dan il-każ, il-node li taħżen 1 huwa responsabbli għall jafu fejn 3 hu. Il-persuna li taħżen 3 huwa responsabbli għall jafu fejn 9 hu. U 9 ​​m'għandha l-ebda wieħed inkella għall-punt li. Hu l-aħħar tal-lista, għalhekk hija biss jgħid null. KOLLOX SEW? UDJENZA: X'hemm il-punt ta 'dan? SPEAKER 1: X'inhu l-punt ta 'dan? UDJENZA: Yeah. SPEAKER 1: Minħabba, ejja ngħidu li għandna xi data. U ma nafux eżattament kif data kemm irridu qabel iż-żmien. Allura ma 'firxa, ejja ngħidu fejn aħna tixtieq li jgħoddu nies fl-ewwel filliera. Ċansijiet huma huwa mhux se jibdlu. Nistgħu biss jgħidu, OK, I jridu firxa ta 'daqs sitt. Imma jekk irridu nagħmlu xi ħaġa li għaddej għall-bidla. Per eżempju, ejja ngħidu I kien qed jipprova biex iżommu kont ta 'l-istudenti kif dawn jidħlu fil-kamra għas-sessjoni reviżjoni. Għandi l-ebda idea kif ħafna minnkom in-nies ser juru up. So I tista 'tixtieq struttura data li I jistgħu jespandu u tiċkien. Minħabba forsi xi ħadd se leave, forsi xi ħadd se jidħlu. U hekk fi kwalunkwe ħin, aħna tista 'żżid jew tneħħi lymph. Kessaħ, kwistjoni kbira. Yeah. UDJENZA: Jekk inti tista 'tuża xi ħaġa bħal GetString li żżomm kiri inti tikseb aktar informazzjoni dwar għandek bżonn, għaliex għandek bżonn dan ukoll? SPEAKER 1: Għaliex kieku Tuża marbuta lista meta inti tista 'tuża xi ħaġa simili GetString? Li l-mistoqsija tajba. Ftakar li Get-- wieħed mill l downfalls ta GetString hija li aħna ma tagħmel ħafna xogħol tajjeb ta 'ħelsien li l-memorja, u aħna introdotti mazz ta memorja tnixxijiet fil-programm tiegħek? Inti tista 'teħodha statikament firxa ta 'daqs u jibqgħu jikbru dan. Imma youd għandek issib postijiet ġodda fil-memorja. Ikun biss jkun hemm ħafna overhead. Waħda mill-affarijiet sbieħ dwar marbut listi għall-kuntrarju arrays, huwa arrays huma kollha fl-istess post fil-memorja. Għandu jkun kontinwu biċċiet ta 'memorja. Billi listi marbuta, 2 u 3 jistgħu tkun totalment f'postijiet differenti. Bħal 2 jintemm hawn, u 3 huwa fuq hawn. U sakemm dawn ikollhom pointer għal xulxin, huwa multa. Aħna nafu tista 'issibhom. Mistoqsija hemmhekk? UDJENZA: GetString huwa funzjoni fil-librerija CS50, right? Dan ma jeżistix fil-programmi reali. SPEAKER 1: Correct. Dritt, dak l-ħaġa oħra. GetString ma teżistix barra mill-kuntest ta 'CS50. Yeah. UDJENZA: Allura ma l-fatt li tnejn jistgħu jkunu verament bogħod, ma li impatt l-effiċjenza ta ' aċċess għall-elementi fuq il-lista? SPEAKER 1: Din hija kwistjoni kbira. Il-kwistjoni kienet, ma 'l-impatt l-effiċjenza ta 'aċċess dawn l-elementi differenti fil-lista. Attwalment, iva. Għaliex aħna nafu if-- ejja ngħidu aħna jridu aċċess għas it-tieni element tal-firxa, nafu nistgħu biss tagħmel firxa bracket 1, dritt. Huwa dejjem se jkun l-istess post. Iżda jekk irridu jiksbu għal dak 3, ma nistgħux biss jgħidu, mur jiksbu dak 3. Irridu ngħidu, OK, tibda fil il-bidu tal-lista, u issa għandna attwalment ikollhom jimxu permezz sakemm aħna issib in-numru aħna qed interessati fil. Allura f'dan il-każ nistgħu ngħidu, OK dan huwa l-ewwel numru. Allura essenzjalment, li l-indiċi 0. Issa rridu nsibu t-tieni numru. C'est indiċi 1. Allura li attwalment għaddej to-- biss aċċess, se jieħu N ħin. Kessaħ, N. qodma big Yeah. UDJENZA: Liema huma kull waħda mil-listi? Dawn huma kull arrays, jew liema? SPEAKER 1: Li l-kwistjoni kbira. X'inhuma kull wieħed mill- strutturi li stajt magħmula? Huma lymph. Allura kull wieħed minn dawn ftit istruttura għandha żewġ partijiet. Hija għandha numru sħiħ li jkollha. Dik hija l-data attwali li huwa azjenda fuq. Dik hija l-tip ta 'parti utli. U, dan huwa dak li jagħmilha lista marbuta, hija għandha pointer għall-node li jmiss. Kwistjoni tal-biża. Kull dritt, hekk ejja nħarsu ħafna malajr tħares lejn xi eżempji ta 'dak nistgħu nagħmlu ma 'listi marbuta. Allura eżempju wieħed malajr ħafna hija, jissoponi li rridu nagħmlu tfittxija. Liema tip ta 'tfittxija ma tistax nagħmlu fuq il-listi marbuta? UDJENZA: Binarju. SPEAKER 1: Binarju. Għaliex ma nistgħu nużaw tfittxija binarja? UDJENZA: [inaudible]. SPEAKER 1: Dritt, minħabba li bl binarja tfittxija, kellna biex jinvoka l-fatt li nistgħu biss jaqbżu fil-firxa fi kwalunkwe punt. Nistgħu biss jgħidu, mur għall-element tan-nofs. Bil hawn, kif għidna ftit qabel, ma nistgħux biss jaqbżu l-element nofs. Sabiex issib xi element, aħna fil-fatt jkollhom jimxu permezz-lista sħiħa tagħna. Mela jekk ridna li tagħmel tfittxija, l aħjar li nistgħu nagħmlu huwa biss tfittxija lineari. Nibdew fil-kap, aħna check-- ejja ngħidu aħna qed tfittex 9-- nibdew fir-ras. Aħna ngħidu, huwa dan 9? No Huwa dan 9? No Huwa dan 9? Iva, sibna dan. OK, dan huwa dak kollu. Hawn xi ftit ta 'psewdo-kodiċi. Jien ser jitilqu dan għalik guys lenbija fuq fuq tiegħek, biss għaliex aħna qed taħdem ftit qasir fil-ħin. Tikri jitkellmu dwar inserzjoni. Rajna demo verament jibred ta ' dan fil lecture fejn għidna, OK, aħna għandna din il-lista marbuta fejn kulħadd li tipponta lejn xulxin, u xi ħadd jitla fuq il-palk. Kif nistgħu daħħal dik persuna fil-lista marbuta tagħna? Well, mod żbaljat biex tagħmel, li huwa Naħseb li dak li rajna l-ewwel, huwa meta l-persuna quddiem awtomatikament indikat il-persuna l-ġdida. U allura aħna tip ta 'abbandunaw il- tieni nofs tal-lista, id-dritt? Għaliex aħna ma jafux fejn huwa fil-memorja aktar. Allura biex ikunu attenti ħafna dwar il- ordni li fiha aħna daħħal affarijiet. So here, ejja ngħidu li rridu jitqiegħdu 1 fuq quddiem tal-lista tagħna. L-ewwel, għandna 1 punt waqt is- tieni element-- jew l-element li fiha 1. Allura, aħna tagħmel dan, biss hekk aħna mhux qed ser jitilfu l-tieni nofs. U issa, li jista 'jkollna punt ras għal 1. Għalhekk għal darb'oħra, dan huwa biss bħal livell super għoli. Dan huwa kif aħna tara li tintroduċi node. Għandna ħafna ta ' psewdo-kodiċi here-- sorry, I do not know għaliex jien hija ssejjaħ psewdo-kodiċi. Huwa kodiċi attwali. Inti tista 'tmur check out aktar tard. Kull dritt, ejja ħafna quickly-- xi mistoqsijiet aktar fuq il-listi marbuta qabel I jimxu fuq koppja data oħra strutturi aħħar 10 tagħna minuti. UDJENZA: Għandna bżonn li issa kif jiktbu fuq test? SPEAKER 1: Għandna bżonn tkun taf kif to-- UDJENZA: Ikteb fuq test. SPEAKER 1: We do bżonn to-- inti għandek tkun ippreparata jiktbu, daħħal, neħħi, u tfittxija għal listi marbuta fuq it-test. Din hija xi ħaġa li aħna setgħu jistennew li inti tagħmel. Just go fuqha. Jekk għandek xi mistoqsijiet dwar l- kodiċi, rimja TF tiegħek email, jaslu għal ħinijiet tal-uffiċċju. Hemm għadu ħafna ħin għall-istudju, ma tinkwetax. Dritt kollox, xi l-oħra mistoqsijiet dwar listi marbuta? Iva. UDJENZA: Mela jekk inti ma jużawx l- pointer biex tmur fil-wieħed fuq il-lemin qabel ma tuża l-pointer għall il-wieħed fuq ix-xellug, li l-ekwivalenti ta 'tħassir kollox, id-dritt? SPEAKER 1: Yeah. UDJENZA: [inaudible]. SPEAKER 1: Dritt, peress li aħna ma tistax ġġibu, huwa attwalment saħansitra agħar. Minħabba li mhux biss għandna jafux fejn hi, nistgħu m'għadhomx jużawh, iżda we've-- aħna mhux qed ħelsien li l-memorja aktar. Allura huwa biss mdendlin madwar u mhux jkun utli għaliex aħna ma tistax issibu. Yeah, kwistjoni jibred. Kull dritt, ejja nitkellmu dwar stacks. Rajna stacks malajr ħafna. Huma l-ewwel huma l-aħħar strutturi tad-dejta barra. Allura aħna naħsbu mill-stacks fil Annenberg ta 'dixxijiet fejn aħna munzell l-affarijiet fuq nett. U jekk int ser come nikseb trej, int dejjem se tieħu dik fuq il- nett, li hi l-aktar recently-- li huwa l-ħaġa li aħna aktar reċentement poġġiet fuq nett tal-munzell. Allura inti tista 'tip ta think ta' dan it-tip ta ' viżwali meta inti qed jaħsbu ta 'stacks. U mbagħad, konna popped xi ħaġa off-quċċata tal-munzell. Jekk aħna are-- oh, u l-kliem li aħna użu meta aħna qed jitkellem dwar din id-data istrutturi huwa normalment, jekk aħna jitqiegħdu xi ħaġa fuq il-munzell, ngħidu aħna qed timbuttah fuq il-munzell. U jekk nieħdu xi ħaġa off-munzell, ngħidu aħna qed popping off-munzell. Jekk inti qed tmur biex jimplimentaw a stack-- li I definitely nirrikkmandawlek tipprova out-- int tmur jridu jżommu rekord ta ', ejja ngħidu li inti qed tuża firxa. Naf fl lecture tkellimna dwar l-użu kemm il-arrays jew listi marbuta ma timplimenta munzell. Jekk inti qed tuża firxa, inti għandek bżonn biex keep-- skuża għandna me-- bżonn li jżommu rekord tad-daqs u l-kapaċità. Allura l-għadd massimu li munzell tagħna tista 'żżomm. Mistoqsijiet dwar stacks? UDJENZA: X'hemm differenza bejn id-daqs u l-kapaċità? SPEAKER 1: Id-differenza bejn daqs u l-kapaċità, tal-biża kwistjoni. Mela ejja ngħidu aħna qed użu ta 'firxa, u aħna jalloka biżżejjed spazju għal 10 interi. U aħna jibdew jimlew dak up. U aħna timbotta affarijiet fuq, u aħna pop affarijiet off. Aħna rridu li jżommu rekord ta 'l-massimu Numru nistgħu żżomm, li l-kapaċità. U aħna rridu li jżommu rekord ta 'l- Numru attwali li għandna, li l-daqs. Tajba kwistjoni. Xi ħaġa oħra fuq stacks? Kull dritt, ejja nitkellmu dwar sorpriża, kjuwijiet. B'differenza stacks, li huma l-ewwel fl-aħħar out, dawn huma l-ewwel fl-ewwel li joħroġ. Allura dan huwa like-- think ta 'linja. Think ta 'lining up fil-Apple Maħżen biex tikseb xi prodott. U l-ewwel persuna fil-linja għandhom tkun l-ewwel persuna li għen. Allura l-ewwel ħaġa li l-imbuttat huwa dan l-ewwel ħaġa li l-popped. Kessaħ? Ħafna similarly-- oh, il-kliem li nużaw minflok push and pop-- li I biss użati, Jien sorry-- huwa ngħidu, jekk aħna qed tqegħid xi ħaġa fis l-kju, ngħidu enqueued dan. Jekk aħna qed tieħu xi ħaġa minn l-kju, ngħidu aħna dequeued. Hu. I jistgħu jħabbru dawk ħażin, iżda ikollok l-idea. U mbagħad, bħad stacks, jekk aħna qed timplimenta dan bħala firxa, għandna bżonn li jżommu rekord tal- daqs, il-kapaċità, u l-kap. What do I jfisser minn ras? Għaliex għandna bżonn li jżommu track tar-ras? UDJENZA: Minħabba li huwa fejn il-bidu tal-lista tiegħek. SPEAKER 1: Yeah, bażikament ir-ras hija fejn il-bidu ta 'kju tagħna huwa. Għaliex nafu, b'differenza stacks, which-- Jien ser tipprova jiffaċċjaw din way-- nafu li huwa dejjem se tiċkien dan il-mod u jikbru b'dan il-mod. Kjuwijiet, in-nies jidħlu fis-aħħar u jħallu mill-bidu, hekk aħna biex iżżomm kont ta 'fejn il-bidu hu. Dan huwa dak I jfisser minn għandna bżonn iżżomm kont ta 'fejn ir-ras hija. Kessaħ? Kull dritt. Tmien minuti, koppja aktar suġġetti, nistgħu nagħmlu dan. Dritt kollha, tabella hash. Aħna tkellimna ħafna fil-qosor dwar it-tabelli hash. Għall-kwizz, inti biss jeħtieġ li jifhimhom fuq livell għoli. L-idea bażika hi ikollok din id-data. U rridu li jkollhom aċċess għaliha fil-ħin li l- aktar mgħaġġla minn xi ħaġa bħal marbut lista. Għaliex aħna qal, jekk konna tiftix permezz ta 'lista marbuta, li jista 'jieħu N ħin. Anke aċċess jista 'jieħu N time f'lista marbuta. Tabelli hash tagħtina mod li nistgħu aktar malajr aċċess affarijiet, u aktar malajr tfittxija għal affarijiet, mingħajr li it-trażżin ta 'firxa fejn għandna fiss daqs. Allura aħna naħsbu ta 'struttura data meta, fejn aħna poġġih fl-istruttura tad-data huwa dipendenti fuq dan funzjoni hash maġika. Allura f'dan il-każ, il-hash maġika funzjoni huwa biss tieħu kelma, iċċekkjar dak l-ewwel ittra hija, u allura biss issortjar dan alfabetikament. Allura aħna essenzjalment jqiegħdhom fis bramel differenti. Meta naraw banana, nistgħu ngħidu, OK, ejja tpoġġi fil-barmil B. Meta naraw Apple, ejja poġġih fil-barmil A. Jekk rajna berquq, ejja jitqiegħdu fil-barmil A. KOLLOX SEW? So I jissoponi kienu qed ifittxu for-- I do not know, x'hemm frott ieħor? Ejja ngħidu I kien qed ifittex oranġjo. Fejn għandi tfittex? Fil-barmil O. Yeah, hemm post wieħed biss li oranġjo jista 'jkun, OK? So I qal qabel dak li jiġri if-- ukoll għidt qabel, ejja ngħidu li nitfgħu in-- berquq imma I verament indirizzat il-fatt li, oh no, jekk I kellhom iressqu berry fi, huwa ser f'kunflitt ma 'banana. Fejn aħna poġġiha jekk ikun hemm diġà xi ħaġa fit-tabella tagħna? Well, aħna għandna għażliet koppja. Għażla numru wieħed hija lineari probing, li bażikament ifisser, ejja ngħidu I jridu jippruvaw li jitqiegħdu berry, u nara, oh no, banana diġa hemm, I biss jgħidu OK, let me tfittex l-post disponibbli li jmiss. So I walk r, I say, oh, hemm xejn fil-barmil D. I can not really think ta 'xi frott li jibdew bl-ittra D, hekk jien biss se timplimenta berry fil hemmhekk. Durian. OK, so peress li hemm xejn għadhom hemm, I jistgħu wkoll biss użu dak il-post. X'inhu l-iżvantaġġ ta 'din? UDJENZA: Huwa out of order. SPEAKER 1: Jiddispjacini? UDJENZA: Huwa out of order. SPEAKER 1: Huwa out-- dritt, nistgħu jispiċċaw ma 'affarijiet li mhumiex in-- maħżuna fil bramel fil-mod li nistennew li dawn ikunu. Hekk jekk konna tiftix għall berry, qabel għidna, oh nistgħu nħarsu fil barmil wieħed. Dan jista 'jkun biss barmil wieħed. Imma issa, verament, jista 'jkun fil kollha bramel, id-dritt? OK, hawnhekk għażla oħra, chaining-- separata li hija l-idea li aħna qed tmur li tuża ftit aktar tard fil P sett 5. Pjuttost milli sempliċiment għandek spazju wieħed f'kull barmil, għaliex ma we jkollhom kull barmil tkun pointer għal lista marbut? Fejn nistgħu ngħidu, OK, hemm barmil għal dak kollu li jibda bil A. U hemm biss se tkun marbuta lista tal-frott li tibda bil A. Hekk jekk irridu jiksbu frott ġdid, ejja ngħidu aħna get-- aħna avokado, għandna tuffieħ, ejja ngħidu nikbru berquq, kif se nitfgħu fil-lista? Well aħna'd jmorru għall barmil 0, u aħna'd biss daħħalha fil-lista gustado tagħna, sempliċi bħal dik. Issa I iżommu qal barmil. Aħna jista 'jimplimenta din f'numru ta 'modi. Mod wieħed tipiċi li din tip ta 'stampa jissuġġerixxi, huwa forsi jkollhom firxa ta ' pointers għal-listi ta marbutin. C'est mod wieħed nistgħu timplimenta tabella hash. UDJENZA: Ikollok bzonn ieħor lista għaliex banana u berry huma barra ta 'ordni? SPEAKER 1: Would you need-- ah, kieku inti bżonn lista oħra minħabba banana u berry huma out of order? F'dan il-każ, il-funzjoni hash tagħna, li tgħidilna fejn tpoġġi l-affarijiet ma jimpurtak mill-tieni ittra. Ma jimpurtahom alphabetizing, jimpurtaha biss madwar l-ewwel ittra. Mistoqsija? UDJENZA: X'inhu l-definizzjoni ta 'dak funzjoni, u liema ma jidher? SPEAKER 1: Ah, tajba. OK, hekk aħna ma bżonn li jinkwetaw wisq għal dan il-kwizz. So I ma poġġiex fid-pjastri. Aħna ser jiġu introdotti lilha għal P sett 5. Imma bażikament, jgħid, mogħtija element ġdid, fejn għandi tpoġġi dan? Or, ejja ngħidu I infittex element, fejn jista 'jkun? Yeah, kwistjoni kbira. OK, malajr ħafna, siġar u tipprova. Allura siġra huwa biss xi tip ta 'struttura data organizzata. U aħna qed tmur biex tara ħafna ta 'stampi li se jagħmel dan super ċara. U trie, li rajna fil-klassi, huwa tip speċjali ħafna ta 'siġra li essenzjalment xogħlijiet bħal tabella hash fuq bosta livelli. Huwa super jibred. Aħna qed tmur biex tara fi ftit taqs. Kull dritt, so ejja jitkellmu dwar siġar ewwel. Allura dan huwa eżempju tipiku ta 'verament siġra, fejn għandna xi ġerarkija. Tara li wieħed huwa fil fuq nett, id-dritt? U nista 'ngħid top għaliex hemm b'mod ċar tordna għaliex aħna jkollhom dawn vleġeġ jinżel 'l isfel. Sabiex, il-ħaġa fil-quċċata, I-sejħa li l-node għerq. Allura wieħed huwa l-node għerq. U l-affarijiet fil-qiegħ, li xejn ġejjin minn fuqhom, I say dawn huma l-lymph weraq. Allura 8,9 5, 6, 7, OK. U normalment it-terminoloġija aħna 'ngħid huwa, 1 huwa ġenitur 3 ta. Allura huwa l-ħaġa li taqa ' livell hawn fuq, u punti lilha. U 3 huwa tifel 1 ta. Hu l-ħaġa li 1 punti li. Mistoqsija? UDJENZA: Tista tmur lura għall l-slide ta 'qabel, jekk jogħġbok? SPEAKER 1: Nista jmorru lura l-slide ta 'qabel? Sure. Mistoqsijiet dwar dan? Jew inti biss riedu li tħares lejn din? UDJENZA: I biss ma jsibux permezz tiegħu. SPEAKER 1: OK, berred, yeah. Dawn kollha se jkunu online sabiex ma joqogħdu jinkwetaw dwar jkollna kull kelma. U fl-interess tal time, jien ser imorru. Hija li OK? Tal-biża. OK, berred. Mela ejja nitkellmu dwar kind-- speċifiċi ħafna hekk aħna jkollhom dawn ġenerali istruttura ta 'siġar, li huwa biss xi ħaġa li jippermetti li tip ta 'affarijiet rank ġerarkiku. Siġar Binarju huma affarijiet fejn kull node għandha l-aktar żewġt itfal. KOLLOX SEW? And I said, OK, hekk li jidher biex joqgħodu f'din id-deskrizzjoni. I qal node, mhux siġra tfittxija binarju. X'hemm siġra tfittxija binarju? Huwa magħżula. Allura inti taf li fil siġra tfittxija binarju, kollox għall-kollox tree-- lill-lymph xellug huwa iżgħar, u kollox lill- lymph dritt huwa akbar. Għalhekk dan mhux siġra tfittxija binarju. Dan huwa biss siġra binarju. Allura aħna għandna kategorija kbira ta ' siġar, kategorija kemmxejn iżgħar ta 'siġar binarju, tfittxija billi siġar tat-tiftix binarju a--. Kessaħ? Kull dritt. U issa, aktar divertenti ta ' kollha, għandna tipprova tagħna. You guys raw din l-istampa fil lecture? Yeah, għandu jħares super familjari. Ejja nħarsu lejn kif nistgħu fil-fatt jimplimentaw dan. Jew fil-fatt, ejja ara, ma li anke toħroġ? Nope. Kull dritt, aħna ma jkollhomx joqogħdu jinkwetaw dwar li Jittieħed livell baxx. Aħna se jkollhom ħafna ħin biex jindirizzaw allura P stabbiliti 5. Iżda għal issa, livell biss għoli ħafna, aħna taf li dan huwa dak li jidher qisu. Aħna deskritt bħala tip ta ' tabella hash fuq diversi livelli where-- dan xi maħżen? Dan ħwienet ismijiet ta ' xjentisti li nistgħu attwalment tfittex permezz biss tip ta 'wara l- tabelli hash differenti isfel, id-dritt? U l-għan ta 'dan huwa, fit-teorija, dawn jipprovdu ħin kostanti ħarsa up. Mela jekk jien tixtieq li jiċċekkjaw li, per eżempju, li l-someone-- li Mandel Huwa f'dan trie, I jistgħu malajr ħafna fil linear-- Jien sorry, fil ħin kostanti, figura jekk jew le huwa fil- trie. Iżda con, huwa ħarsa lejn kemm hu kbir dan huwa. Aħna lanqas ħażna li data ħafna, u huwa enormi. Allura wieħed con kbira hija li juża ammont kbir ta 'memorja. Iva. UDJENZA: Għaliex ma jipprovdi ħin kostanti, eżattament? SPEAKER 1: Wieħed aktar ħin? UDJENZA: X'inhu l-intuwizzjoni għall għaliex huwa jipprovdi ħin kostanti? SPEAKER 1: Eċċellenti kwistjoni. Għaliex ma jipprovdix żmien kostanti? Allura x'nistgħu nagħmlu huwa, ejja ngħidu aħna qed infittxu Mandel. Aħna nafu li rridu nibdew fl-ewwel livell li M. Aħna nafu aħna tixtieq li ssegwi din E. So dan huwa tieħu pass wieħed, tnejn, id-dritt? Aħna isegwu lill N. nimxu wara li D. Aħna isegwu lill E. nimxu wara li L. U allura l-ħaġa li jmiss aħna jiċċekkjaw says-- dan delta jgħid Iva, li fit-tabella tagħna. Din hija kelma. Dan huwa dħul valida trie tagħna. Allura inti qed tgħid, OK, li ħadet seba 'passi. Iżda jekk aħna miżjud bħal zillion aktar xjentisti għal din l-istruttura tad-data, aħna ma jkollhomx biex jiċċekkjaw a zillion aktar affarijiet. Aħna biss qatt ser ikollhom jieħdu seba 'passi, it-tul tal-il-persuna isem. Allura, aħna simili biex jaħsbu tal runtime kif, ejja ngħidu aħna jiżdied id-daqs ta 'tagħna istruttura tad-data, kemm itwal huwa se jieħu? F'dan il-każ, jekk aħna żid mazz aktar xjentisti, ma jimpurtax. Huwa għadu għaddej biex tieħu l-istess ammont ta 'ħin. Wasal iż-żmien kostanti. Iva. UDJENZA: Kif tkun taf ma jiġu skennjati fuq in-numri l-oħra? SPEAKER 1: Kif inkun naf kif to-- UDJENZA: Bħal kif tkun taf tmur dritta mill M sa E u ma M sa A? SPEAKER 1: Oh, żgur. Għaliex kont naf I kien tfittex l-kelma Mandel, u I biss taf huwa M-E. Allura that-- yeah, imorru quddiem. UDJENZA: Ma inti għandek li tħares lejn l-ittri l-oħra fil-bqija tal-[inaudible]? SPEAKER 1: Ah, ma għandi li tħares lejn the-- OK, kbir. Din hija kwistjoni kbira. Hija tiddependi kemm nimplimentaw dan. Jekk aħna jimplimentawha biss bħala bħal serje ta 'arrays fejn nafu li E hija dejjem fil-pożizzjoni 0, I do not know, ikun x'ikun indiċi numru huwa fuq. Yeah, nistgħu biss tagħmel kostanti time, do, do, do, do. Kessaħ. Mistoqsija hemmhekk? UDJENZA: Huwa żmien kostanti l-istess ħaġa bħat ħin reali? SPEAKER 1: Huwa żmien kostanti l-istess ħaġa huwa żmien reali? M'inix ċert verament ħin reali huwa. UDJENZA: ħin bħal dik litteralment timxi tieni billi t-tieni minflok ma jkun varjabbli indipendenti. SPEAKER 1: Oh, yeah, inti tista 'taħseb dan il-mod. Fi kliem ieħor, mhuwiex dipendenti fuq id-daqs tal-istruttura tad-data. Li l-mod biex jaħsbu li. Kwalunkwe mistoqsijiet oħra? Forsi fl-ewwel darba fl istorja, aħna lesti fil-ħin. Jekk għandek xi mistoqsijiet, tħossok liberu li jiġu jitlob minna, mur it-taqsima, kellem lit-TFS tiegħek, uffiċċju sigħat huma 8:00 u 8:30 li 11:00 nhar it-Tnejn u t-Tlieta, hekk huwa xi ftit żmien differenti, sabiex tagħmel żgur li int wieħed jinnota li. Yeah. UDJENZA: Għandna bżonn tkun taf għalf bħal argumenti kmand linja, ls sing, sing ikun x'ikun? SPEAKER 1: Linja ta 'Kmand argumenti, u Linux jikkmanda, iva, għandek bżonn tkun taf dawn. Very-- huwa bħall-tip ta 'livell Jittieħed aħna koperti fis-sezzjoni 0, safejn Linux jikkmanda go. UDJENZA: Huma l-sigħat Annenberg? SPEAKER 1: Uffiċċju siegħa, jien ma totalment ċert fejn huma. Iżda int tista 'tiċċekkja l- website, u se jgħidlek.