[CHWARAE CERDDORIAETH] CAMILLE REKHSON: Hi, bawb. Croeso i'r cwis CS50 sesiwn adolygu sero. Rwy'n Camille. Ac yr wyf i'n mynd i fod yn mynd dros rai pynciau gyda chi guys heddiw i helpu chi paratoi ar gyfer y cwis. Felly dyma ein di gyflawn rhestr o bynciau i chi Dylai fod yn gyfarwydd â'r ar gyfer y cwis. Cafodd y rhain eu cymryd yn uniongyrchol o'r maes llafur. Dwi'n gwybod ei fod yn ymddangos fel llawer. Ond ymddiried ynof, rydych wedi dysgu i gyd pethau hyn yn ystod yr wythnosau diwethaf. Felly byddwn yn bendant yn mynd dros lawer o hyn heddiw. Ond hefyd yn cymryd peth amser ar eich hun i adolygu'r pethau hyn. Ac os nad ydych yn gyfarwydd â beth mae rhai o'r pethau hyn yn, gwnewch yn siŵr eich bod yn gofyn un ohonom ni. Hefyd, ar gyfer y gair swyddogol ar y cwis, ewch i'r ddolen hon. Bydd hyn yn cael yr holl wybodaeth angen i chi fynd mewn ag ef ystafell, gwahanu yn nhrefn yr wyddor, ac Hefyd, mae rhai awgrymiadau ar ba ddeunyddiau dylech fod yn astudio, a pha fath o gwestiynau cwis y gallwch ei ddisgwyl. Felly, gwnewch yn siwr i wirio bod allan. Hefyd, mae rhai awgrymiadau ar gyfer pan fyddwch yn yn paratoi ar gyfer yr arholiad. Ymarfer codio ar bapur. Yr wyf yn gwybod eich bod wedi gotten ei ddefnyddio i gael y siec IDE ar gyfer eich camgymeriadau ar eich rhan, ac it's-- pan fyddwch yn teipio i fyny, 'i' ychydig yn wahanol na gorfod i ysgrifennu pethau allan. Felly ymarfer gwneud rhywfaint o godio. Mae rhai swyddogaethau da i ymarfer wneud yn strlen a atoi, gweld pe gallech ysgrifennu rhai sydd allan ar eich pen eich hun. Bod yn gyfarwydd â'r broblem setiau. Mae'r rhan fwyaf o flynyddoedd, mae cwestiynau sy'n ymwneud i rai o'r deunydd broblem a osodwyd. Felly, gwnewch yn siŵr eich bod yn deall sut i wneud yr holl broblem setiau. Rhowch gynnig ar wneud rhai o'r hen cwisiau o dan y cyfyngiad amser 75 munud. Mae llawer o'r cwisiau Gall fod yn fath o hir. Felly mae'n ffordd dda o roi eich hun rywfaint o arfer, a pha mor hir y bydd yn yn mynd â chi, a sut yr ydych yn Dylai rannu eich amser i wneud yn siŵr byddwch yn gorffen popeth erbyn y diwedd. A hefyd, byddwch yn cael un dudalen, dau Taflen gyfeirio ochr y gallwch ysgrifennu beth bynnag yr ydych eisiau ar ei defnyddio yn ystod y cwis. Felly, pan fyddwch yn creu hynny, dyna hefyd ffordd wirioneddol wych i astudio oherwydd bod byddwch fath o yn adolygu pethau fel eich bod yn ysgrifennu. Felly unrhyw gwestiynau cyffredinol am y cwis, neu sut mae'n gweithio? Yeah. GYNULLEIDFA: A wnaiff y rhestr o bynciau ond eich bod yn dangos fod ar gael i ni ar-lein? CAMILLE REKHSON: Mae'r sleid cyfan Bydd sioe yn cael eu postio ar y wefan. Hefyd, mae'r fideo o adolygiad heddiw Bydd sesiwn ar y wefan. Felly peidiwch â phoeni gormod am ysgrifennu pethau i lawr drwy gydol. Bydd yn gyd yno. Unrhyw gwestiynau eraill? Iawn, felly gadewch i ni ddechrau arni. Felly, un peth i fod yn gyfarwydd â hi yw y gwahanol fathau o ddata a maint eu bod yn cymryd ar. Gall hyn hefyd fod yn beth mawr i ysgrifennwch ar eich taflen gyfeirio, dim ond er mwyn gwneud yn siŵr eich cofiwch pob un o'r rhain. But-- felly chars yw 1 beit. Ints yna 4 bytes. A hir, hir, sydd yn y bôn yn fwy lle ar gyfer cyfanrif, yn 8 bytes. Mae fflôt yw 4 bytes. Mae ddwbl, a oedd yn y bôn yn rhoi i chi mwy o le i storio fflôt, yw 8 bytes. Ac yna pwyntydd yw 8 bytes hefyd. Unrhyw gwestiynau am y rhain? Felly deuaidd yn bwnc arall rydym wedi cynnwys ychydig bach semester hwn. Felly, gadewch i ni wneud rhai ymarfer gyda drosi rhwng y deuaidd a'r degol. Felly unrhyw un yn cael unrhyw syniad beth y byddai un cyntaf fod? Dylai unrhyw un? Yeah, mae'n 42. Felly, os ydych yn cofio, pob un o'r lleoedd mewn deuaidd yn y bôn yn hoffi 2 i rym y lle hwnnw yn. Er mwyn i fan a'r lle cyntaf yw 2 i'r pŵer 0. Ac mae gennym 0 yno, felly dim byd yno. Y lle nesaf yw 2 i'r pŵer cyntaf. Ac mae gennym 1 yno, fel eu bod yn y bôn yn 2. Y lle nesaf yw 2 i yr ail, sydd 4. Nid oes gennym unrhyw beth yno. Y lle nesaf drosodd yw 2 i y trydydd, a fyddai'n 8. A oes gennym un yno. Ac rydym yn dal i fynd. Mae hynny'n last-- bellaf i'r Gadawodd un yw lle mae gennym 32. Ac felly, yr ydym yn y bôn wedi 32 ynghyd ag 8 a 2 i gael 42. Unrhyw gwestiynau? GYNULLEIDFA: Beth yw'r isysgrif amdano? CAMILLE REKHSON: Y isysgrif yn y bôn yn dweud wrthym ei fod yn deuaidd. Felly mae 'na 2 yno. Os oedd like-- yn y nesaf un, neu pan fyddwn ni'n drosi degol i deuaidd, mae 'na 10 yn dangos i ni bod nifer hwn yn wreiddiol yn degol. GYNULLEIDFA: Diolch yn fawr. CAMILLE REKHSON: Yeah. Unrhyw gwestiynau eraill am bod un? Iawn, felly gadewch i ni roi cynnig ar y nesaf un wedyn, i degol deuaidd. Felly, gan gymryd 50 a rhoi hynny mewn deuaidd. Sut y byddech yn gwneud hynny? Yeah. GYNULLEIDFA: 110,010. CAMILLE REKHSON: Ydw. Felly one-- ffordd hawdd i feddwl am trosi o degol i'r deuaidd yw canlynol-- mae'n aml yn helpu i ysgrifennu allan beth yw'r gwahanol bwerau 2 yn cael eu. Ac yna mynd drwyddo, a gweld beth bynnag yw un uchaf o'r rheiny yw y gallwch ei roi i mewn i'r rhif degol heb fynd drosto. Felly, yn yr achos hwn, yn un o pwerau o 2 yw 32. Felly 32 yn mynd i mewn 50. Ond byddai'r pŵer nesaf i fyny fod yn 64, Nid oedd yn amlwg yw'n ffitio i mewn i 50. Felly yr uchaf gennym yw 32. Mae'r un nesaf i lawr i 16. A 32 plws 16 Dim ond 48. Er mwyn i dal i ffitio i mewn i 50. Felly mae gennym 1 yn y ddau o'r rheiny. Ac yna os byddwn yn cadw mynd i lawr, yr unig beth yr ydym angen eu gadael yw 2 mwy i gael 48-50. Felly, yna mae gennym 1 yn y sefyllfa honno, a 0 yn y sefyllfa diwethaf. Oherwydd does dim byd yn y 2 i 0-ed lle. Cwestiynau ar drosi degol i'r deuaidd? Felly nawr gadewch i ni geisio gwneud rhyw ychwanegiad deuaidd. Sut pan fyddwch yn ychwanegu y ddau i fyny? Yeah. GYNULLEIDFA: 11100. CAMILLE REKHSON: Ydw. Wneud hynny ychwanegol yn deuaidd yn eithaf lawer yr un fath ag ei ​​wneud mewn degol. Ac eithrio os oes gennych ddau 1 yn lles hychwanegu at ei gilydd, 1 ac 1 yw 2, ond 2 mewn deuaidd yw 1 0. Felly, mae'n rhaid i chi gario'r 1, ac yn cadw ei gario i'r colofnau cwpl hynny. Ac ar wahân i'r hyn, dim ond ychwanegu fel arfer. Unrhyw gwestiynau ar hynny? Yeah. GYNULLEIDFA: Mae'n ddrwg gennyf, beth yw'r lle olaf? Mae chwe rhif. Felly y golofn leftmost, pa werth ydyw? CAMILLE REKHSON: Ar y un gwaelod? GYNULLEIDFA: Ar y naill uchaf, am 50. CAMILLE REKHSON: Ar gyfer 50? O, felly mae'r un leftmost yw 32. GYNULLEIDFA: 32? CAMILLE REKHSON: Yeah, felly byddai'n fod yn 32, 16, yna 8, 4, 2, 0-- neu 1. Wel, mae'n 2 y 0, sydd 1. Yeah. Unrhyw gwestiynau eraill am hyn? Iawn, felly, yna rydym yn mynd i'w wneud ychydig gyda hecsadegol. Felly gallai hyn fod yn ychydig bach yn llai cyfarwydd, am fy mod yn gwybod ein bod wedi gwneud llawer mwy gyda deuaidd. Ond yn ffordd dda iawn i meddwl am hecsadegol yw i dorri i fyny deuaidd Rhif mewn 4 ddarnau bit. Gan fod pob 4 darnau o rhif deuaidd yn y bôn un o'r rhifau hecsadegol. Felly, os oes gennym yr un yma yn gyntaf, mae gennym y bôn wyth 1 yn. Felly gall y rhai yn cael ei rannu up-- GYNULLEIDFA: 255. CAMILLE REKHSON: Dywedwch hynny eto. GYNULLEIDFA: 255 mewn degol, neu 0 xFF yn hecsadegol. CAMILLE REKHSON: Yeah, y mae. Felly, os byddwch yn gwahanu bod hyd yn ddau ddarnau 4-bit, rydym yn y bôn wedi pedair set o 1. Pa un yw'r maximum-- yn y bôn yr uchafswm gallwn gael gyda 4-didau yn deuaidd. A'r uchafswm y gallem ei gael am Byddai hynny yn hecsadegol fod yn F. Felly byddai gennym ddau F. Unrhyw gwestiynau ar hynny? Yeah? GYNULLEIDFA: Allwch chi ailadrodd hynny. CAMILLE REKHSON: Cadarn. Felly yr un, yn y bôn, man hecsadegol yn sy'n cyfateb i'r 4-did o deuaidd. Felly, y ffordd hawsaf o wneud hyn yw i dorri i fyny i mewn ddarnau 4-bit. Felly, yn yr achos hwn, mae gennym wyth 1 yn. Felly, os ydym yn rhannu rhai yn ddau ddarnau 4-bit, byddai gennym dwy set o bedwar 1 yn. Ac mae pob un o'r rhai a yn cyfateb i F. Os ydych yn credu about-- Rwy'n gwybod ein hymennydd yn math o gwifrau i feddwl mwy trwy degol, oherwydd dyna beth rydym yn ei ddefnyddio i. Felly, un ffordd y gallech feddwl am y peth fel y pedair 1 yn hafal i 15 ym degol. A 15 yn hecsadegol yw F. Felly dyna ffordd arall y gallwch feddwl drwyddo. Yeah. GYNULLEIDFA: Beth yw'r 0x amdano? CAMILLE REKHSON: Y 0x yn dynodi ei fod yn hecsadegol. Felly rydym yn unig roi hynny rhagddodiad yno, fel arfer. Cwestiynau eraill ynghylch hynny. Iawn, felly gadewch i ni geisio mynd y ffordd arall bryd hynny. Yn yr achos hwn rydym yn have-- sori? GYNULLEIDFA: [Anghlywadwy]. CAMILLE REKHSON: Rydym yn mynd i deuaidd. Felly, yn mynd y ffordd arall. Ond yn yr achos hwn, mae gennym 5 a A. Felly, os ydym yn meddwl am hyn, os yw pob un those-- y 5 a'r A yn y ddau yn mynd i gynrychioli 4-bit darn, sut fyddech chi'n dweud 5 mewn deuaidd? GYNULLEIDFA: 0101. CAMILLE REKHSON: Yeah, felly dyna y 0101 rhan. Ac yna sut fyddech chi'n dweud A in-- GYNULLEIDFA: 10. CAMILLE REKHSON: Dweud iddo-- Mae'n ddrwg? GYNULLEIDFA: 10. CAMILLE REKHSON: Yeah, felly dyna yr ail ran ohono. Ac yna, os ydych yn rhoi dau hynny at ei gilydd, dyna sut yr ydych yn cael y llawn deuaidd gyfer y hecsadegol. Yeah? GYNULLEIDFA: Gwybod bod A yn 1010, mae'n rhaid i chi gofio hyn? Neu gallwch like-- CAMILLE REKHSON: Felly, os you-- y differe-- felly pan fyddwch yn mynd trwy deuaidd, yn y bôn deuaidd Mae 0 thrwy 9 ac yna A drwy F fel ei 16 o bethau. Felly, os yr holl ffordd 0 i 9-- os you-- 9 ac yna A, yn y bôn os ydym yn trosi i degol, A Byddai fod yn debyg 10, byddai B fod fel 11. Ac os ydych yn meddwl am y deuaidd 1010 yw 8 a 2, oherwydd dyna'r ddau lleoedd sy'n adio i 10, sy'n yn union yr hyn A yn cyfateb i. Felly dyna fath o hawdd ffordd i feddwl am hynny. Cwestiynau eraill ar hecsadegol. Iawn, felly erbyn hyn rydym yn mynd i'w cymryd a edrych ar weithredwyr bitwise. Felly gall y rhain yn bendant dod i fyny ar y cwis. Rwy'n gwybod nad ydym wedi gweithio gyda llawer hwy. Ond rydym yn jyst yn mynd i wneud ychydig adolygiad o'r rhain. Felly, gobeithio y bydd y rhain yn ychydig bach yn fwy cyfarwydd i chi. Felly y chwe gweithredwyr bitwise ein bod wedi cael eu rhestru yma. Ac maent yn gadael i ni drin darnau unigol. Felly y AND gweithredwr yn ampersand sengl. Peidiwch â drysu hynny â y ampersand dwbl, sef y rhesymegol A bod gadael i ni gymharu dau beth. Yw'r un A sut y gallwn trin pethau bitwise. Felly, mae hyn yn rhoi canlyniad 1 os yw'r ddau ni o'r dadleuon yr ydym ni'n cymharu yw'r same-- neu'n yw 1. Ac mae'r bar fertigol, NEU, yn rhoi ni 1 os bydd o leiaf un ohonynt yn 1. Felly y bôn yn union yr hyn y mae'r geiriau hyn yn awgrymu. A, os yw'r ddau darnau yn cael eu 1, 1 ac 1 yn rhoi i ni 1. Ond gyda OR, os yw'n 0 neu 1, neu 1 neu 1, yn y naill achos, mae gennym 1 fel yn un ohonynt. Felly, yna byddem yn cael 1. GYNULLEIDFA: Beth ydych chi'n ei olygu ei fod yn dweud ei fod yn rhoi 1? CAMILLE REKHSON: Y canlyniad. Math o, fel chi would-- pe baech yn gwneud 0 ac 1, mae'r Byddai ganlyniad i hynny fod yn 1-- neu 0 ac 1 gyda'r canlyniad a fyddai'n cael ei 0, sori. Yeah, yr oedd yn fath o ganlyniad i'r mynegiant. Ac yna, mae hyn yn symbol lleolnod yw'r XOR, neu OR unigryw. Felly mae hynny'n golygu yn gyfan gwbl un neu union un o'r ddwy ddadl yn hafal i 1. Ac yna byddai'n rhoi i chi 1. Mae'r llinell bach squiggly yw'r gweithredwr NOT. Felly, yn wahanol i weddill ohonynt, sy'n gweithredu ar bâr o ddarnau, y gweithredydd NID ond yn cymryd Bydd un did, ac yn fflipio. Felly, os ydych give-- os ydych yn ei wneud NID 0, byddai'n rhoi i chi 1. Ac os NAD ydych yn ei wneud 1, byddai'n rhoi i chi 0. Yeah? GYNULLEIDFA: Beth yw'r gwahaniaeth rhwng y OR gydag un llinell a'r OR gyda dau? CAMILLE REKHSON: Felly mae'r OR gyda dwy linell yw'r OR rhesymegol. Felly dyna gyfer cymharu dau rif cyfan llawn, neu two-- i weld a yw pethau'n gyfartal. Neu hoffi gwneud hyn yn hafal i hyn, NEU mae hyn yn hafal i'r math hwn beth. Er bod y bar sengl OR, yw am wneud pethau bitwise. Yeah. GYNULLEIDFA: Beth ydych chi'n ei olygu wrth bitwise? CAMILLE REKHSON: Felly bitwise yn gweithio yn uniongyrchol gyda'r darnau mewn deuaidd. GYNULLEIDFA: O, yr wyf yn gweld. CAMILLE REKHSON: Yeah, felly gweithio gyda 0 ac 1 yn. Byddwn yn gwneud cwpl o enghreifftiau o hyn ar ôl, yn union fel nad yw'n rhy ddryslyd. Ac yna y ddau olaf yw'r chwith shifft a'r newid cywir. Sydd yn y bôn dau llai na arwyddion neu ddau yn fwy nag arwyddion. Ac maent yn symud i bit nifer penodol o leoedd eich bod yn rhoi iddo yn y cyfarwyddyd. Felly byddai'n naill ai symud ei ar y chwith, neu i'r dde. Yeah? GYNULLEIDFA: Beth yw'r cystrawen ar gyfer rhedeg? CAMILLE REKHSON: Rydym yn mynd i mynd drwy esiampl mewn eiliad. Felly, gobeithio, fydd yn helpu. Unrhyw gwestiynau am ddim ond beth i fyny yma, before-- OK. Felly yn mynd drwy rai enghreifftiau. Gadewch i ni ddechrau gyda'r AND rhai. Yr hyn y byddem yn ei gael pe baem yn gwneud 0 AND 1? GYNULLEIDFA: 0. CAMILLE REKHSON: OK, ac os gwnaethom 1 A 1? GYNULLEIDFA: 1. CAMILLE REKHSON: Yeah, beth os gwnaethom 0 NEU un? GYNULLEIDFA: 1. CAMILLE REKHSON: Beth am 1 NEU 1? GYNULLEIDFA: 1. CAMILLE REKHSON: OK, beth am 0 XOR 1? GYNULLEIDFA: 1. CAMILLE REKHSON: A 1 XOR 1? GYNULLEIDFA: 0. CAMILLE REKHSON: Rydych guys yn dda. Beth am NID 0? GYNULLEIDFA: 1. CAMILLE REKHSON: A NI 1? GYNULLEIDFA: 0. CAMILLE REKHSON: OK, ac yna mae hyn ddiwethaf un yn un bach gyda'r symud. Felly, os ydym yn gosod i ddechrau x i fod yn 8, ac Yna, y mae x symud i'r chwith 3, beth fyddai hynny roi i ni? GYNULLEIDFA: [Anghlywadwy]. CAMILLE REKHSON: Dywedwch hynny eto. GYNULLEIDFA: [Anghlywadwy]. CAMILLE REKHSON: Felly, mae hyn yn mewn gwirionedd yn rhoi i ni 64. GYNULLEIDFA: [Anghlywadwy]. CAMILLE REKHSON: Felly Im 'jyst mynd i ysgrifennu hyn i fyny yma, felly mae hyn yn gwneud ychydig o synnwyr. Os oes gennym 2 i'r 0, 2 i'r 1, 2 i'r 2, 2 i 3 yn mynd i fod yn 8. Ac os ydym am symud ei 3 fwy o ddarnau ar y chwith, a fyddai'n cael ei 2 i'r 4, 2 i'r 5, a 2 i'r 6, a 2 i 6 yn 64. Ydy hynny'n gwneud synnwyr? Ydw. GYNULLEIDFA: A oes gan y sifft yr holl 1 yn a 0 ar y rhif deuaidd i the-- CAMILLE REKHSON: Ydw. Ac ni fydd rhaid i chi boeni am y cwis am y rhain fod yn negyddol. Ni fyddwn yn gwneud i chi yn delio â newidiadau negyddol mewn unrhyw ffordd. Unrhyw gwestiynau eraill am hyn? Ydw. GYNULLEIDFA: Os yw'n symud i'r dde, unrhyw beth y wasn't-- unrhyw beth sy'n nid oedd yn wreiddiol yn rhan o'r peth 0? CAMILLE REKHSON: Yeah, byddech dim ond ychwanegu 0 ar yn y gwreiddiol. Yeah. GYNULLEIDFA: Felly beth sy'n bod 100 symud i'r chwith dair gwaith? CAMILLE REKHSON: 100 symud i'r dde, felly byddai hynny'n cymryd pob un o'r 1 a 0 a dim ond eu symud ar y dde gymaint o weithiau ag chi ei symud i'r dde. GYNULLEIDFA: [Anghlywadwy]? CAMILLE REKHSON: Wel, 100-- yna ydych yn siarad am 100 mewn deuaidd, neu 100 yn y degol yn? GYNULLEIDFA: Mae'n ddrwg gen i, 100 mewn deuaidd. CAMILLE REKHSON: 100 yn deuaidd, os byddwch yn symud i'r right-- os byddwch yn symud i'r dde unwaith, byddai'n dod yn 10. Os byddwch yn symud i'r dde ddwywaith, byddai'n dod yn 001. Ac yna os byddwch yn symud eto, byddwch yn fath o colli y bit. Yeah, dyna 0. Unrhyw gwestiynau eraill am hyn? Ydw. GYNULLEIDFA: Felly, yna mae'n dod yn 000. CAMILLE REKHSON: Ydw. Iawn, felly gadewch i ni fynd trwy ychydig bach o mathemateg ASCII. Felly gall cymeriadau yn y bôn cael eu trin fel gyfanrifau yn seiliedig ar eu gwerthoedd ASCII. Felly, os ydym yn eistedd int A hafal 65, int B yn hafal i A ac 1, torgoch int C hafal D minws 1, ac torgoch D hafal 68, beth fyddai'n argraffu ar y gwaelod? Felly, rydym yn argraffu these-- bendithia you-- rydym yn argraffu'r rhain i gyd allan fel chars seiliedig ar y cant C. Felly rydym yn y bôn argraffu mae'r gwerth cymeriad pob un o'r pedwar o'r newidynnau hyn. Fel awgrym, 65 yw gwerth ASCII o gyfalaf A. Efallai oedd yn helpu. Beth? GYNULLEIDFA: ABCD. CAMILLE REKHSON: Yeah, felly byddai hyn yn argraffu yn union ABCD oherwydd ein bod yn gosod int A cyfateb i werth ASCII o A. Felly, os ydym print that allan fel cymeriad, rydym yn unig yn cael cyfalaf A, Byddai ynghyd ag 1 fod yn brifddinas B mewn ASCII. Byddai D llai 1 fod yn brifddinas C mewn ASCII. A 68 yw gwerth ASCII o D. Cwestiynau ar ASCII? Ydw. GYNULLEIDFA: Felly, mae'r dyfyniad yn nodi o gwmpas A, a yw hynny'n newid A i'r ASCII? CAMILLE REKHSON: Mae'n uses-- ei dyfynodau sengl count-- o amgylch y A yn ei gwneud yn gymeriad. Ac os ydych yn delio â yn y nifer form-- felly pan, fel yn yr achos hwn, mae'n cael eu trin fel int-- yna byddai'n delio gyda 'i' gwerth ASCII. Ydw. GYNULLEIDFA: A ydych yn argymell y mae gennym tabl cyfeirio ASCII? CAMILLE REKHSON: Nid wyf yn think-- GYNULLEIDFA: Neu byddai ond yn ymdrin â hyn? CAMILLE REKHSON: Credaf ein Byddai gwneud hynny gyda phethau hawdd. Nid wyf yn credu y byddai'n brifo i ysgrifennu i lawr efallai pa cyfalaf A a llythrennau bach A yw, dim ond pa ystodau hynny ddechrau gyda. Ond dwi ddim yn meddwl mae angen i chi gymryd yr holl y lle i roi'r tabl ASCII gyfan. Yeah. GYNULLEIDFA: Beth yw'r gwahaniaeth rhwng ddweud int A a torgoch C, fel chi ei wneud ar y brig? CAMILLE REKHSON: Felly 'i' jyst sut mae hynny'n cael ei storio yn y cof. Ond gallwch drin naill ffordd neu'r llall. Fel y gwelwn yma, rydym yn ei wneud print allan y A fel cymeriad. GYNULLEIDFA: Felly dyna yr un fath â A? CAMILLE REKHSON: Yeah. Unrhyw gwestiynau eraill? GYNULLEIDFA: Felly, y cant C yn ei ddweud argraffu torgoch? CAMILLE REKHSON: Ydw. GYNULLEIDFA: Felly hyd yn oed os oes A dim ond ei ddiffinio fel cyfanrif, os ydym yn ceisio argraffu torgoch fel 65, mae'n would-- CAMILLE REKHSON: Byddai'n mynd i yn y bôn yn mynd i'r siart ASCII ac yn cael pa bynnag gymeriadau yn y siart ASCII ar gyfer y 65. GYNULLEIDFA: Diolch yn fawr. CAMILLE REKHSON: Yeah. Do? GYNULLEIDFA: Felly, os ydych yn gwneud% I,% I, % I,% I, byddai 'i jyst print-- CAMILLE REKHSON: Yeah, os wnaethoch chi i gyd 4% I, mae'n Byddai argraffu'r ASCII gwerthoedd pob un o'r pedwar o'r rhain. Unrhyw gwestiynau eraill? Iawn, felly cwmpas, yn y bôn mae hyn helpu i benderfynu ble newidyn yn bodoli yn eich rhaglen. Felly, rydym wedi siarad am ddwy wahanol mathau o gwmpas, byd-eang a lleol. Os newidyn yn cael ei cwmpasu yn fyd-eang, mae'n golygu eich rhaglen gyfan fynediad at y newidyn. Ac os ydych yn fyd-eang cwmpas newidyn, chi yn datgan ei fod cyn eich prif swyddogaeth. Felly mae'n ei wneud dde oddi ar y ystlumod. Ac yna eich cyfan gall y rhaglen gael gafael arno. Os yw'n cwmpasu yn unig yn lleol, bod newidyn gyfyngu i ranbarth penodol. Felly, os ydych yn datgan fewn i ddolen, Dim ond un ar gyfer dolen gall mynediad iddo. Neu os ydych yn datgan o fewn swyddogaeth benodol, dim ond swyddogaeth sy'n cael mynediad iddo. Cwestiynau ar gwmpas. Iawn, felly swyddogaeth prototeipio. Yn y bôn, oherwydd C, pryd mae'n llunio, yn darllen o'r brig i lawr. Os byddwch yn datgan swyddogaeth yn hwyr yn eich cod, nid yw'r compiler yn gwybod bod swyddogaeth honno yn bodoli. Felly beth a ddefnyddiwn yn prototeipiau, sydd yn y bôn yn dweud wrth y compiler, swyddogaeth hon yn bodoli, yn mynd yn edrych ar ei gyfer yn ddiweddarach yn y cod. Felly, y ffordd yr ydych yn ei wneud prototeip swyddogaeth yn union sut yr ydych yn dechrau oddi ar ysgrifennu swyddogaeth. Rydych yn rhoi y math dychwelyd, enw'r swyddogaeth, ac yna unrhyw ddadleuon bod swyddogaeth honno yn cymryd. Felly, i edrych ar esiampl gyflym, yn hyn achos ein swyddogaeth yr ydym yn ei ddefnyddio yma yn y bôn yn swyddogaeth ciwb. Felly, gan gymryd mewn cyfanrif a ddychwelyd y ciwb y cyfanrif. Felly, gan ein bod wedi ysgrifennu bod swyddogaeth o dan y prif swyddogaeth, ac yr ydym am ddefnyddio'r allbwn that-- neu yr ydym eisiau swyddogaeth honno yn ein prif swyddogaeth, rydym yn rhoi ei ffordd prototeip ar frig ein rhaglen. Ac yna pan fyddwn yn galw yn ein prif swyddogaeth, y compiler yn gwybod bod y swyddogaeth yn ysgrifennwyd yn ddiweddarach, a bydd yn mynd yn edrych ar ei gyfer, a bydd yn ddefnyddio'n gywir. Cwestiynau ar prototeipio? Ydw. GYNULLEIDFA: Felly beth yw'r pwynt? Nid wyf yn cael y pwynt o brototeipio. Pam na dim ond rhaid i lawr yno? CAMILLE REKHSON: Wel os 'i' i lawr yma, yna pan byddwch yn cael i linell ciwb o x yn eich prif swyddogaeth, Bydd y casglwr yn cael unrhyw syniad bod y swyddogaeth ciwb mewn gwirionedd yn bodoli. GYNULLEIDFA: Nid yw Allech chi jyst roi o flaen? CAMILLE REKHSON: Mae'n arferion codio gwell i'w roi o dan eich prif swyddogaeth. Felly dyna pam byddem gwneud y prototeipio. Dim ond oherwydd, os ydych wedi cael llawer o swyddogaethau, byddai'n wirioneddol anniben i Darllenwch drwy'r holl swyddogaethau hynny cyn i chi fynd i gig eich rhaglen. Yeah, a ydych wedi cael q-- GYNULLEIDFA: Felly, yn datgan eich newidyn i fyny ar y brig er mwyn i chi gael mynediad iddo, yn ei gwneud yn newidyn byd-eang? A yw hynny'n debyg i'r hyn lle mae'n datgan ei fyny yno, fel ei fod yn gwybod bod mae'n mynd i gael gafael arno nes ymlaen a gallwch ei ddefnyddio? CAMILLE REKHSON: Yeah. Ydw. GYNULLEIDFA: A ddylai the-- unrhyw ychwanegol swyddogaethau i chi greu allweddol y tu allan y peth hyn, or-- CAMILLE REKHSON: Yeah, os ydych yn creu prif functions-- eraill ei hun yn y function-- felly os eich bod yn creu swyddogaethau eraill, dylent fod tu allan. Do? GYNULLEIDFA: Beth yw y cant D? CAMILLE REKHSON: Canran D yw yr un peth â cant I. Mae'n cyfeirio at cyfanrif. Ydw. GYNULLEIDFA: Felly beth yw prif thrwy hynny yn int? Beth oedd y gwagle? CAMILLE REKHSON: Gwag dweud mae'n ei gymryd mewn unrhyw ddadleuon. GYNULLEIDFA: [Anghlywadwy]. CAMILLE REKHSON: Allwch chi yn siarad ychydig o uwch, sori? GYNULLEIDFA: Yeah, mae'n ddrwg gennyf, pam y gwnaeth byddwch yn rhoi ddi-rym oherwydd yr un cyntaf, ac yna int mewnbwn ar gyfer yr ail un? CAMILLE REKHSON: O, ar gyfer y ddau different-- ar gyfer y prif swyddogaeth yn erbyn y swyddogaeth ciwb? Felly, yn y prif swyddogaeth, rydym yn defnyddio ddi-rym oherwydd bod oes unrhyw baramedrau sy'n cael eu cymryd i mewn. Tra yn y ciwb swyddogaeth, mae gennym fewnbwn. Dyna pam y mae'n ei ddweud int, mewnbwn, oherwydd mae yna ddadleuon ein bod cymryd mewn i redeg ein swyddogaeth. Yeah. A mae cwestiynau? OK, ac yna yn gyflym imprecision fel y bo'r angen-pwynt. Felly mae gennym lawer o ganmil rhifau real. Ond nid oes ond Nifer cyfyngedig o ddarnau y gallwn eu defnyddio i arddangos rhai rhifau, ac yn cynrychioli. Felly, yna yr ydym yn darfod i fyny gyda rhywfaint o imprecision. Ac nad yw eich rhifau fydd bob amser fod yn eithaf yn union beth ydych yn credu eu bod yn pan fyddwch chi'n delio ag fel y bo'r angen-pwynt. Mae hyn yn unig rhywbeth da i wybod. Cwestiynau ar hyn? Ydw. GYNULLEIDFA: A yw hyn yn cyfeirio i'r syniad o bit gorlif a oedd yn y ddarlith? A oedd bod rhywbeth ar wahân? CAMILLE REKHSON: Maen nhw'n hollol ar wahân, yeah. OK, mawr. PULAK Goyal: Hi, bawb. Fy enw i yw Pulak, ac byddaf yn mynd dros awgrymiadau. Iawn, felly gadewch i ni feddwl yn gyntaf am yr hyn y cof yn edrych fel. Felly, fel y gwelwch yma, rydym yn cymryd cof ac yr ydym yn ei rannu i fyny i mewn i griw o flociau. Ac rydym yn cyfeirio at bob un bloc gan gyfeiriad, dde? A oes unrhyw un yn cofio pa fath o nodiant a ddefnyddiwn i ddynodi cyfeiriad? GYNULLEIDFA: hecsadegol, 0x. PULAK Goyal: hecsadegol, dde? Felly mae'r 0x golygu ein bod yn siarad am hecsadegol. Iawn, felly sut ydym ni'n creu awgrymiadau? Felly, rydym yn cymryd y math, rydym yn rhoi iddo-- ychwanegu seren iddo, ac yna rydym yn ychwanegu'r enw newidyn. Felly, mae'r enghreifftiau a welsom yn int seren x, seren torgoch y, ac yn arnofio yn dechrau z. Felly, pan fyddaf yn dweud int seren x, gall rhywun ddweud wrthyf beth rwy'n fath o siarad am yno? GYNULLEIDFA: Y lleoliad y ddisg. PULAK Goyal: Mae'n ddrwg gennyf, beth? Allwch chi ailadrodd hynny? GYNULLEIDFA: Y lleoliad y ddisg. PULAK Goyal: Felly actually-- felly beth Yr wyf yn golygu, yw pan mae gennym int seren x, rydyn ni'n ei ddweud yn creu pwyntydd, ac mae'n Gall storio y cyfeiriad o newidyn sy'n 'an int, dde? Felly, gyda seren torgoch y, rydym yn creu pwyntydd sy'n gallu storio y cyfeiriad o newidyn mae hynny'n torgoch. Er mwyn i gwneud synnwyr i bawb? OK, oer Iawn, felly gyda chyfeiriadau, mae dwy lawdriniaeth pwysig y gallwn ei wneud. Mae cyfeirnodi, a mae 'dereferencing. Yeah? GYNULLEIDFA: A allech chi fynd ychydig yn arafach? PULAK Goyal: Cadarn. Yeah, so-- Yeah, gofyn cwestiynau wrth i mi fynd ynghyd os you-- os oes rhywbeth yn aneglur. Felly rydym wedi cyfeirio a dereferencing. Felly, pan fyddwch am gael y cyfeiriad o newidyn, yna defnyddiwch y ampersand. Felly, gadewch i ni ddweud fy mod wedi datgan int x rhywle. Ac yr wyf yn awyddus i gael y cyfeiriad o hynny ac yn ei drosglwyddo i mewn, byddwn yn gwneud ampersand x. A phan ydych chi am gael y gwerth sy'n gysylltiedig â pwyntydd, byddwch yn defnyddio'r dereference gweithredydd, sef seren. Felly, gadael i ddweud roedd gen int seren x, a Roedd rhaid i mi ei fod yn pwyntio at rywbeth. Os wyf am gael y gwerth yr hyn mae'n pwyntio at, byddwn yn unig yn seren x. A yw hynny'n glir? Unrhyw gwestiynau am hynny? Yeah. GYNULLEIDFA: Felly yn gyffredinol, byddwch yn ni fyddant yn gallu ei wneud ar x a seren x gyda'r un x. Yw hynny'n gywir? Oherwydd os x yn amrywiol, yna mae gennych ei wneud ar x i gael ei fod yn pwyntydd. Ond os x yn pwyntydd, yna bydd angen i wneud seren x i gael y newidyn. PULAK Goyal: Ie, felly mae'r cwestiwn oedd ynghylch pryd ydyn ni'n defnyddio star-- pan byddech yn defnyddio'r seren, a phan fyddwn yn defnyddio'r ampersand, a allwn ni ei ddefnyddio gyda'r un math o newidyn? Felly fel arfer, os oes gennych, er enghraifft, int x, byddech yn bennaf yn defnyddio'r ampersand i gael y cyfeiriad o hynny. Oherwydd nad yw'n gwneud synnwyr i deference i mewn i x. Tra, pe bai gennym seren int x, byddech yn eu defnyddio llawdriniaeth dereference oherwydd y byddai'n gwneud unrhyw synnwyr i'w defnyddio yn x yn yr achos hwnnw. Ydy hynny'n gwneud synnwyr? GYNULLEIDFA: Felly nad ydych yn gallu ac, ac yna pwyntydd? PULAK Goyal: Felly yr ydych dechnegol, mewn gwirionedd Gall gwneud y ampersand o pwyntydd. Ond dyna allan o'r cwmpas y dosbarth hwn. At y diben hwnnw ar gyfer eich guys ' dibenion, pryd bynnag y bydd gennych awgrymiadau, ydych am ddefnyddio gweithredwr dereference i gael y gwerth sy'n gysylltiedig â hynny. A phan fyddwch yn cael rheolaidd newidynnau, fel int x, ydych am ddefnyddio'r ampersand gweithredwr i gael y cyfeiriad o hynny. IAWN? Iawn, felly gadewch i ni edrych ar awgrymiadau a beth sy'n digwydd o dan y cwfl. Felly, y peth cyntaf a wnes yma yw y int x ddatgan yn hafal i 5. Gall y cyfeiriad y newidyn hwn yw 0x04, ac mae'r gwerth yn 5. Felly, gadewch i ni weld beth sy'n digwydd gyda'r llinell nesaf. Felly, yn awr rydym yn datgan pwyntydd. Ei gyfeiriad yw 0x08, ac mae ei gwerth yn y cyfeiriad o x. A yw hynny'n gwneud synnwyr i bawb? Unrhyw gwestiynau am hynny? OK, ac yn awr gadewch i ni weld beth digwydd gyda'r llinell nesaf. Felly, gyda hyn llinell nesaf, rydym wedi cyfeiriad gopi yn 0x10, ac mae ei gwerth yn 5. Felly y rheswm rydym yn cael pump yw dywedasom, yr ydym yn dereference pwyntydd, yr ydym yn datgan seren int. Ac felly mae'n went-- pan fyddwn yn dereference iddo, mae'n dweud, iawn, yr hyn sydd yn y 0x04 slot. Ac aeth i hynny. A pha x yn x0-- 0x04, ac mae'r gwerth yn 5. A yw hynny'n gwneud synnwyr? Yeah? GYNULLEIDFA: Pam fod gyfeiriad y copi yn dim ond 4 bytes uwchlaw'r x pwyntydd? PULAK Goyal: Ydy, mae hyn yn gamgymeriad on-- CAMILLE REKHSON: Felly, ie, cofiwch mae hyn wedi ei ysgrifennu mewn hecsadegol. PULAK Goyal: O, ie. CAMILLE REKHSON: Felly hon mewn gwirionedd 8 ac yna 16 oherwydd ein bod dweud hynny, pwyntydd, cofiwch, yn ein DRhA yn mynd i fod yn 8 bytes hir. PULAK Goyal: Yeah. Felly, dim ond i fod yn glir, awgrymiadau 8 bytes hir. Mae int yw 4 bytes. Felly, y rheswm pam yr hyn neidio o 0x04 i 0x08 oherwydd ein bod wedi gorfod gwneud naid o 8 bytes. Ac yna for-- ers copi yn unig yw int, 'i' 4 bytes, sef hanner o 8 bytes. Felly rydym yn unig neidio i'r 0x10, sef dwy i ffwrdd oddi wrth 0x08. Unrhyw gwestiynau eraill? OK, let's-- yeah? GYNULLEIDFA: Pam nad yw gwerth y copi int dim ond the-- pam ei fod yn 5 yn lle 0x04? PULAK Goyal: OK, pam ei fod 5? Iawn, felly pan the-- felly gadewch i ni yn gyntaf meddwl am hyn o ran y mathau. Felly, yr wyf ddim yn dweud copi int yn hafal i seren pwyntydd. Felly beth yw'r math o pwyntydd? Mae'n seren int. A phan wyf dereference hynny, y math yn dod yn int. Felly, yr hyn yr ydym yn disgwyl i storio dyma mewn gwirionedd yn int. A yw hynny'n gwneud synnwyr? GYNULLEIDFA: ychydig Cadarn bit,. PULAK Goyal: Felly fel arfer pan ydych yn meddwl yn nhermau math, mae'n helpu i chi ddeall beth yw'r math o werth ddylai fynd yno. Felly, gallwch fel arfer ddiystyru mae llawer o gamgymeriadau cyffredin hyn drwy feddwl yn nhermau math. Gadewch i mi fynd drwy ychydig mwy o sleidiau. A gallwn gael cwestiynau yn ddiwedd yr adran pwyntydd. Iawn, felly mae gennym raglen bygi yma. Ac felly mae y gall rhywun ddweud anyone-- mi beth sydd o'i le ar y rhaglen hon? Iawn, felly beth rydym yn disgwyl ei wneud yma yw-- yr hyn yr ydym am ei wneud yn cymryd y int newidyn x a throi iddo-- yn ei gwneud yn gyfartal 5 yn hytrach na 3 ac wedyn print that. Ond nid yw hynny'n digwydd. A all rhywun ddweud wrthyf pam? Do? GYNULLEIDFA: Pan fydd y swyddogaeth to_five cymryd x gan ei fod yn ddadl, nid yw'n cymryd x ei hun, ond yn lle hynny yn creu copi, a, ohono. Ac mae'n ffurfio gweithrediadau ar hynny. Ond oherwydd hynny, nid ydych yn ei wneud newid y gwerth gwirioneddol x. Gan eich bod yn [Anghlywadwy]. PULAK Goyal: Iawn, iawn, felly pan fyddwn yn galw y to_five swyddogaeth, beth rydym yn ei wneud yn meddwl, rhoi copi o'r mi gwerth at y swyddogaeth honno. Swyddogaeth honno, yna, yn mynd ac yn gwneud rhywfaint o manipulations. Ond unwaith mae'n dychwelyd, 'i' bellach wedi mynd allan o gwmpas y brif swyddogaeth yma. Ac felly x yn dal i fod, mewn gwirionedd, gyfartal i 3, ac rydym yn argraffu 3. Iawn, felly gadewch i ni weld sut mae hyn yn digwydd. Iawn, felly does dim byd ddatgan. Yna, yma, x yn hafal i 3. Ac yn awr mae'n yw-- ar safle dau, nid yw yn dal i fod o fewn y cwmpas. Ac yn awr rydym yn mynd i leoli tri, lle mae yn awr yn cymryd yn ganiataol gwerth 3. Ar bedwar, rydym yn awr yn newid i 5. Ond yn awr, pan fyddwn yn neidio yn ôl i pump, sef y datganiad print, mae bellach allan o gwmpas. Ac x yn dal yn gyfartal i 3. A yw hyn yn gwneud synnwyr i bawb? Iawn, felly yn awr gadewch i ni siarad am y ffordd gallwn ddefnyddio awgrymiadau at atgyweiria hon. A oes unrhyw un gennych unrhyw syniadau sut yr ydym Gallai atgyweiria hon drwy ddefnyddio awgrymiadau? GYNULLEIDFA: Rydych yn cymryd mewn seren int yn lle int gyfer to_five. PULAK Goyal: Mae'n ddrwg gennym, allech chi siarad? GYNULLEIDFA: Rydych yn cymryd mewn seren int yn lle int gyfer to_five. PULAK Goyal: OK, ie. Felly gadewch i ni pass-- yn hytrach na pasio yn unig gwerth, gadewch i ni ei drosglwyddo trwy gyfeirio. Mae'r swyddogaeth hon yn newydd, dde? Ac felly drwy basio y cyfeiriad i mewn, rydym yn Gall wneud manipulations ar y cyfeiriad. Ac felly rydym yn mewn gwirionedd, mewn gwirionedd, yn newid x. Felly, gadewch i ni weld sut mae hynny'n gweithio. Iawn, felly yn yr enghraifft hon yr ydym yn sefydlog iddo. Rydym wedi newid ein llofnod o to_five cymryd mewn int seren yn hytrach na dim ond int yma. Yna rydym dereference hyn a a benodi 5 iddi. Ac yn awr bydd hyn, mewn gwirionedd, argraffu 5. Felly gadewch i ni weld sut y mae'r camau yn gweithio yma. Felly, gyda y cam cyntaf, does dim byd ddatgan eto. Felly dyma, gyda'r ail gam, rydym wedi dweud x yn hafal i 3, ond mae yn dal i fod allan o gwmpas. Yn awr gan y drydedd linell, rydym wedi x yn dal yn gyfartal i dri. Ac yn awr, yr ydym wedi pasio in-- beth sydd storio mewn yn awr yn y cyfeiriad x. A yw hynny'n gwneud synnwyr i pawb, sut y cawsom hynny? Iawn, mae gennym y amper-- dyna sut rydym yn pasio ampersand x i'r swyddogaeth to_five. Ac yna i'r llinell nesaf, beth rydym yn ei wneud, yw ein dereference a. A thrwy dereferencing yn, rydym yn gallu i newid y gwerth x 3 i 5 oed. Gan fod x yn byw yn y cyfeiriad hwnnw 0x12. Ac yna, yn olaf, pan fydd byddwn yn dychwelyd yn ôl i brif, er bod hyn yn bellach allan o cwmpas, yr ydym wedi, mewn gwirionedd, newidiodd x. Ac mae'n 5. Unrhyw gwestiynau am hyn? Yeah? GYNULLEIDFA: Allwch chi ddweud wrtha beth oedd y ampersand x oedd? Roeddwn i'n meddwl ampersand oedd fel AC. PULAK Goyal: Ie, felly rydym yn defnyddio'r un symbol ar gyfer llawer o wahanol bethau. Felly dyma, pan fyddwch yn have-- mewn yr achos hwn, pan fydd gennych, Rwy'n guess-- felly yn yr achos hwn, pan fydd ydych yn delio ag awgrymiadau, pan fyddwch yn rhoi'r ampersand o flaen o int, mae int amrywiol, neu golosg, neu lif, yr hyn yr ydych yn ei ddweud yw, nodwch gyfeiriad o hyn i mi. Ond yr hyn yr ydych yn meddwl am, pan arall byddech yn defnyddio ampersand yw, gadewch i ni ddweud, mewn os bydd datganiad. Mae gennych wir, ac mae rhai newidynnau sy'n gwerthuso i rai Boole, a rhai newidynnau eraill sy'n dilysu rhywfaint Boolean a'ch bod am gael y ac o hynny. Yna, byddech yn defnyddio'r ampersand. SIARADWR 1: Yeah, felly dim ond heddiw, rydym wedi yn siarad am dri ddefnyddiau gwahanol o ampersand. Mae gennym ddau ampersands, sef beth Pulak wedi disgrifio unig. Mae gennym un ampersand, a oedd yn yw'r hyn a ddisgrifiwyd Camille yn gynharach, sef un ampersand. A dyna i bitwise AC. Ac yn sylwi bod y ac-- amodol neu, sori, yr rhesymegol AC a'r bitwise A, y rhai ddau rif, dde? Cafodd ei rhywbeth ampersand rhywbeth ampersand, rhywbeth rhywbeth ampersand. Yma, pan rydym yn unig yn cael ampersand rhywbeth, mae hynny'n dereferencing. PULAK Goyal: Yeah, cwestiwn mawr. Yeah. GYNULLEIDFA: Pam mae yn unol 5a a seren yn dod yn N / A? Peidiwch pam eu bod yn unig fath o gadw'r un gwerthoedd o'r llinell blaenorol? PULAK Goyal: Oherwydd bod rydym wedi dod ohonynt y swyddogaeth. Ac felly beth happens-- felly what-- erbyn hyn rydym yn allan o gwmpas y swyddogaeth honno, beth sy'n digwydd mewn gwirionedd yw hynny yn cael eu tynnu oddi ar y cof. Yeah. GYNULLEIDFA: Rhwng 3 neu 4 seren yn hafal 5. PULAK Goyal: Ydw. GYNULLEIDFA: Beth mae hynny'n ei ddynodi yn union? PULAK Goyal: Beth yw ystyr hynny? GYNULLEIDFA: Yeah. PULAK Goyal: Felly y cwestiwn oedd, beth yw that-- beth wyt ti'n ei wneud ar-lein pan ddywedwn, seren yn hafal i 5? Felly cofiwch y seren y gweithredwr dereference. Felly pan fydd, yn yr achos hwn, yn pwyntydd. Mae'n seren int. Felly, pan fyddwn yn dereference yn erbyn defnyddio'r seren, yr hyn yr ydym yn ei ddweud yw, ewch i beth bynnag yn cael ei storio yn y gyfeiriad, ei storio mewn a-- felly take-- felly mae, ar hyn o bryd, mae gan rai cyfeiriad ei storio ynddo. Ewch i ble y pwyntiau gyfeiriad at, a yn awr yn newid beth bynnag sydd i bump. Yeah. GYNULLEIDFA: Allwch chi ddweud yn nhermau symlach? Newid cyfeiriad yn i 5. PULAK Goyal: Dydyn ni ddim newid cyfeiriad yn i 5. A rywfaint o gyfeiriad ynddo, sef y cyfeiriad y newidyn o ddiddordeb. Ac felly yr hyn yr ydym yn ei ddweud pan fyddwn yn dereference yw, nawr rydym am change-- rydym yn awr yn cyfeirio diddordeb y newidyn yn uniongyrchol. Ydy hynny'n gwneud synnwyr? SIARADWR 1: Ffordd arall o feddwl ohono'n go-- felly mae yn gyfeiriad. Mae'r seren yn dweud ewch i hynny yn mynd i'r afael ac edrychwch ar ei werth. Ac yn awr yn gosod ei werth i 5. Felly mae'n dweud, ewch i'r cyfeiriad x, a oedd yn yn mynd i fod yr hyn sy'n cael ei storio mewn, a'i newid i 5. PULAK Goyal: Yeah? GYNULLEIDFA: Felly mae'r sefyllfa yw lle pwyntydd yn mynd, y cyfeiriad. Ond mae'r gwerth yn cael ei neilltuo yn seiliedig ar y cyfeiriad werth. PULAK Goyal: Yeah. Unrhyw gwestiynau eraill am hyn? GYNULLEIDFA: Mae gennyf gwestiwn. PULAK Goyal: Yeah, mae'n ddrwg gennyf. GYNULLEIDFA: Felly pan fyddwch store-- felly os ydych yn ei ddweud [Anghlywadwy] a. PULAK Goyal: Ydw. GYNULLEIDFA: Oes rhaid i chi storio'r x gyda ampersand? Ni all pam yr ydych yn jyst dweud x cyn eich int [Anghlywadwy]? PULAK Goyal: So-- GYNULLEIDFA: [Anghlywadwy]. PULAK Goyal: Felly yw eich question-- oh. Felly eich cwestiwn yw, pam na all we-- i'r to_five swyddogaeth, pam na allwn ni dim ond pasio x, dde? GYNULLEIDFA: Iawn. PULAK Goyal: OK, ie, felly mae hyn eto mynd yn ôl at ein trafodaeth ar fathau. Felly mae'r to_five swyddogaeth yn awr disgwyl math o seren int. Felly beth yw'r math o x? X yn unig yw int. Ond beth mae hyn yn swyddogaeth yn disgwyl yn seren int. Felly mae'n disgwyl newidyn sy'n Mae gan gyfeiriad storio ynddo. Felly dyna sut you-- roi'r ampersand, ac felly dyna sut yr ydym yn pasio yn y cyfeiriad, sef now-- ac sy'n dehongli bod fel seren int, yeah. Cwestiwn mawr. Unrhyw gwestiynau eraill am hyn? OK, oer. Iawn, felly yn awr gadewch i ni siarad am rhifyddeg pwyntydd. Felly dyma, adio a thynnu ff addasu'r pwyntydd gan i gwaith maint y math o bytes pwyntydd. Felly gadewch i ni edrych ar sut mae hynny'n edrych fel. Felly dyma, rydym wedi datgan int x yn gyfartal â 5. Ac yn awr rydym yn mynd i ddatgan pwyntydd y, ac yn pasio yn y cyfeiriad o x yno. Felly mae gennym hynny. Felly x yn cael ei storio ar 0x04. Felly nawr y yn hafal i hynny. A gall rhywun ddweud wrthyf beth yw eu barn fydd yn digwydd pan rydym yn ei wneud y plws yn dychwelyd 1? Yeah? GYNULLEIDFA: A fydd yn newid i 0 gwaith 0 8? PULAK Goyal: Maint, a type-- GYNULLEIDFA: Rydych yn symud y cyfeiriad. PULAK Goyal: Yeah mae'n was-- ie. Hawl So--. Felly y bydd yn newid i 0x08. Ac because-- felly byddech yn defnyddio hyn fformiwla, 1 gwaith maint y pwyntydd ac mae'r awgrymiadau o size-- [MYFYRWYR Murmur] PULAK Goyal: Iawn. [MYFYRWYR Murmur] SIARADWR 1: Felly y math sy'n y pwyntiau pwyntydd canlynol-- PULAK Goyal: A yw, ie, yeah, dyna 4 bytes. SIARADWR 1: Felly ints 4 bytes. PULAK Goyal: Felly, os ydym a-- wedi gadewch i ni dweud ein datgan, mae'n debyg, yn torgoch. Beth fyddai'n that-- felly gadewch i ni ddweud ein bod rhaid x torgoch cyfartal i neu rywbeth. Ac rydym yn cael y cyfeiriad bod o 0x04, beth fyddai y plws yn dychwelyd 1 wneud nawr? Mae'n ddrwg gennym, beth? GYNULLEIDFA: 0x05. PULAK Goyal: 0x05, ar y dde. A yw pawb yn gweld hynny? OK, ac yn awr gadewch i ni ddweud ei fod yn arnofio. Beth fyddai'n digwydd? Dylai unrhyw un? Felly fflotiau yn faint o bytes? GYNULLEIDFA: 4 bytes. PULAK Goyal: Iawn. Felly byddai'n yr un peth â hyn. Cwl. OK, ac yn awr gadewch i ni siarad am awgrymiadau a arrays. Felly rydych yn gweld hyn ar y dwy set p blaenorol, lle y gallwn treat-- araeau hynny ac Nid yw arwyddion yn yr un peth. Ond gallwn drin araeau fel awgrymiadau. Felly dyma, mae gennym amrywiaeth hwn yma, sydd â thri slotiau. Yn yr ydym slot-- cyntaf gennych un, dau, a thri. Felly os we-- fel y gallwn aseinio hynny drwy ddweud, mae gennym amrywiaeth, dereference hynny. Ac yna pan fyddwn yn dereference hynny, yr hyn yr ydym yn ei wneud mewn gwirionedd yn cyfeirio at yr un slot. Felly amrywiaeth seren yn dychwelyd 1. Rydym could- sut y gallai byddwn yn ysgrifennu that-- beth sydd yn ffordd arall y gallem ysgrifennu hynny? GYNULLEIDFA: Array 0 gyfartal 1. PULAK Goyal: Yn union, mae pawb yn gweld hynny? Felly un peth â hwy yma. Felly, pan fydd gennym amrywiaeth ac 1, rydym yn do-- felly even-- cofiwch â rhifyddeg ein bod yn dim ond yn siarad am, pan rydym yn ei wneud ac 1 neu ei symud drosodd gan 4 bytes, ar y dde. A yw pawb yn gweld hynny? A dyna ochr, pan fyddwn yn dereference hynny, gallwn osod hynny i 2. A dyna sut yr ydym yn gosod y bloc nesaf i 2. Ac felly yn ffordd arall i ysgrifennu Byddai hynny hefyd yn braced array 0 braced yn dychwelyd 1. GYNULLEIDFA: Oes angen i'r cromfachau? PULAK Goyal: Ie, oherwydd eich bod yn dereferencing maint cyfan amrywiaeth ac 1. OK, ac un peth ar gyfer amrywiaeth a 2. Unrhyw gwestiynau am hyn? Yeah. GYNULLEIDFA: Felly amrywiaeth yn gosod yn awtomatig ar 0? PULAK Goyal: Array yw-- ddrwg gennym, beth? GYNULLEIDFA: Array yw 0. Gall y cyfeiriad o amrywiaeth yn unig yw 0. PULAK Goyal: Felly, y cwestiwn oedd, yn y cyfeiriad o amrywiaeth yn unig 0? Felly, na, array wedi rhai gyfeiriad. Felly, pan fyddwn yn dereference iddo, that's-- er mwyn i chi feddwl about-- yn llythrennol fel pwyntio pwyntydd i ddechrau arae. Felly sydd â rhyw gyfeiriad. Nid ydym yn gwybod beth ydyw. Ond pan fyddwn yn dereference iddo, rydym yn gwybod dyna ddechrau'r y rhesi. Ac felly pan fyddwn yn symud yn ôl 1, rydym yn unig yn symud gymharu â lle y cyfeiriad hwnnw yr oedd. Unrhyw gwestiynau eraill? Yeah? GYNULLEIDFA: Felly, os ydych yn ei wneud braced arae plws 1-- PULAK Goyal: Mae'n ddrwg gennyf, Gallai I-- ydych yn siarad i fyny? GYNULLEIDFA: Yeah, os ydych yn gwneud braced array [Anghlywadwy]. Felly, yna os byddwch yn rhoi'r pointer-- PULAK Goyal: Mae'n ddrwg gennyf, ni allaf eich clywed. Allwch chi ddweud ei fod yn un mwy o amser? GYNULLEIDFA: Rydych yn iawn. PULAK Goyal: OK, mae'n ddrwg gennyf. OK, oer. Any-- yeah. Felly, pan fyddwch yn mynd yn braced arae 3-- PULAK Goyal: Yeah. GYNULLEIDFA: --isn't there-- fyddai peidio fod pedwar smotiau tebyg i 0, 1, 2, a 3? Pam nad yw yw'n int array 2? PULAK Goyal: Na, felly dim ond y confensiwn C yw-- pan fyddwn yn datgan y casgliad, we-- y rhif rydym yn rhoi yno yw faint o slotiau yr ydym am. Ond mae'r mynegeion y rhesi yn mewn gwirionedd amrywiaeth 0, array 1, ac amrywiaeth 2. Felly dim ond y confensiwn ar sut yr ydym yn datgan arae. Yeah, unrhyw gwestiynau eraill? Yeah. GYNULLEIDFA: Felly, rydym yn dal i siarad am awgrymiadau, dde? PULAK Goyal: Yeah. GYNULLEIDFA: A allech chi dal i wneud seren ar gyfer amrywiaeth 0 yn dychwelyd 1? PULAK Goyal: Na, na, so-- OK, felly y cwestiwn oedd y gallai 'ch jyst yn gwneud braced array seren sero, ac yna yn dweud bod yn hafal i 1. Felly, na, yr hyn yr ydym yn ei ddweud yma yw ein bod yn gallu think-- gallwn drin araeau fel awgrymiadau. Felly, rydym yn have-- beth rydym yn ddywediad yw ein bod wedi dwy ffordd yn hyn gyfeirio at yr un bloc. Felly doing-- os oes gennych amrywiaeth sero, y math o hynny erbyn hyn yn int. Ac os ydych yn cymryd y seren honno, byddwch yn cael peth annilys. Felly, yr hyn yr ydym yn ei ddweud yma, yn mae dwy ffordd yn ail i gyfeirio at yr un bloc. Gallwch naill ai wneud amrywiaeth braced 0 yn dychwelyd 1. Neu gallwch wneud dereference array, ac mae'n rhaid bod yn hafal i 0. Felly, dim ond dwy ffordd o gwneud yr un peth. Yeah. GYNULLEIDFA: Pam nad yw'n maint y int 1 i ychwanegu canlynol-- PULAK Goyal: Maint y int 1. GYNULLEIDFA: Oherwydd dyna symud unwaith ac am byth. PULAK Goyal: Oherwydd dyna dim ond y ffordd C yn gweithio. Dim ond y ffordd y pwyntydd rhifyddeg yn cael ei ddiffinio. Bydd yn cymryd y pwyntydd. Ac yna beth bynnag yr ydych yn ychwanegu iddo, bydd yn lluosi hynny gan faint beth bynnag y siop pwyntydd yw, yeah. Yeah. GYNULLEIDFA: Felly yr ydych yn dweud y gallwn drin pwyntyddion a araeau yr un fath, ond eu bod yn wahanol. Felly beth sy'n eu gwneud yn wahanol? Beth allwn ni ei wneud â Ni un ond nid y llall? PULAK Goyal: At ddiben yr hwn dosbarth, yr wyf yn meddwl it's-- beth yn ei wneud you-- SIARADWR 1: Felly, we-- Iawn, felly, er enghraifft, os ydych yn dyrannu cof ac mae gennych pwyntydd i yn gyfanrif, er enghraifft. Os byddwch yn ceisio cychwyn gwneud rhifyddeg pwyntydd ac yn mynd y tu hwnt i'r swm o gof sy'n chi a ddyrannwyd, byddech yn rhedeg i mewn i wallau. Rydym yn gwybod gyda arrays, rydym yn dweud o flaen amser, OK, yr wyf yn eisiau allocate-- hyn yn y bôn yn dweud, yr wyf am i ddyrannu digon o le i dri gyfanrifau. Ac felly yn awr gallwn drin cof fel pe gennym yr holl tri o gyfanrifau hynny. A yw y math hwnnw o gwneud synnwyr? PULAK Goyal: Yeah. Yeah. GYNULLEIDFA: Felly seren amrywiaeth, yw bod aseinio 1 i 0 mynegai y rhesi? PULAK Goyal: Ydw. GYNULLEIDFA: Felly, beth yw ôl y dwy linell nesaf o ran the-- wyf yn deall eich bod yn ceisio i ddefnyddio rhifyddeg pwyntydd yma, ond unwaith eto, nid wyf yn deall pa pwyntydd rhifyddeg yn. Felly yr amrywiaeth ac 1, rydych yn gan ddweud eich bod yn awr mynd i eisiau i siarad am y mynegai cyntaf i mewn i'r casgliad. PULAK Goyal: Iawn, ac felly mae'r rheswm sy'n gweithio yn array, yma, gallwn feddwl fel seren int. Ac felly pan fyddwn yn pwyntydd rhifyddeg arno, cofiwch y fformiwla lle rydym yn cymryd the-- Amcana beth bynnag yw'r cyfeiriad cyfredol yn, ac yna pan rydym yn ychwanegu 1 iddo, yr ydym mewn gwirionedd lluoswch 1 yn ôl maint y peth rydym yn trin. Felly, yn yr achos hwn, mae'r maint o int. Ac yna rydym yn symud ymlaen gan bod llawer. SIARADWR 1: Felly esgus mae gennych seren b arae. PULAK Goyal: OK, yeah. SIARADWR 1: Gyda eich llaw. Ewch yma. PULAK Goyal: Neu gallaf just-- yeah. Iawn felly Yma--, felly array yn y dechrau, yn unig iawn yma. Felly, pan fyddwn yn dereference array, roeddem dim ond cyfeirio at y bloc cyntaf yma. Ond yn awr pan fyddaf yn gwneud amrywiaeth ac 1, bod yw-- y saeth yn awr yn iawn yma. Ydy hynny'n gwneud synnwyr? Iawn, oherwydd bloc mae hyn yn o int maint, sydd 4 bytes. Ac felly, yr hyn yr ydym yn ei wneud yw ein bod symud y pwyntydd 4 bytes drosodd. Pryd bynnag rydym yn ei wneud rhifyddeg arno, bydd yn wastad ei symud fesul hicyn o 4 bytes. Oherwydd bod hyn yn debyg i seren int. A yw hynny'n gwneud synnwyr? IAWN. GYNULLEIDFA: Felly mae'r pethau yn y rhesi Roedd 5 bytes, byddem yn symud 5 bytes-- PULAK Goyal: Iawn, felly os ydym wedi cael seren torgoch, byddem yn symud erbyn 1 beit yn unig. Felly, yn achos sêr torgoch, Id 'i jyst yn symud drosodd gan 1. GYNULLEIDFA: Er mwyn cael y nesaf y byddwch angen seren. PULAK Goyal: Ie, ie, mae hynny'n gwneud synnwyr? SIARADWR 1: Gallwn sgwrsio am y peth yn fwy yn ddiweddarach. PULAK Goyal: Ie, ie, yn sicr. OK, oer. Gadewch i ni symud ymlaen i'r adran nesaf. SIARADWR 1: O, OK oeri. Yeah, dyna fi. Mae pob hawl, awesome. OK, oer, felly erbyn hyn rydym yn i ychydig bach gwybodaeth fwy cyffredinol am y cof. Hefyd, yr wyf yn gwerthfawrogi'r ffaith bod yr oeddent yn mynd yn eithaf cyflym. Mae'n llawer o ddeunydd i gael drwy mewn awr a hanner. Ond os oes unrhyw bynciau yr ydych am fynd manylach i mewn i, rydym yn mynd i gael oriau swyddfa yr wythnos hon lle y gallwch chi sgwrsio gyda ni un ar un. Neu fe allech chi jyst yn dod i fyny yn y yn dod i ben a byddwn yn sgwrsio am bethau. Ac fel bob amser, yn teimlo rhad ac am ddim i ofyn cwestiynau. Awesome. Felly dyma ein llun o gof sy'n rydym wedi gweld mewn darlith biliwn o weithiau. A gwyddom fod pentwr hwn tyfu i fyny o'r gwaelod ac mae'r domen yn tyfu i lawr. A beth yw'r gwahaniaeth rhwng pethau ein bod yn cadw ar y domen a phethau ein bod yn cadw ar y pentwr? Rhywun taflu rhywbeth i maes 'na. Yeah. GYNULLEIDFA: A yw'n dal dŵr am bethau sydd yr un newidynnau impermanent ein bod yn unig datgan gan ddefnyddio swyddogaethau penodol? SIARADWR 1: Beautiful, yeah. Felly unrhyw adeg lle, gadewch i ni dweud ein bod mewn swyddogaeth, ac rydym yn unig rhaid i rai newidynnau lleol. Mae'r rhai yn mynd i roi diwedd ar i fyny ar y pentwr. Os, yn lle hynny, rydym yn galw malloc ac mewn gwirionedd yn dyrannu cof, sydd bob amser yn dod o'r domen. Felly, yeah Cool? Ac felly cofiwch y bydd unrhyw gof eich bod yn clustnodi hyd defnyddio malloc, sy'n mynd i roi diwedd ar i fyny ar y domen. Ac os byddwch yn anghofio i mae'n rhad ac am ddim, y cyfrifiadur Nid yw mynd i wybod bod rydych yn ei wneud ag ef. Felly, 'i' jyst yn mynd i hongian allan yna yn y cof. Ac rydych yn y bôn gollwng y cof. Rydych yn colli ei. Oherwydd eich bod byth yn dweud wrth y cyfrifiadur, hey dwi'n ei wneud ei ddefnyddio, mae croeso i ddefnyddio, roi pethau eraill yno. Cwl. Unrhyw gwestiynau yno? Ydw. GYNULLEIDFA: Felly pa fath o gof yw pentwr? Bwyd anifeiliaid nad ydynt yn ddeinamig, eu dirprwyo? Beth fyddech chi'n ei alw? SIARADWR 1: Cadarn, felly gallech yn meddwl am y peth fel newidynnau lleol. Galwadau gwirioneddol i swyddogaethau yn mynd i dal dŵr. Unrhyw beth arall? Yeah? GYNULLEIDFA: Sut ydych chi'n rhad ac am ddim y cof ei ychwanegu i the-- SIARADWR 1: Cadarn, felly pan fyddwch yn dyrannu cof ar y domen, byddwch yn ffonio malloc. Ac felly, yna sy'n rhoi yn ôl i chi yn Pointer i ryw gyfeiriad yn y cof. Felly, yn dweud eich enw fod pwyntydd, dde? Yna, 'ch jyst dywedwch pwyntydd rhad ac am ddim. A bod yn rhyddhau y cof. Cwl. Cwestiynau eraill? Ydw. GYNULLEIDFA: Beth mae ddyrennir yn ei olygu ddeinamig? SIARADWR 1: ddyrannwyd ddeinamig yn golygu, yn ystod eich rhaglen. Felly, pan fyddwch yn galw malloc mewn ganol eich rhaglen, ar ddechrau'r rhaglen, does dim ddyrannu cof. Ac fel y cyfrifiadur gam drwy'r cod, mae'n mynd i ddyrannu cof. Felly dyna beth rydym yn ei olygu wrth ddynamig. Cwestiwn da. Yeah? GYNULLEIDFA: Pan fyddwch yn diffinio amrywiaeth gyda'r cromfachau sgwâr, yn gwneud hynny yn dal i [Anghlywadwy]? SIARADWR 1: Mae hynny'n gwestiwn da. Yr wyf yn meddwl pan fyddwch yn dyrannu amrywiaeth, mewn gwirionedd mae'n ei rhoi ar y corn. Dydw i ddim yn gadarnhaol am hynny, felly peidiwch â dyfynnu mi. SIARADWR 2: Yr wyf yn meddwl iddo-- yeah ei fod yn rhoi ar y corn. SIARADWR 1: Rhoi ar y corn. OK, oer, gadarnhau. Cwestiynau eraill? Yeah? GYNULLEIDFA: Pan fyddwch yn dirprwyo malloc, Nid yw y cyfrifiadur yn awtomatig dyrannu cof ar gyfer eich newidynnau? SIARADWR 1: Yeah, ar gyfer eich newidynnau lleol, mae'n rhoi yn awtomatig cof ar y pentwr. GYNULLEIDFA: Felly beth yw'r pwynt o ddefnyddio malloc? SIARADWR 1: Beth yw'r pwynt o ddefnyddio malloc? Felly rydym yn gweld criw o enghreifftiau, fel, er enghraifft, defnyddio cyfnewid, lle rydym eisiau cwmpas y newidyn i fod yn rhywbeth y tu hwnt dim ond ei swyddogaeth galwadau. Ac rydym am rywbeth ein bod yn gallu pasio o gwmpas ac y gallwn gael gafael ar o wahanol leoedd. Dyna lle y byddem yn dymuno rhoi cof ar y domen. Fel bod y rhain i gyd yn wahanol Gall swyddogaethau gael gafael arno. GYNULLEIDFA: Allwch chi jyst egluro hynny? SIARADWR 1: Felly un opsiwn yw-- felly mae'r cwestiwn oedd, gallwn jyst allocate-- ddrwg gennym, allwn ni ddatgan newidyn byd-eang, yn y bôn. Dyna un opsiwn. Ond gyda llawer o'r rheini, y rhai yn tueddu i ca 'n sylweddol anniben. Ac rydym yn gyffredinol yn meddwl o'r cynllun mor ddrwg. Yeah. Cool, unrhyw gwestiynau eraill? Awesome. OK, gan symud ymlaen. Felly, mae hyn mewn gwirionedd sut yr ydym yn dyrannu cof. Rydym yn siarad am hyn ychydig bach. Rydym yn defnyddio swyddogaeth hon a elwir yn malloc. A ydych yn dweud ei fod faint o bytes mewn cof, felly faint o bytes ar y domen, ydych ei eisiau. Ac mae'n mynd i ddychwelyd y cyfeiriad, felly pwyntydd i, darn o gof ei fod yn dyrannu ar eich cyfer. Felly y math yn mynd i fod seren ddi-rym. Mae'n mynd i fod yn pwyntydd i beth bynnag y byddwch yn penderfynu oedi mewn 'na. Unrhyw bryd y byddwch yn galw malloc, dywedasom eisoes rhaid i chi ei rhyddhau ei felly rydym Nid oes rhaid i gollwng cof. Beth yw'r peth arall bod chi'n hollol rhaid i ni wneud pob un tro y byddwch yn ffonio malloc? OK, rhaid i chi ei rhyddhau iddo. Beth yw'r peth arall? Gwiriwch am null, hardd. Felly, ie, ei fod yn iawn mae i fyny ar y bwrdd. Os ydych yn ceisio i ddyrannu cof ac yr ydych wedi dim gof ar ôl, y cyfrifiadur yn mynd i ddweud, Nid oes gennyf ddim i'w roi i chi. Ac mae'n rhoi yn ôl null chi. Cwestiynau ar hynny? Yeah. GYNULLEIDFA: Pam y byddai chi erioed wedi eisiau ddatgan pwyntydd â math penodol pryd y gall seren ddi-rym drin pob math pwyntydd anyways? SIARADWR 1: Cwestiwn da. Pam y byddem yn dweud seren int yn hytrach na i wag seren pryd y gall seren ddi-rym trin popeth? Felly, nid ydym am byth cast awgrymiadau benodol. Mae'n arfer gwael yn unig. Ond byddwn yn siarad am sêr int yn union fel dealltwriaeth o, mae hwn yn pwyntydd i cyfanrif. GYNULLEIDFA: OK. SIARADWR 1: Yeah, ac mae'n caniatáu chi drin gwerthoedd ynddo fel cyfanrifau. GYNULLEIDFA: O, OK. Ac ni fyddai seren ddi-rym gadael i chi wneud hynny? SIARADWR 1: Mae'n dibynnu ar y cyd-destun Yeah, felly peidiwch â phoeni peidiwch â phoeni gormod am y math yno. Dim ond yn gwybod bod, yn gyffredinol, malloc yn dychwelyd pwyntydd i rywbeth. Cwestiwn da. GYNULLEIDFA: Pam ydych chi luosi'r mae'n amser 10? [Anghlywadwy]. SIARADWR 1: Cadarn, felly roeddwn yn unig gwneud esiampl hap yma lle Roeddwn i eisiau i ddyrannu digon lle i storio 10 o gyfanrifau. Dim ond dewis ar hap. Yeah. Yeah, beth sydd i fyny? GYNULLEIDFA: Beth i'w wneud olygu wrth wirio am null? Ydych chi eisiau edrych ar y pwyntydd dros null neu'r malloc? SIARADWR 1: Ydw, yn union. Felly, y cwestiwn oedd, beth ydym yn ei olygu drwy siec gan null? Rydym am i'r canlynol-- unrhyw bryd rydym yn galw malloc ac rydym yn dychwelyd pwyntydd, yr ydym am ei ddweud, yn pwyntydd cyfartal i null? Felly llythrennol PTR. A yw PTR cyfartal i null. Ydw. GYNULLEIDFA: Felly, yr oeddwn yn garedig o rhyfeddu, os ydych yn ymgychwyn y pwyntydd i mewn i malloc, yn gwneud mae'n tynnu sylw at ddechrau'r malloc? Oherwydd os ei fod yn array-- SIARADWR 1: Dyna gwestiwn mawr. Yeah, os byddwch yn ffonio malloc, mae'r pwyntydd y iddo-- gadewch i ni ddweud, felly dyma yr ydym yn dyrannu 10 bytes o gof. Felly, mae'n ddrwg gen i, yn ddigon lle i 10 o cyfanrifau, ydym yn mynd i gael y cyfeiriad y darn cyntaf o'r cof. Dyna gwestiwn da. Yeah. GYNULLEIDFA: Drwy ddyrannu 10 cyfanrifau eang, Gallai chi mewn gwirionedd yn defnyddio hynny pwyntydd fel like-- bron fel amrywiaeth o gyfanrifau? SIARADWR 1: Yeah, felly gallwch ddefnyddio fel amrywiaeth o gyfanrifau? Yeah, yn union, mae hyn yn beth Pulak unig yn dangos i chi on-- gwpl sleidiau yn ôl, lle rydym yn dweud, iawn, mae hyn yn 'n sylweddol yn unig fath o- ydym Gellir meddwl amdano fel amrywiaeth o 10 o gyfanrifau. 'I jyst yn digwydd bod ar y domen. GYNULLEIDFA: Ond nid gallech mynediad 'i ag nodiant braced sgwâr? SIARADWR 1: Rydych mewn gwirionedd yn gallu cael mynediad 'i ag nodiant braced sgwâr, yeah. Gallwch eu trin yr un fath. Ydw. GYNULLEIDFA: Pam y byddai pwyntydd byth null? SIARADWR 1: Pam y byddai pwyntydd byth null? Os byddwch yn defnyddio i fyny i gyd y cof ar eich tomen. Os yw eich rhaglen yn bwyta i fyny, bwyta i fyny, bwyta i fyny cof, a does dim byd chwith, yna malloc yn mynd i say-- os byddwch yn dweud, Rwyf am 100 yn fwy bytes, mae'n mynd i ddweud, nid oes gennyf 100 bytes. Dyma null. Mae hynny'n golygu, yr wyf yn methu. Ydw. GYNULLEIDFA: Os felly, null yn ddim, dde? SIARADWR 1: Ie, yn y achos, yn ddim null. Nid oes gennych unrhyw gyfeiriad. Nid oes unrhyw gof. Mae pob hawl, gan symud ymlaen. OK, gadewch i ni siarad yn gyflym iawn am gorlif byffer. Pryd y gallwn ddod ar eu traws byffer gorlifo? Lets 'ddeud gennym a-- rydym dyrannu darn o gof, ac rydym yn mynd i ysgrifennu'r llinyn yn. Ac rydym yn mynd i ddweud, OK, dw i'n mynd i ddyrannu digon o le i chwe nod. Ac yr wyf i'n mynd i ofyn y defnyddiwr ar gyfer rhywfaint o gyfraniad. Ac mae'r mewnbynnau defnyddiwr, er enghraifft, helo. Ac mae hynny'n cyd-fynd yn berffaith dirwy oherwydd ein bod wedi lle ar gyfer yr holl gymeriadau o helo, a chymeriad terfynu null. Digon o le, dim problem. Ond beth os ydym yn rhoi'r cyfle ar gyfer defnyddiwr drwg i ddefnyddio ein rhaglen, ac maent deipio i mewn Nid yw chwe chymeriad, neu beidio pum cymeriad, ond miliwn. Maent yn cadw teipio, a theipio, a teipio, beth sy'n mynd i ddigwydd? Wel byddwn ond yn rhoi'r enough-- cyfrifiadur neu ddrwg gennym, rydym yn unig yn rhoi llinyn hwn digon o le i 5 gymeriadau. Felly, rydym yn mynd i gael rhywbeth fel hwn, pan fo'r person drwg pwy yw Gall teipio mewn mewnbwn trosysgrifo maint y byffer, ac yn gallu mynd mewn gwirionedd heibio y swm a 'i' a ddyrannwyd yn wreiddiol. Ac yna beth allwch ei wneud, mae'r beth 'n sylweddol drwg y gallwch ei wneud, yw ysgrifennu dros y cyfeiriad dychwelyd. Pa bôn yn golygu gallwch fath o gymryd rheolaeth ymddygiad y rhaglen. Felly, ar lefel uchel iawn gorlif byffer yw pan byddwch yn dyrannu rhai swm o gof. Ac yna you-- hyn oherwydd eich bod yn cymryd mewnbwn defnyddwyr neu rywbeth fel that-- chi fynd dros y terfynau o'r hyn yr ydych wedi ei ddyrannu yn wreiddiol a dechrau chwarae o hyd eich rhaglen. Do? GYNULLEIDFA: Pam na fyddai hynny yn unig dychwelyd nam segmentu? SIARADWR 1: Pam na fyddai hynny dychwelyd nam segmentu? Y gallai. Weithiau, bydd y compiler neu yn ystod un o'ch runtime mewn gwirionedd yn mynd i wirio bod. Os rai pethau'n digwydd, ac mae hyn yn fath o lefel is, yna mae angen i chi wybod. Ond os na fyddwch yn dylunio systemau hyn yn iawn, yna rydych yn cael y cyfle o beidio â dal ei, a dim ond gan ganiatáu i'r cyfrifiadur take-- y person drwg i reoli eich cyfrifiadur. Yeah. GYNULLEIDFA: [Anghlywadwy]? SIARADWR 1: Cadarn. Oh, pan fyddaf yn dweud byffer, Fi jyst yn golygu y faint o gof eich bod chi wedi dyrannu. Felly dyma dywedais, oh, rydym wedi dyrannu chwech char-- digon o le i chwe nod. Ac yr wyf yn jyst yn galw bod fy byffer lle y gallwn i ysgrifennu gwybodaeth. Yeah. Unrhyw gwestiynau eraill am hyn? Yeah. GYNULLEIDFA: Sut ydych chi roi'r gorau iddo? Sut ydych chi roi'r gorau iddo? SIARADWR 1: Cwestiwn Awesome. Sut ydych chi roi'r gorau iddo? Sut ydych chi'n atal gorlifo byffer? Wel un ffordd o wneud hyn yw rhywbeth fel GetString, lle'r ydym yn cynyddu yn gyson faint o gof yr ydym yn dyrannu os yw'r defnyddiwr yn mynd i mewn llawer o destun. Mae'r Peth arall yw, os ydych yn unig eisiau chwe cymeriadau, gwneud gwiriad cyflym. Dweud dim ond mewnbwn chwe chymeriad. Yeah. Felly, gadewch i ni ddweud eich bod yn gweithio on-- rydym yn mynd i fynd i'r stwff gwe ychydig yn ddiweddarach yn y course-- ond gadewch i ni dweud eich bod yn gweithio ar ffurflen, byddech dim ond cyfyngu ar faint y gallai rhoi i mewn. Yeah. GYNULLEIDFA: GetString tynnu cof o'r simnai, dde? Dim ond i egluro? SIARADWR 1: Un mwy o amser? GYNULLEIDFA: A yw GetString cymryd cof o'r pentwr? SIARADWR 1: Yr wyf yn credu Getm-- get int cymryd cof o'r domen am ei fod yn galw alloc. GYNULLEIDFA: Oh. IAWN. SIARADWR 1: Yeah, malloc a realloc. Cwestiynau eraill? Yeah. GYNULLEIDFA: Felly drwy ddiffinio maint y clustogi, eich atal rhywun rhag y gallu i chwistrellu cod sy'n gallu llithro heibio i [Anghlywadwy]. SIARADWR 1: Felly, trwy ddiffinio maint y byffer, yr ydych wedi dweud, OK dyma sut o gof gallwn eu defnyddio. Os ydych yn caniatáu i'r defnyddiwr i ysgrifennu drosto, yna rydych chi'n mynd i redeg i mewn i broblemau. Gwneud synnwyr. Awesome. Gadewch i ni symud ymlaen. Iawn. Wrth siarad am gamgymeriadau, dyma mae rhai negeseuon gwall cyffredin a allai fod wedi dangos i fyny pan oeddech yn codio, gweithio ar eich setiau problem. Siawns dda bod un o'r mae'r rhain yn dangos i fyny ar y cwis os flynyddoedd diwethaf yn unrhyw arwydd. Felly, atebion yn fath o i fyny yma ar y bwrdd. Ond mae croeso i weiddi mwy. Pam y gallai nam segmentu yn digwydd? Pam y gallai byddwch yn cael nam segmentu pan fyddwch yn rhedeg eich rhaglen? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Da. Yeah, os ydym yn ceisio mynediad cof nad yw wedi rhoi i ni. Os byddwn yn dereference pwyntydd nwl. Er enghraifft, os ydym yn galw malloc, ac yn anghofio edrych os yw'n null, ac rydym yn unig yn ceisio ei ddefnyddio, y cyfrifiadur mynd i roi nam segmentu ni. Da. Beth am ymhlyg datganiad o swyddogaeth? Beth yw ystyr hynny? GYNULLEIDFA: Rydych yn ceisio defnyddio swyddogaeth nad ydych wedi diffinio. SIARADWR 1: Da. Rydych yn ceisio defnyddio swyddogaeth nad ydych wedi diffinio. Fel y gallai fod yn un o ddau beth. Efallai roedd hi fel yr enghraifft Dangosodd Camille chi gynharach. A bod gennych brif swyddogaeth sy'n galw rhywbeth o'r enw ciwb. A gadewch i ni ddweud eich bod wedi anghofio i ysgrifennu prototeip hwn. Yr ydych wedi anghofio dweud, hey cyfrifiadur, Mae gen i swyddogaeth hon a elwir ciwb. Byddwch yn gweld yn nes ymlaen. Lets 'ddeud ydych wedi anghofio i ysgrifennu'r prototeip, efallai y byddwch yn cael y gwall hwn. Peth arall yw, gadewch i ni ddweud Ydych chi wedi ceisio i ddefnyddio printf, ac anghofio cynnwys y llyfrgell safonol, Yna, mae'n mynd i ddweud ymhlyg datganiad o swyddogaeth. Ac yn olaf, ond nid y lleiaf, dynodwr heb ei ddatgan. Yeah. GYNULLEIDFA: Mae gen ti broblem cwmpas. Fel efallai eich bod yn ceisio ei ffoniwch newidyn lleol sy'n mewn math gwahanol o ardal. SIARADWR 1: Great, felly os oes gennych chi newidyn nad dyna eu cwmpas, ac rydych yn ceisio ei ddefnyddio, ydych yn mynd i fynd i mewn trafferth. Ac yn union yn fwy cyffredinol, gadewch i ni ddweud byddwch yn ceisio defnyddio x, gyda byth yn dweud int x yn hafal 5, yna rydych chi'n mynd i redeg i drafferth. Esgusodwch fi, cwestiynau am hyn? Awesome, chugging i'r dde ar hyd. OK, recursion, pam might-- gadewch i ni see-- Collais fy sch-- oh dyma ni, ond gwnewch yn siŵr ein bod ni yn fras ar amser. Mae pob hawl, oer. OK, recursion, y syniad cyffredinol o recursion, swyddogaeth ailadroddus yn swyddogaeth sy'n galw ei hun. Iawn, felly dyna beth yr wyf yn olygu wrth cysyniad rhaglen lle swyddogaeth galw ei hun. Beth fyddai some-- beth 'na rheswm da i ddefnyddio recursion? Pryd y gallai fod yn ddefnyddiol? Neu whats rhaglen sydd wir yn cynnig ei hun i recursion? GYNULLEIDFA: Chwilio Binary. SIARADWR 1: chwilio deuaidd cynnig ei hun i recursion, oherwydd bod gennych broblem hon sy'n eich Gall torri i lawr yn ddarnau llai, a pherfformio yn barhaus yr un algorithm arno. Mae hyn yn arwain at, mewn llawer o achosion, yn fwy cod cain sy'n fwy manwl gywir. Rydym yn unig yn yr enghraifft chwilio deuaidd. Enghraifft arall yw uno fath. Weithiau, pan fyddwch yn meddwl am algorithm, fel ffactoraidd, 'i jyst yn teimlo'n recursive, dde? Oherwydd ein bod yn gwybod bod y ffactoraidd o 5 yn ffactoraidd 4 gwaith 5. Ac felly pan fyddwch yn sefydlu problem y ffordd honno, 'i jyst yn teimlo ailadroddus. Felly byddai hynny'n ffordd wych i ysgrifennu iddo. Cwestiynau? Ydw. GYNULLEIDFA: Beth yw achos sylfaenol? SIARADWR 1: O beth 'na achos sylfaenol? Dywedais, peidiwch ag anghofio i gynnwys achos sylfaen. Lets 'ddeud ein bod yn ysgrifennu swyddogaeth ffactoraidd, ac yr oeddem yn gwneud ffactoraidd o 5. Ac rydym yn gwybod ffactoraidd o 5 yn 5 gwaith ffactorial o 4, blah, blah, blah, blah. Sut ydym yn gwybod pryd i roi'r gorau iddi? Sut ydym yn gwybod ein bod yn mewn gwirionedd yn cael nifer? Oherwydd os ydym yn cael eu cadw yn galw ffactoraidd, Yna byddem yn byth yn cael ateb, dde? Felly, pan ydym yn gwybod sut i stopio yn yr enghraifft ffactoraidd. Gall unrhyw un, yeah. GYNULLEIDFA: Pan fydd y 1 ffactoraidd yw 1. SIARADWR 1: Da. Felly, rydym yn gwybod. Gallwn gymryd yn ganiataol bod 1 ffactoraidd yn hafal i 1. Felly, os ydym yn cyrraedd y pwynt lle rydym yn galw ffactoraidd ar 1, dim ond mynd yn ei flaen ac yn dychwelyd 1. A dyna eich achos sylfaenol. Gan ein bod yn gwybod ar ôl i ni gyrraedd hynny, a byddwn bob amser yn taro hynny, byddwn yn never-- ni fyddwn yn unig yn dal i fynd am byth. Unrhyw gwestiynau eraill ar recursion? Ydw. GYNULLEIDFA: Felly pan fyddwch yn dychwelyd 1, 'i jyst yn awtomatig Bydd atal y rhaglen, dde? SIARADWR 1: Yeah, felly pan fyddwch yn yn galw dychwelyd 1, Os-- gadewch i ni ddweud, gadewch i ni ddweud ffactor o 2 alwad ffactorial o 1, ffactoraidd o 1 Bydd jyst roi yn ôl 1. Ac yn awr y bydd ffactorial o 2 yn dweud OK, 2 Amseroedd 1 yw 2, ac yn dychwelyd yr ateb hwnnw. Ydw. GYNULLEIDFA: Oes rhaid i ni boeni am cwmpas yn recursion pan fyddwch yn mynd i mewn i algorithm? SIARADWR 1: Ah, ie. Oes, oes rhaid i chi boeni am cwmpas yng nghyd-destun dychweliad. Felly, dim ond y newidynnau a ddiffiniwyd yn y rhediad o swyddogaeth yn mynd i fod yn ddefnyddiol. Yeah gwestiwn da. Mae pob hawl, gadewch i ni gadw symud ar hyd. Oherwydd ein bod yn cael llawer o deunydd i gael drwy. Ond fel y dywedais, mae croeso i daro i fyny oriau swyddfa, neu ni ar ôl y ffaith. Mae hyn yn unig yw sleid wirioneddol gyflym. Rydym yn dysgu llawer am chwiliadau a math. Os gwelwch yn dda, os gwelwch yn dda, os gwelwch yn dda, adrannau hyn yn ar-lein, Yr wyf yn credu mewn cs50.net/quizzes. Felly ewch cymryd siart hwn a roi ar eich taflen adolygu, oherwydd bydd cwestiwn ar hyn. Peidiwch gael yn anghywir. Dim ond yn gyflym iawn, beth y siart mae hyn yn golygu, a yw'n sôn o tua fawr, yr ydym yn gwybod i fod yn rhan uchaf rhwymo o algorithmau amser rhedeg. Ac mae gennym omega, sef mynd i fod yr isaf rhwymo Rhedeg o algorithmau. IAWN? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Yeah, beth yw'r peth olaf? Beth sy'n theta? Mae'n os we-- ydym yn unig yn mynd i yn poeni am yn y dosbarth hwn yn yr achos lle mae ein uchaf rhwymo a ein is rwymo yr un fath. Yeah, dyna'r unig amser mae'n mynd i ddod i fyny yn y dosbarth hwn. OK, dw i'n mynd i ddal ati. Os nad ydych wedi cymryd eich llun, Rwy'n addo y bydd y rhain fod ar-lein. OK, anhygoel, structs. Pam y gallai rydym am structs? Beth yw rheswm defnyddiol efallai y byddwn am i structs. Rhywun yn gweiddi rhywbeth allan. Wel gadewch i ni edrych ar y enghraifft ar y bwrdd. Lets 'ddeud rydym yn delio gyda phob un o'r myfyrwyr hyn. Os ydym yn gwneud rhaglen ar gyfer CS50, mae 800 o bobl yn hoffi. Mae angen i ni write-- rydym yn mynd i Mae angen i drin llawer o wybodaeth am fyfyrwyr. Byddai'n braf pe gallem fath o grŵp this-- holl wybodaeth sydd wedi ei wneud gyda fyfyriwr arbennig i mewn i un math data. Ond rydym yn gwybod nad oes data deipio enw, Myfyrwyr, dde? Mae gennym yn gyfanrif, mae gennym fflôt, mae gennym llinyn, neu seren golosg, ond nid oes gennym, yn fyfyriwr. Felly gallwn ei wneud yw mewn gwirionedd yn fath o ddiffinio ein strwythur ei hun, ei alw'n myfyrwyr, a gallwn gysylltu rhai gwahanol feysydd gyda'r struct. Felly, yn yr achos hwn, gadewch i ni yn dweud bod gennym myfyrwyr. A'r pethau yr ydym yn gofalu am yw'r rhif adnabod myfyriwr ac enw'r myfyriwr. Ac yn awr y gallwn gysylltu ID hon ac enw hwn gyda myfyriwr a roddwyd. Felly, gadewch i ni weld rhai enghreifftiau. Iawn, felly dyma yr wyf yn ei ddweud, OK, gadewch i ni dweud rydym am wneud yn fyfyriwr. Yr wyf yn ei alw ef yn fyfyriwr 1. A'i rhif ID, yn yr achos hwn, gallwn gael mynediad gan dim ond gwneud enw'r myfyriwr dot y cae rydym am i gael mynediad. Felly, mae hyn yn mynd i ddim ond fod yn fyfyriwr 1 dot ID, ac yr ydym yn ei osod yn hafal i 1. Oherwydd cofiwch, rydym yn dweud bod ID yn mynd i fod yn gyfanrif. Ac yn yr un modd iawn, gallwn ddweud, mae hyn yn Enw'r myfyriwr yn mynd i fod Davin, er enghraifft. Felly gallwn jyst gael mynediad cae o struct ddefnyddio'r dot hwn. Cwestiynau ar hynny? Yeah. GYNULLEIDFA: A oes unrhyw ffordd i ddiogelu eich newidynnau? A oes unrhyw ffordd i ddiogelu newidynnau rhag cael mynediad yn allanol? SIARADWR 1: A oes beth bynnag i ddiogelu eich newidynnau rhag cael mynediad yn allanol? Nid yn y cwmpas CS50. Cwestiynau eraill? Yeah. GYNULLEIDFA: Beth yw typedef struct? Beth yw ystyr pob cydran? SIARADWR 1: Ah, beth yw typedef struct? Beth mae pob cydran yn golygu o hyn guy? GYNULLEIDFA: Yeah. SIARADWR 1: OK, oer. Felly, mae hyn yn dweud, hey cyfrifiadur, yr wyf yn am greu strwythur newydd. Ac yr wyf i'n mynd i ddiffinio diffiniad ar ei gyfer, fel y gallwn i ei defnyddio fel pe bai'n math drwy gydol fy rhaglen. Iawn, felly yr wyf am i ddiffinio strwythur. A dwi'n awr yn mynd i fod yn gallu ei ddefnyddio fel math. Ac mae ei enw i yw myfyrwyr. A dyma yw ei feysydd. GYNULLEIDFA: Felly yw bod typedef struct [Anghlywadwy]? SIARADWR 1: Os ydych am fod yn gallu Defnyddiwch struct hwn drwy gydol eich rhaglen, ac yn y rhan fwyaf o achosion yn CS50 ydym yn gwneud hynny, mae'n rhaid i ni ddweud math Def. Ac mae hynny'n ei alluogi i ddefnyddio yr un fath ffordd a ddefnyddiwn fel int neu arnofio. Mae'r cyfrifiadur Bydd bob amser yn gwybod beth ydyw. Yeah. GYNULLEIDFA: Allwn ni ysgrifennu hyn yn y ffeil flaen? SIARADWR 1: O, sori. Ydyn ni'n ysgrifennu hyn yn y ffeil flaen? Gallech ysgrifennu hyn ar ben eich rhaglen, ar frig eich rhaglen c. Yeah, dyna fyddai'r mwyaf lle rhesymol ar ei gyfer. Yn ôl yno. GYNULLEIDFA: Yr un cwestiwn, felly cyn brif? SIARADWR 1: Iawn, mae angen i hyn fod rhywle y gall pawb gael mynediad ato. Felly, cyn brif yn eich achos, yeah. GYNULLEIDFA: A oes gwahaniaeth rhwng rhoi i fyfyrwyr ar y top ac ar y gwaelod? SIARADWR 1: Ah, a oes gwahaniaeth rhwng rhoi i fyfyrwyr ar ei ben neu ar waelod? Let-- achub y cwestiwn hwnnw, ac pan fyddwn yn cyrraedd rhestrau cysylltiedig, byddwn yn gweld hynny, OK? Felly ddal gafael ar hynny am eiliad. Y peth olaf yr wyf am grybwyll yma, yn lle cael strwythur, mae gennym pwyntydd i strwythur, gallwn ni newid ein nodiant i fod ychydig yn brafiach. Gallwn ddweud, gadewch i ni ddweud bod gennym Pointer i fyfyriwr yn hytrach na dim ond yn fyfyriwr. Os ydym am fynediad i gae, yn hytrach na wneud, yn dda mynd dereference y pwyntydd, ac yna gael mynediad i'r enw maes. Mae'r nodiant yn edrych ychydig yn anniben gyda'r seren yn dot hwn. Hollol gywir, ond yn fath tramwy glanach i wneud hynny, yw dim ond i ddweud enw arrow pwyntydd. A bod mewn gwirionedd yn cyfuno dereferencing a chael mynediad mewn un symbol hardd. Cwestiynau ar hynny? GYNULLEIDFA: Dim ond dweud bod un yn fwy o amser. SIARADWR 1: Dywedwch fod un mwy o amser. GYNULLEIDFA: Yn union yr hyn yr ydych newydd ei ddweud. SIARADWR 1: Cadarn, yn union yr hyn yr wyf newydd ei ddweud. Os oes gennym pwyntydd i fyfyriwr yn hytrach na bod y myfyriwr ei hun, rydym can-- un ffordd y gallwn gael mynediad i'r maes yw dereference iddo, ac yna Enw'r mynediad. , Ffordd brafiach arall yr ydym yn gallu ei wneud, sydd ychydig ychydig o siwgr cystrawennol, yn unig i wneud pwyntydd enw saeth. A bod yn mynd i gyfuno'r dereferencing a'r cyrchu. Yeah, 'n bert oera. Iawn. Felly, gadewch i ni siarad am y cwestiwn arall. Gadewch i ni neidio i'r nodau, yr ydym yn mynd i ddefnyddio mewn rhestrau cysylltiedig mewn dim ond eiliad. Felly dyma, byddwch yn sylwi bod yna yw'r gair nod y ddau ar y gwaelod, ac ar y top. O'r blaen, pan oeddem yn diffinio myfyrwyr, rydym yn unig oedd gan y myfyrwyr ar y gwaelod. Nid oedd gennym myfyrwyr ar y brig. Unrhyw un yn gwybod pam y gallai hynny fod? Beth yw'r gwahaniaeth? Yeah. GYNULLEIDFA: Felly rydych yn ei ddefnyddio nod yw'r diffiniad o nod, felly mae'n beth ailadroddus? SIARADWR 1: Da. Yeah, mae angen ein nodau i rhaid pwyntydd at ganolfannau eraill. Felly, gan ein bod yn defnyddio'r math hwn cyn ei diffinio'n mewn gwirionedd, mae angen i ni roi ar y brig yn union fel y mae'n gwybod beth ydyw. GYNULLEIDFA: Felly, rydym yn dal i ei angen ar y gwaelod? SIARADWR 1: Ydw. GYNULLEIDFA: Felly bob amser ar y gwaelod. SIARADWR 1: Bob amser ar y gwaelod. Felly, i gyd eich un chi bydd rhaid iddo ar y gwaelod. Unrhyw gwestiynau eraill? Mae pob hawl, felly yn gadael i mewn gwirionedd yn siarad am gysylltu rhestri yn gyflym iawn. Felly rhestrau cysylltiedig yw-- rydym yn eu defnyddio yn hytrach na araeau mewn rhai achosion, oherwydd gwyddom fod araeau yn hyd penodol, tra bod rhestrau cysylltiedig gallwn dyfu ac yn crebachu wrth i ni ei eisiau. Felly, mae hyn yn enghraifft o'r hyn y Efallai y rhestr cysylltiedig edrych. Yr hyn mae angen i ni weld yw pennaeth y rhestr. Felly, ble mae'r rhestr yn dechrau. Ac yna efe a nôd, pob un nod dilynol, yn gyfrifol am wybod lle bo'r nod nesaf yw. Felly, yn yr achos hwn, y nôd sy'n storio 1 yn gyfrifol am wybod ble 3. Mae'r person sy'n storio 3 yw yn gyfrifol am wybod ble 9 yw. Ac 9 Nid oes neb arall i bwyntio at. Mae'n y diwedd y rhestr, felly mae'n jyst dweud null. IAWN? GYNULLEIDFA: Beth yw pwynt hyn? SIARADWR 1: Beth yw pwynt hyn? GYNULLEIDFA: Yeah. SIARADWR 1: Oherwydd, gadewch i ni dweud bod gennym rywfaint o ddata. Ac nid ydym yn gwybod yn union sut llawer o ddata yr ydym am o flaen amser. Felly, gydag amrywiaeth, gadewch i ni ddweud lle'r ydym eisiau gyfrif pobl yn y rhes gyntaf. Tebygolrwydd yw nid yw'n mynd i newid. Allwn ddweud, OK, yr wyf yn eisiau amrywiaeth o faint chwech. Ond os ydym am rywbeth mae hynny'n mynd i newid. Er enghraifft, gadewch i ni ddweud oeddwn yn ceisio i gadw golwg ar y myfyrwyr gan eu bod yn dod i mewn i'r ystafell ar gyfer y sesiwn adolygu. Nid oes gennyf unrhyw syniad faint ohonoch mae pobl yn mynd i ddangos i fyny. Felly efallai y byddwn eisiau strwythur data y gallaf ehangu a crebachu. Oherwydd efallai rhywun fydd gadael, efallai y bydd rhywun yn dod. Ac felly ar unrhyw adeg, rydym yn Gall ychwanegu neu ddileu nodau. Cool gwestiwn, mawr. Yeah. GYNULLEIDFA: Os gallwch ddefnyddio rhywbeth fel GetString sy'n cadw gadael i chi gael mwy o ddata fel bydd ei angen arnoch, pam yr ydych angen hyn hefyd? SIARADWR 1: Pam y byddai ydych yn defnyddio rhestr pan cysylltiedig gallwch ddefnyddio rhywbeth fel GetString? Dyna gwestiwn da. Cofiwch fod Get-- un o y downfalls o GetString yw nad ydym yn gwneud yn iawn gwaith da o ryddhau y cof, ac yr ydym yn cyflwyno criw o cof gollwng i mewn i'ch rhaglen? Gallech fynd ag ef yn llonydd amrywiaeth o faint ac yn parhau i dyfu iddo. Ond byddai'n rhaid i chi ddod o hyd i lleoedd newydd yn y cof. Byddai 'I jyst fod yn llawer o uwchben. Un o'r pethau neis am cysylltiedig rhestrau yn hytrach na araeau, yn araeau i gyd yn yr un lleoliad yn y cof. Mae'n rhaid iddo fod yn un barhaus darnau o gof. Tra rhestrau cysylltiedig, 2 a 3 Mai fod yn gwbl mewn lleoliadau gwahanol. Fel 2 wedi dod i ben fan hyn, a 3 yw dros yma. Ac ar yr amod bod ganddynt pwyntydd at ei gilydd, mae'n iawn. Rydym yn gwybod y gallwn ddod o hyd iddynt. Cwestiwn dros yno? GYNULLEIDFA: GetString yn swyddogaeth yn y llyfrgell CS50, dde? Nid yw'n bodoli mewn rhaglenni real. SIARADWR 1: Cywir. Iawn, dyna'r peth arall. Nid yw GetString yn bodoli y tu allan i gyd-destun CS50. Yeah. GYNULLEIDFA: Felly mae'r ffaith bod gallai dau fod yn wirioneddol bell ar wahân, mae hynny'n effeithio effeithlonrwydd mynediad i'r elfennau ar y rhestr? SIARADWR 1: Mae hwnnw'n gwestiwn mawr. Y cwestiwn oedd, mae'n effeithio effeithlonrwydd o gael mynediad mae'r rhain elfennau gwahanol yn y rhestr. A dweud y gwir, ie. Gan ein bod yn gwybod Os-- gadewch i ni dweud ein bod am gael mynediad yr ail elfen y rhesi, rydym yn gwybod gallwn ni jyst wneud amrywiaeth braced 1, ar y dde. Mae bob amser yn mynd i fod yr un fath lleoliad. Ond os ydym am gyrraedd y 3, ni allwn ond dweud, ewch cael y 3. Mae'n rhaid i ni ddweud, OK, yn dechrau am cychwyn y rhestr, ac yn awr rydym mewn gwirionedd i gerdded trwy nes i ni ddod o hyd i'r rhif rydym yn ddiddordeb ynddo. Felly, yn yr achos hwn yr ydym yn ei ddweud, OK mae hyn yw'r rhif cyntaf. Felly y bôn, mae hynny'n mynegai 0. Nawr mae'n rhaid i ni ddod o hyd i'r ail rif. Dyna mynegai 1. Felly mae hynny'n wir yn mynd i'r canlynol-- unig cael mynediad, yn mynd i gymryd amser N. Cool hen N., mawr Yeah. GYNULLEIDFA: Beth yw pob un o'r rhestrau? A ydynt bob araeau, neu beth? SIARADWR 1: Dyna gwestiwn mawr. Beth yw bob un o'r strwythurau fy mod i wedi tynnu? Maent yn nodau. Felly mae pob un o'r rhain ychydig Mae dwy ran strwythur. Mae ganddo gyfanrif sy'n dal. Dyna y data gwirioneddol ei fod yn dal ar. Dyna'r math o ran defnyddiol. Ac, mae hyn yn beth yn ei gwneud yn rhestr cysylltiedig, mae ganddo pwyntydd i'r nod nesaf. Cwestiwn Awesome. Mae pob hawl, felly gadewch i ni edrych iawn edrych yn gyflym ar rai enghreifftiau o'r hyn y efallai y byddwn yn ei wneud gyda rhestrau cysylltiedig. Felly, un enghraifft gyflym iawn yw, Mae'n debyg ein bod yn awyddus i wneud chwiliad. Pa fath o chwiliad ni all rydym yn ei wneud ar restrau cysylltiedig? GYNULLEIDFA: Binary. SIARADWR 1: Binary. Pam na allwn ni ddefnyddio'r chwiliad deuaidd? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Iawn, oherwydd gyda deuaidd chwilio, bu'n rhaid i ni ddibynnu ar y ffaith y gallem yn unig neidio i mewn i'r amrywiaeth ar unrhyw adeg. Gallai Rydym yn unig yn dweud, ewch at yr elfen canol. Gyda yma, fel y dywedasom ychydig yn gynharach, ni allwn yn unig neidio i yr elfen canol. Er mwyn dod o hyd i unrhyw elfen, yr ydym mewn gwirionedd gorfod cerdded drwy ein rhestr gyfan. Felly, os oeddem am wneud chwiliad, mae'r gorau y gallwn ei wneud yn unig yw chwilio llinol. Rydym yn dechrau yn y pen, rydym yn check-- gadewch i ni ddweud ein bod chwilio am 9-- rydym yn dechrau ar y pen. Yr ydym yn dweud, a yw hyn 9? Na A yw hyn yn 9? Na A yw hyn yn 9? Ydym, yr ydym yn ei chael yn. OK, dyna i gyd hynny. Dyma ychydig o ffug-god. Rydw i'n mynd i adael hyn ar eich rhan guys i corddi drosodd ar eich pen eich hun, dim ond oherwydd ein bod yn rhedeg ychydig byr ar amser. Yn gadael i siarad am osod. Gwelsom demo 'n sylweddol oera o hwn mewn darlith lle rydym yn dweud, OK, mae gennym y rhestr cysylltiedig lle mae pawb yn pwyntio at ei gilydd, a rhywun yn dod i fyny ar y llwyfan. Sut rydym yn mewnosod hynny person i mewn i'n rhestr gysylltiedig? Wel, mae ffordd anghywir i'w wneud, a yn Rwy'n credu yr hyn a welsom yn gyntaf, yw pan fydd y person yn blaen yn awtomatig tynnu sylw at y person newydd. Ac yna rydym yn fath o rhoi'r gorau i'r ail hanner y rhestr, dde? Gan nad ydym yn gwybod ble y mae yn y cof anymore. Felly, i fod yn ofalus iawn ynghylch y trefn yr ydym yn mewnosod pethau. Felly dyma, gadewch i ni ddweud ein bod am rhowch 1 ar flaen ein rhestr. Yn gyntaf, mae gennym 1 pwynt yn y ail element-- neu'r elfen sy'n cynnwys 1. Felly, yr ydym yn gwneud hynny, dim ond felly dydyn ni ddim mynd i golli yr ail hanner. Ac yn awr, gallwn gael pwynt pen i 1. Felly unwaith eto, mae hyn yn unig fel lefel uchel super. Dyma sut y byddem yn mewnosod nod. Mae gennym lawer o ffug-god Yma-- ddrwg gennym, Dydw i ddim yn gwybod pam rwy'n alw yn ffug-god. Mae'n cod gwirioneddol. Gallwch fynd atalfa 'ii maes yn nes ymlaen. Mae pob hawl, gadewch i ni iawn quickly-- unrhyw mwy o gwestiynau ar restrau cysylltiedig cyn i mi symud ymlaen i ddata arall gwpl strwythurau yn ein 10 munud olaf. GYNULLEIDFA: A oes angen i yn awr rydym sut i ysgrifennu ar brawf? SIARADWR 1: A oes angen i ni wybod sut mae canlynol-- GYNULLEIDFA: Ysgrifennu ar brawf. SIARADWR 1: oes angen canlynol-- ni dylech fod yn barod i ysgrifennu, ychwanegwch, dileu, a chwilio am restrau cysylltiedig ar y prawf. Mae hynny'n rhywbeth yr ydym Gallai disgwyl i chi ei wneud. Ewch drosti. Os oes gennych unrhyw gwestiynau am y cod, saethu eich TF e-bost, dod i oriau swyddfa. Mae llawer o amser yn dal i fod i astudio, i beidio â phoeni. Mae pob hawl, unrhyw llall cwestiynau am restrau cysylltiedig? Ydw. GYNULLEIDFA: Felly, os nad ydych yn defnyddio y pwyntydd i fynd i'r un ar y dde cyn i chi ddefnyddio'r pwyntydd i yr un ar y chwith, dyna sy'n cyfateb i ddileu popeth, dde? SIARADWR 1: Yeah. GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Reit, gan nad allwn ei gael, mewn gwirionedd mae'n hyd yn oed yn waeth. Oherwydd nid yn unig nad ydym yn gwybod lle y mae, y gallwn ei ddefnyddio mwyach, ond we've-- nid ydym yn gan ryddhau y cof anymore. Felly 'i' jyst yn hongian o gwmpas ac nid fod yn ddefnyddiol oherwydd na allwn ddod o hyd iddo. Yeah, cwestiwn oer. Mae pob hawl, gadewch i ni siarad am staciau. Gwelsom staciau yn gyflym iawn. Maent yn gyntaf yn olaf strwythurau data allan. Felly, rydym yn meddwl am y staciau yn Annenberg o hambyrddau lle rydym simnai pethau ar ei ben. Ac os ydych chi'n mynd i dod yn cael hambwrdd, rydych yn bob amser yn mynd i gymryd y naill ar y top, sef y mwyaf recently-- sef y peth yr ydym fwyaf rhoi ddiweddar ar ben y pentwr. Felly, gallwch chi fath o feddwl am y math hwn o gweledol pan ydych yn ystyried staciau. Ac yna, rydym wedi popped rhywbeth oddi ar ben y pentwr. Os byddwn yn yw-- oh, a'r geiriau sydd gennym defnyddio wrth ydym yn sôn am y data strwythurau fel arfer, os ydym roi rhywbeth ar y corn, rydym yn dweud ein bod yn gwthio ar y corn. Ac os ydym yn cymryd rhywbeth oddi ar y pentwr, rydym yn dweud ein bod popping oddi ar y pentwr. Os ydych yn mynd i weithredu yn stack-- yr wyf yn bendant argymell i chi roi cynnig out-- eich bod yn mynd i eisiau i gadw golwg ar, gadewch i ni ddweud eich bod yn defnyddio arae. Yr wyf yn gwybod yn y ddarlith buom yn siarad am ddefnyddio y arrays neu restrau cysylltiedig i weithredu pentwr. Os ydych yn defnyddio array, mae angen i chi keep-- esgus me-- mae angen i ni gadw golwg o faint a gallu. Felly mae'r nifer uchaf y gall ein pentwr ddal. Cwestiynau ar staciau? GYNULLEIDFA: Beth yw'r gwahaniaeth rhwng maint a gallu? SIARADWR 1: Y gwahaniaeth rhwng maint a gallu, cwestiwn awesome. Felly, gadewch i ni ddweud ein bod gan ddefnyddio amrywiaeth, ac rydym yn dyrannu digon o le i 10 o gyfanrifau. Ac rydym yn dechrau i lenwi'r i fyny. Ac rydym yn gwthio pethau ymlaen, ac yr ydym yn pop pethau i ffwrdd. Rydym yn awyddus i gadw golwg ar yr uchafswm Rhif y gallwn ei ddal, mae hynny'n gallu. Ac rydym am i gadw golwg ar y nifer presennol sydd gennym, mae hynny'n maint. Cwestiwn da. Unrhyw beth arall ar staciau? Mae pob hawl, gadewch i ni siarad am syndod, ciwiau. Yn wahanol i staciau, sydd yn gyntaf yn olaf allan, mae'r rhain yn gyntaf yn, allan gyntaf. Felly mae hyn yn like-- feddwl o linell. Meddyliwch am leinin i fyny yn y Afal Storfa i gael beth bynnag cynnyrch. Ac y dylai y person cyntaf yn unol fydd y person cyntaf sydd wedi helpu. Felly beth cyntaf sydd wedi gwthio yn mae hyn y peth cyntaf sy'n popped. Cwl? Iawn similarly-- oh, y geiriau a rydym yn defnyddio yn hytrach na gwthio a pop-- yr wyf newydd eu defnyddio, Rwy'n sorry-- yw dywedwn, os ydym yn rhoi rhywbeth i mewn y ciw, rydym yn dweud enqueued iddo. Os byddwn yn cymryd rhywbeth allan o y ciw, rydym yn dweud ein dequeued. It. Efallai fy mod yn ynganu rhai anghywir, ond byddwch yn cael y syniad. Ac yna eto, yn union fel staciau, os ydym yn gweithredu hyn fel array, mae angen i ni gadw golwg ar y maint, y gallu, a'r pen. Beth ydw i'n ei olygu wrth y pen? Pam mae angen i ni gadw golwg ar y pen? GYNULLEIDFA: Oherwydd dyna lle ddechrau eich rhestr yn. SIARADWR 1: Yeah, yn y bôn mae'r pennaeth yn lle dechrau ein ciw yw. Oherwydd ein bod yn gwybod, yn wahanol staciau, ac-- Rydw i'n mynd i geisio wynebu'r way-- hwn rydym yn gwybod ei bod bob amser yn mynd i crebachu y ffordd hon a thyfu fel hyn. Ciwiau, mae pobl yn dod ar y diwedd ac yn gadael o'r dechrau, felly mae'n rhaid i ni gadw golwg o gyflwr lle mae'r cychwyn yn. Dyna beth yr wyf yn ei olygu wrth mae angen i ni cadw golwg ar ble mae'r pen yn. Cwl? Iawn. Wyth munud, cwpl mwy o bynciau, gallwn wneud hynny. Mae pob tabl yn iawn, hash. Buom yn siarad yn fyr iawn am tablau hash. Ar gyfer y cwis, 'ch jyst angen i chi eu deall ar lefel uchel. Y syniad sylfaenol yw bod gennych y data hwn. Ac rydym am i gael gafael arno mewn amser sy'n gyflymach na rhywbeth fel cysylltiedig rhestr. Oherwydd ein bod dweud, pe baem yn chwilio trwy restr cysylltiedig, a allai gymryd amser N. Hyd yn oed gael mynediad Gall gymryd N amser mewn rhestr cysylltiedig. Tablau Hash rhoi i ni ffordd y gallwn gael gafael ar bethau yn gyflymach, ac yn fwy chwilio'n gyflym am bethau, heb cael y cyfyngiadau o amrywiaeth lle yr ydym wedi gosod maint. Felly rydym yn meddwl am strwythur data lle, lle rydym yn ei roi yn y strwythur data yn ddibynnol ar hyn swyddogaeth hash hudol. Felly, yn yr achos hwn, mae'r hash hudol swyddogaeth yn unig yw cymryd geiriau, gwirio'r hyn y mae'r llythyr cyntaf yw, a yna dim ond didoli ei nhrefn yr wyddor. Felly rydym yn eu rhoi yn y bôn i wahanol bwcedi. Pan fyddwn yn gweld banana, dywedwn, OK, gadewch i ni roi yn y bwced B. Pan welwn Apple, gadewch i ni roi yn y Bwced. Os byddwn yn gweld bricyll, gadewch i ni roi yn y Bwced. IAWN? Felly, mae'n debyg fy mod yn chwilio for-- i mi ddim yn gwybod, beth sy'n ffrwyth arall? Gadewch i ni dybio oeddwn yn chwilio am oren. Ble ddylwn i edrych? Yn y O bwced. Yeah, dim ond un lle a allai fod oren fod, iawn? Felly dywedais yn gynharach beth sy'n digwydd Os-- dda y dywedais yn gynharach, gadewch i ni ddweud ein bod yn rhoi in-- bricyll ond yr wyf yn 'n sylweddol yn mynd i'r afael â'r ffaith bod, o na, pe bawn yn rhoi aeron i mewn, mae'n mynd i wrthdaro â banana. Lle rydym yn ei roi os oes eisoes yn rhywbeth yn ein bwrdd? Wel, mae gennym opsiynau cwpl. Dewis rhif un yn llinol treiddgar, sy'n golygu y bôn, gadewch i ni ddweud fy mod am geisio rhoi aeron, ac yr wyf yn gweld, o na, bananas yno eisoes, Fi jyst dweud OK, gadewch i mi edrych am y fan a'r lle nesaf sydd ar gael. Felly yr wyf yn cerdded i lawr, yr wyf yn dweud, o, does dim byd yn y D bwced. Ni allaf feddwl am unrhyw ffrwythau sy'n dechrau gyda'r llythyren D, felly Im 'jyst yn mynd i roi aeron i mewn' na. Durian. Iawn, felly ers does nid oes dim yn yno eto, Rwy'n Efallai yn ogystal dim ond defnyddiwch y fan a'r lle. Beth yw'r anfantais o hynny? GYNULLEIDFA: Mae'n allan o drefn. SIARADWR 1: Mae'n ddrwg gennyf? GYNULLEIDFA: Mae'n allan o drefn. SIARADWR 1: Mae'n out-- iawn, efallai y byddwn yn y pen draw gyda phethau nad ydynt yn in-- ei storio mewn bwcedi yn y ffordd ein bod yn disgwyl iddynt fod. Felly, os oeddem yn chwilio ar gyfer aeron, cyn i ni ddweud, oh gallwn edrych yn un bwced. Gallai dim ond mewn un bwced. Ond yn awr, mewn gwirionedd, gallai fod yn yn yr holl bwcedi, dde? OK, dyma opsiwn arall, chaining-- ar wahân sef y syniad ein bod yn mynd i ddefnyddio ychydig yn ddiweddarach yn P yn gosod 5. Yn hytrach na dim ond cael un lle ym mhob bwced, pam nad ydym yn ei gael bob bwced fod yn pwyntydd i restr cysylltiedig? Pan fyddwn yn dweud, OK, mae bwced am bopeth sy'n dechrau gyda A. Ac mae 'jyst yn mynd i fod yn gysylltiedig Rhestr o ffrwythau sy'n dechrau gyda A. Felly, os ydym yn cael ffrwythau newydd, gadewch i ni ddweud rydym get-- rydym afocado, mae gennym afal, gadewch i ni ddweud ein bod yn cael bricyll, sut y byddem yn eu rhoi yn y rhestr? Wel byddem yn mynd i bwced 0, ac roedden ni wedi dim ond rhowch ei yn ein rhestr yn hoffi, syml â hynny. Nawr rwy'n dal i ddweud bwced. Gallem weithredu hyn mewn nifer o ffyrdd. Un ffordd nodweddiadol bod hyn fath o lun yn awgrymu, yn efallai cael amrywiaeth o awgrymiadau i restrau cysylltiedig. Dyna un ffordd y gallwn ni gweithredu tabl hash. GYNULLEIDFA: A fyddai angen un arall rhestr gan fod banana a aeron yn cael eu allan o drefn? SIARADWR 1: Fyddech chi need-- AH, a fyddech yn angen rhestr arall gan fod banana ac aeron yn cael eu allan o drefn? Yn yr achos hwn, mae ein swyddogaeth hash, sy'n dweud wrthym ble i roi pethau Nid ydynt yn poeni am yr ail lythyr. Nid yw'n poeni am alphabetizing, dim ond gofalu am y llythyren gyntaf. Cwestiwn? GYNULLEIDFA: Beth yw'r diffiniad o hynny swyddogaeth, a beth mae'n ei edrych? SIARADWR 1: Ah, yn dda. Iawn, felly peidiwch angen inni poeni gormod am y cwis hwn. Felly doeddwn i ddim yn rhoi yn y sleidiau. Rydym yn mynd i gael eu cyflwyno iddo ar gyfer P gosod 5. Ond yn y bôn, mae'n dweud, yn cael Elfen newydd, ble ddylwn i ei roi? Neu, gadewch i ni ddweud dwi'n chwilio am elfen, lle y gallai fod? Yeah, cwestiwn mawr. OK, yn gyflym iawn, coed a geisiau. Felly coeden yn unig unrhyw fath o strwythur data trefnus. Ac rydym yn mynd i weld llawer o luniau fydd yn gwneud hyn yn super glir. A trie, a welsom yn y dosbarth, yn fath arbennig iawn o goed hynny hanfod yn gweithio fel tabl hash aml-lefel. Mae'n super cool. Rydym yn mynd i weld mewn dim ond eiliad. Mae pob hawl, felly gadewch i ni siarad am goed yn gyntaf. Felly, mae hyn yn enghraifft wirioneddol nodweddiadol o coeden, lle mae gennym rai hierarchaeth. Byddwch yn gweld bod un ar yr union top, dde? A gallaf ddweud top oherwydd mae amlwg yn archebu gan ein bod rhaid saethau hyn yn mynd i lawr. Fel bod, y peth ar y brig, Rwy'n galw fod y nôd gwraidd. Felly, mae un yn y nôd gwraidd. A'r pethau ar y gwaelod, sydd wedi dim byd yn dod oddi arnynt, Yr wyf yn dweud y rhain yw'r nodau ddeilen. Felly 8,9 5, 6, 7, OK. Ac fel arfer y derminoleg yr ydym ei ddweud yw, mae 1 yn rhiant 3 yn. Felly dyna'r peth sy'n dod yn lefel uwch ei ben, a phwyntiau iddo. A 3 yw plentyn 1 yn. Dyma'r peth bod 1 pwynt i. Cwestiwn? GYNULLEIDFA: Allwch chi fynd yn ôl i'r y sleid blaenorol, os gwelwch yn dda? SIARADWR 1: Alla i fynd yn ôl at y sleid blaenorol? Cadarn. Cwestiynau ar hyn? Neu ydych newydd eisiau edrych arno? GYNULLEIDFA: Rwy'n nid yn unig oedd yn cael drwyddo. SIARADWR 1: OK, oer, yeah. Bydd y rhain i gyd fod ar-lein, felly peidiwch poeni am gael pob gair. Ac er lles pryd, yr wyf i'n mynd i fynd. A yw hynny'n iawn? Awesome. OK, oer. Felly, gadewch i ni siarad am kind-- penodol iawn felly mae gennym rhain cyffredinol strwythur y coed, sydd ychydig yn unrhyw beth sy'n caniatáu i ni at y math o safle bethau hierarchaidd. Coed deuaidd yn bethau lle mae pob Mae nod ar y mwyaf ddau o blant. IAWN? A dywedais, OK, fel bod yn ymddangos i gyd-fynd disgrifiad hwn. Dywedais nod, nid coeden chwiliad deuaidd. Beth yw coeden chwiliad deuaidd? Mae wedi datrys. Felly, rydych yn gwybod bod yn coeden chwiliad deuaidd, popeth i'r bopeth tree-- i'r nodau chwith mae llai o faint, a phopeth i'r nodau cywir yn fwy. Felly, nid yw hyn yn goeden chwiliad deuaidd. Mae hyn yn unig goeden ddeuaidd yn. Felly mae gennym categori mawr o coed, categori ychydig yn llai o goed deuaidd, chwilio yn ôl coed chwilio deuaidd a--. Cwl? Iawn. Ac yn awr, yn hwyl y rhan fwyaf o'r i gyd, rydym wedi ein cais. Gwelodd chi guys llun hwn mewn darlith? Yeah, dylai edrych super cyfarwydd. Gadewch i ni edrych ar sut y gallem mewn gwirionedd yn gweithredu hyn. Neu mewn gwirionedd, gadewch i ni weld, ddim yn bod hyd yn oed yn dod i fyny? Nope. Mae pob hawl, nid ydym hyd yn oed yn rhaid i ni poeni am y pethau lefel isel. Bydd gennym ddigon o amser i fynd i'r afael wedyn P gosod 5. Ond am nawr, dim ond ar lefel uchel iawn, rydym yn yn gwybod bod hyn yn sut mae'n edrych. Rydym yn ei ddisgrifio fel math o tabl hash aml-lefel where-- beth mae siop hon? Mae hyn yn storio enwau'r gwyddonwyr a allwn mewn gwirionedd chwilio am drwy unig fath o yn dilyn y gwahanol dablau hash i lawr, i gyd yn iawn? Ac mae'r Diben hyn yw, mewn theori, maent yn darparu amser yn gyson yn edrych i fyny. Felly, os ydw i am wirio bod, er enghraifft, pwy sy'n someone-- bod Mandel yn hyn trie, gallwn yn gyflym iawn yn linear-- Mae'n ddrwg gen i, yn amser cyson, chyfrif i maes a yw'n sydd yn y trie. Ond mae con, yn edrych ar ba mor fawr yw hyn. Nid ydym yn hyd yn oed yn storio bod llawer o ddata, ac mae'n enfawr. Felly, un con mawr yw ei fod yn yn defnyddio llawer iawn o gof. Ydw. GYNULLEIDFA: Pam mae'n darparu amser yn gyson, yn union? SIARADWR 1: Un mwy o amser? GYNULLEIDFA: Beth yw'r greddf am pam mae'n darparu amser yn gyson? SIARADWR 1: Cwestiwn Ardderchog. Pam ei fod yn darparu amser yn gyson? Felly, beth allwn ni ei wneud yw, gadewch i ni dweud rydym yn chwilio am Mandel. Rydym yn gwybod ein bod yn awyddus i ddechrau yn y lefel gyntaf yn M. Rydym yn gwybod yr ydym am ei ddilyn i E. Felly dyna cymryd un cam, dau cam, dde? Rydym yn dilyn i N. Rydym yn dilyn i D. Rydym yn dilyn i E. Rydym yn dilyn i L. Ac yna y peth nesaf rydym yn gwirio says-- delta hwn yn dweud Ie, dyna yn ein tabl. Mae hynny yn air. Mae hynny'n gofnod dilys yn ein trie. Felly rydych yn ei ddweud, OK, a gymerodd saith cam. Ond os ydym yn ychwanegu fel zillion mwy gwyddonwyr i hyn strwythur data, Ni fyddai'n rhaid i ni wirio zillion mwy o bethau. Rydym yn byth yn mynd yn unig i gael i gymryd saith cam, hyd y person enw. Felly, rydym yn hoffi i feddwl o Rhedeg fel, mae'n debyg byddwn yn cynyddu maint ein strwythur data, faint mwy o amser a yw'n mynd i gymryd? Yn yr achos hwn, os byddwn yn ychwanegu bagad mwy o wyddonwyr, does dim ots. Mae'n dal i fod yn mynd i gymryd yr un faint o amser. Mae'n amser yn gyson. Ydw. GYNULLEIDFA: Sut peidiwch â chi'n gwybod i sganio dros y rhifau eraill? SIARADWR 1: Sut ydw i'n gwybod pa mor canlynol-- GYNULLEIDFA: Fel sut ydych chi'n gwybod i chi fynd yn syth o M i E ac nid i M i A? SIARADWR 1: O, yn sicr. Gan fy mod yn gwybod fy mod yn chwilio am y gair Mandel, ac yr wyf yn jyst yn gwybod ei fod yn M-E. Felly that-- yeah, mynd yn ei flaen. GYNULLEIDFA: Ni fyddech yn cael i edrych ar y llythyrau eraill yng ngweddill y [Anghlywadwy]? SIARADWR 1: Ah, ni fyddai gen i i edrych ar the-- OK, mawr. Mae hwn yn gwestiwn mawr. Mae'n dibynnu sut yr ydym yn gweithredu. Os byddwn yn ei weithredu fel dim ond fel cyfres o araeau lle rydym yn gwybod bod E yn bob amser wrth safle 0, Nid wyf yn gwybod, beth bynnag mynegai rhif ar. Yeah, gallwn dim ond gwneud yn gyson amser, peidiwch, peidiwch, peidiwch, yn ei wneud. Cwl. Cwestiwn dros yno? GYNULLEIDFA: A yw amser yn gyson yr un peth wrth i amser real? SIARADWR 1: A yw amser yn gyson yr un peth yn amser go iawn? Dydw i ddim yn siwr iawn amser real yn. GYNULLEIDFA: amser Like sy'n llythrennol fynd yn ei flaen yn ail gan ail yn hytrach na bod newidyn annibynnol. SIARADWR 1: O, ie, yr ydych Gall feddwl am y peth y ffordd honno. Mewn geiriau eraill, nid yw'n ddibynnol ar faint y strwythur data. Dyna ffordd o feddwl am y peth. Unrhyw gwestiynau eraill? Efallai yn y tro cyntaf yn hanes, rydym yn gorffen ar amser. Os oes gennych unrhyw gwestiynau, yn teimlo rhad ac am ddim i ddod gofyn i ni, ewch i adran, siaradwch â'ch TFS, swyddfa horiau'n 08:00 a 08:30 i 11:00 ar ddydd Llun a dydd Mawrth, felly 'i' ychydig bach o amser yn wahanol, felly gwnewch yn siŵr eich bod yn nodi hynny. Yeah. GYNULLEIDFA: A oes angen i ni wybod pethau fel dadleuon llinell orchymyn, ls dash, dash beth bynnag? SIARADWR 1: llinell Command dadleuon, a gorchmynion Linux, ie, mae angen i chi wybod hynny. Very-- mae fel y math o lefel pethau yr ydym yn ei gynnwys yn adran 0, cyn belled ag Linux gorchmynion arni. GYNULLEIDFA: A yw'r oriau yn Annenberg? SIARADWR 1: Oriau swyddfa, dydw i ddim hollol siŵr ble maen nhw. Ond gallwch edrych ar y gwefan, a bydd yn dweud wrthych.