>> [CHWARAE CERDDORIAETH]
>> DAVIN: pob hawl, guys.
Felly mae hwn yn yr adolygiad am y cwis cyntaf.
A yw pawb yn barod ar gyfer y cwis ar ddydd Mercher?
ALLISON: Woo!
MYFYRIWR: Woo!
DAVIN: Yeah.
ALLISON: Yeah!
DAVIN: Bod guy yn barod.
Mae hynny'n guy, dwy law, 'n glws.
Felly adolygiad cwis heddiw, mae'n mynd i fod tua awr a hanner.
Rydym yn mynd i fynd dros yr holl brif cysyniadau dylech wybod am y cwis.
Rydym yn mynd i fynd dros rai codio gan enghreifftiau llaw, sydd ar bob cwis.
Ac os oes gennych gwestiynau, mae croeso i godi eich llaw a phopeth
fel 'na.
Wel, logisteg ynglŷn â y cwis ar-lein.
Felly, rydym yn mynd i rannu pobl i fyny i mewn gwahanol ystafelloedd.
Mae'n seiliedig ar eu henw.
Felly os oes gennych unrhyw gwestiynau ynghylch lle i fynd neu ynghylch pa ddeunydd sydd, fel,
y gair swyddogol ar yr hyn sy'n digwydd i fod ar y cwis, gwiriwch ar-lein.
A dyna i gyd yn gyfredol.
Felly, os nad oes unrhyw gwestiynau i ddechrau, rydym yn mynd i ddechrau.
A dyma Allison.
>> [Clap]
>> ALLISON: OK, diolch, Rob.
Gwerthfawrogi hynny.
Dylai Davin wedi flipped i hyn.
Mae hyn yn y rhestr anghyflawn o pynciau, fel bob amser, fel y Davin newydd ei ddweud.
Ymgynghori y ddogfennaeth lein am y cwis sero.
Ond mae hyn yn eithaf much-- 'i' ar y maes llafur
yw popeth yr ydym wedi mynd drosodd hyd yn hyn.
Mae popeth yma yn gêm deg, yn ogystal ag unrhyw beth arall
a allai fod wedi cael eu crybwyll yn y ddarlith.
>> Mae fy adran, yma, yn dim llawer o adolygiad.
Mae ymarferion gwpl Efallai eich bod yn guys weithio ar.
Ond ar gyfer y rhan fwyaf, rydym yn wir eisiau mynd i'r Davin gyda'r rhai cod
gan ymarferion llaw.
>> Felly, yr wyf yn mynd i hedfan drwy'r hyn.
Os oes gennych unrhyw gwestiynau, rhoi'r gorau i mi.
Codwch eich llaw.
Rwy'n addo 'n annhymerus' yn ôl pob tebyg welwch.
Os nad yw, dim ond chwifio o gwmpas.
Rydw i'n mynd i fod yn siarad yn gyflym.
Rwy'n gobeithio y bydd pawb yn iawn gyda hynny.
>> OK, gair arbennig, Davin amlwg anghofio i troi drwy sleidiau hyn.
[Chwerthin] Rydych chi mewn trafferth, dyn.
Felly, awgrymiadau ar gyfer cwis sero, ymarfer codio ar bapur.
Rydych guys yn mynd i gael rhywfaint o ymarfer gyda hynny yn awr gyda Davin,
felly ni fyddwch yn eich pen eich hun yn llwyr.
Rwy'n credu ein bod ni'n mynd mewn gwirionedd drwy'r ddwy swyddogaeth.
Felly, byddwch yn cael ei baratoi yn dda yno.
>> Bod yn gyfarwydd â'ch setiau problem.
Cafwyd cwestiynau ar cwisiau blaenorol
a fydd yn gofyn i chi, er enghraifft, i cod i fyny rhywbeth tebyg iawn i Mario.
Felly mae bod yn gyfarwydd iawn â'r eich problem yn gosod, yn ogystal
gan fod y cwestiynau yr ydym yn gofyn i chi yn y dechrau ar y ffurflen
eich bod yn llenwi allan, bydd eich gwasanaethu yn dda iawn.
>> A oes cwis blaenorol o dan y cyfyngiadau amser.
Mae'r rhain cwisiau yn hir.
Mae'r amser yn mynd yn gyflym iawn.
Ac yn aml iawn, nid ydych yn sylweddoli pa mor gyflym mae'n mynd hyd nes y byddwch mewn gwirionedd
rhoi eich hun o dan y cyfyngiadau hynny.
Felly os gallwch chi jyst naddu allan, chi'n gwybod, 75 munud, naill ai heno neu yfory
i gymryd un o'r cwisiau hyn o dan hynny, byddwch yn mewn cyflwr llawer gwell.
>> A hefyd, creu eich taflen gyfeirio.
Cofiwch, byddwch yn cael un blaen a'r cefn dudalen
fel cyfeirio ar gyfer eich cwis ar ddydd Mercher.
Creu hynny yn ffordd wych i astudio.
Mae unrhyw beth sy'n eich bod yn cael trafferth gyda chi am eu cynnwys ar yno.
Mae unrhyw beth sy'n eich TFS wedi bod, fel, mae hyn yn wirioneddol bwysig.
Dylech wybod hyn, yn cael eu efallai y pethau yr ydych yn ei gael ar yno
os nad oes gennych yn eu cof.
Hyd yn oed os ydych yn gwybod nhw wir yn yn dda, weithiau yn ei chael ar yno
yn fath ychydig o gysur i chi, a gwn cwisiau yn straen.
Felly gall unrhyw gysur i chi gael cymorth.
Mae pob hawl, hefyd, yn cael cwsg a bwyta ac yn hoffi'r pethau arferol
ein bod yn dweud wrthych am cwisiau.
>> Felly, yn dechrau i ffwrdd yn hawdd, mathau data a meintiau.
Fel y dywedais, mae hyn yn unig yn mynd i gael ei mi daflu llawer o bethau
i fyny fan hyn y dylech ei wybod.
Felly, rydym wedi ein chars sydd yn un bytes, ints
sy'n cael eu pedwar bytes, hir hir, sef wyth bytes.
Yn y bôn, dim ond i chi am gynnal cyfanrifau mwy o faint.
Fflotiau, sef pedwar, dyblau, sef wyth.
Unwaith eto, dim ond yn rhoi mwy i chi le ar gyfer eich fflotiau.
Ac yna teipiwch seren, felly mae unrhyw pwyntydd ar 32-bit peiriant,
sydd yn rhaid i gyd i chi guys i wybod, mae pedwar bytes.
>> Felly yr holl bethau dylech yn gwybod, efallai pethau
rydych am ei gael ar eich taflen gyfeirio.
OK, trosi deuaidd i deuaidd, trosi
i hecsadegol, yn ôl ac ymlaen, pob peth y dylech ei wybod.
Felly, o deuaidd i'w degol.
Ydych guys am gymryd munud cyflym a cheisio chyfrif i bob un o'r rhain
ac yna dweud wrthyf beth ydyn nhw?
>> Rwyf hefyd yn cael Candy yn fy bag, felly gall unrhyw un sy'n ateb yn cael Candy, gyda llaw.
Ac mae gen i lawer ohono.
Gadewch i mi cydio hyn.
Rydw i'n mynd i roi hwn i Gabe.
Felly, gallwch ddosbarthu Candy i pwy bynnag braf a chydweithredol.
>> OK, gwelais law yno yn y cefn.
>> MYFYRIWR: Yeah, yr un cyntaf yw 42.
>> ALLISON: Ie, un cyntaf yw 42, yn gywir.
MYFYRIWR: [Anghlywadwy].
[Chwerthin]
ALLISON: Ail un, mae yn ôl yn felyn?
MYFYRIWR: 110,010.
ALLISON: Cywir, ac mae hyn yn cafodd yr un olaf, i lawr yma ar y gwaelod?
Hefyd, yeah, rydych yn gwybod ei eisiau?
Dim ond toss allan Candy.
Beth am candy i bawb?
>> MYFYRIWR: [Anghlywadwy] pan rydym yn ei wneud.
>> ALLISON: SHH.
Ac yna yr un olaf.
Pwy sydd eisiau ateb?
Iawn yno.
>> MYFYRIWR: 11100.
>> ALLISON: 11100, yn edrych ar hynny.
Llongyfarchiadau, swydd wych, pawb.
OK, mae pawb yn fath o deall y broses ar gyfer gwneud hyn?
Rydych wedi, mynd o deuaidd i'w degol y ffordd yr wyf yn tueddu i wneud hynny, yn cael ei ysgrifennu allan
y pwerau o 2.
Felly yr wyf yn ei ddweud, OK, 0 gwaith 2-0, felly dyna 0, 1 gwaith 2 i'r cyntaf,
yw 2 yn mynd ymlaen y ffordd honno.
A oes unrhyw un eisiau i mi yn benodol mynd trwy enghraifft o deuaidd?
OK, oer.
>> Degol i deuaidd yn debyg iawn.
Dwi'n tueddu i ysgrifennu allan y pwerau o 2.
Dechreuwch â'r un sydd yn y mwyaf, ond nid yw'n mynd heibio i'r degol
eich bod yn chwilio am.
Ac yna fath o weithio eich ffordd yn ôl adio i fyny pethau yn ôl yr angen.
>> Ac yna gydag adio, 'i' yn union fel ychwanegiad arferol.
Os ydych chi erioed wedi cael y achos lle rydych yn ychwanegu dau 1s, mae'n amlwg yn dod yn 2.
2 mewn deuaidd yn awr 1 0 felly mae angen i gario eich 1 yn y golofn nesaf.
Cool.
>> Hecsadegol, gallai hyn fod yn rhywbeth sydd ychydig yn llai cyfarwydd.
Felly, fel Rob yn unig oedd yn dweud wrthyf ymlaen llaw, ei gamp ar gyfer hyn
ydy at jyst rhannu i fyny yn bedwar ddarnau beit, OK?
Bits, n chwith.
Gweld?
Diolch Rob.
Dyma pam eich bod chi yma. [SŴN] Iawn, felly rydym yn unig dorri i fyny
yn bedwar ddarnau ddarnau.
Felly, gyda binaries i hecsadegol, rydym yn edrych ar y cyntaf 4,
sef os oes gennym bedwar 1s mewn rhes, pa rif mae hynny'n ei symboleiddio?
>> MYFYRIWR: F.
>> ALLISON: Felly, yn yr achos hwn, beth yw 11111111 or-- ie?
MYFYRIWR: FF.
ALLISON: Perffaith, FF.
Mor fawr, Candy ar eich cyfer.
Yn awr, ar gyfer sut y hecsadegol i deuaidd, rydym yn dim ond meddwl am y peth fath o o chwith.
Ar gyfer pob rhif neu llythyren bod gennym yn ein hecsadegol,
dim ond drosi i ei bedwar bit [Chwerthin] at ei drosi pedwar bit.
Felly 5, yn yr achos hwn, yr hyn yw 5 os rydym yn cynrychioli ei gyda phedwar darnau?
>> MYFYRIWR: 010?
Mm-EM.
Ac yna A, sef mewn gwirionedd yn 10, fyddai?
1010.
Felly mae gennym hynny, yma.
Felly trosi rhwng hecsadegol ac deuaidd nid mewn gwirionedd yw bod ddrwg.
Os ydych yn edrych arno mewn pedair bit darnau, yn mynd i fod yn euraidd.
Everyone-- ie?
>> ROB: Mae hyn yn wirion, ond yr wyf bob amser yn cofio
A, gan fod A yn fod i fod yn 10.
A deuaidd dim ond 10 10, so--
>> ALLISON: Ah, dyna ni.
>> ROB: Hey.
>> ALLISON: Hey, candy i Rob.
Mae pethau nad ydynt yn siocled i mewn 'na.
Felly, gallwch chi gael rhywfaint o.
Mathemateg Felly ASCII.
Ymddwyn.
Felly mathemateg ASCII, wrth i chi guys yn ôl pob tebyg yn dda cofio
p yn gosod 2 gyda Visioneer a Caesar, wnaethoch chi lawer o hyn.
Cofiwch, mae'r cymeriadau yn yn sylfaenol rhifau yn unig.
Felly, gallwn wneud mathemateg â hwy, yn union fel rydym yn ei wneud mathemateg gyda ints.
>> Felly mae gennym dim ond ychydig beth syml yma.
Mae gennym rai yn A dyna ymgychwyn i 65.
A B gyfwerth â gwerth ASCII o A ynghyd ag 1, torgoch C cyfartal i D minws 1,
a torgoch D sy'n hafal i 68.
Felly, yna rydym yn mynd i argraffu pob un ohonynt, fel y gwelwn yma.
A gall unrhyw un ddweud wrthyf beth fydd hyn yn argraffu?
MYFYRIWR: [Anghlywadwy].
ALLISON: Yn union, felly un peth i hysbysiad yw
ein bod yn argraffu cymeriadau bob tro, yma.
Rydym yn dynodi er bod A a B yn ints pan fyddwn yn datgan iddynt uchod.
Ydym yn eu printio fel cymeriadau gan y cant C ac mae ein datganiad printf,
felly byddant i gyd yn argraffu fel cymeriadau.
Ac wrth gwrs, mae'r gwerth ASCII 65 ewyllys argraffu fel A. Mae gwerth ASCII o A ac 1
fyddai 66, a fyddai'n falch i B. Felly, mewn gwirionedd, yr ydym
cael A B C D pawb da yno?
Unrhyw gwestiynau?
Awesome.
>> OK, cwmpas.
Felly cwmpas yn amlwg yn iawn peth pwysig i'w ddeall, yma.
Mae llawer ohonoch chi, os ydych yn cael gwallau lunio,
ac mae'n dweud nad oes gennych mynediad i rai newidyn,
'i' yn ôl pob tebyg oherwydd eich bod diffiniedig o fewn dolen
ac yna ceisio i gael mynediad ato allan ohono, neu fisa gwrthwyneb.
>> Felly gwmpas wrth ei wraidd, 'i jyst yn penderfynu ble
rydym yn dweud newidyn yn bodoli, lle rydym yn yn gallu newid ei, lle y gallwn gael gafael arno.
'I' jyst fath o dweud rhain yn yr unig leoedd lle mae gennych fynediad
i'r newidyn hwn.
>> Felly, mae'r ddau scopes yr ydym yn siarad am yn ystod y dosbarth yn fyd-eang ac yn lleol.
Felly newidynnau byd-eang yr ydym yn siarad am pan fyddwch yn eu diffinio uwchben prif.
Mae'n golygu bod eich holl rhaglen yn cael ei gweld,
ac mae'n bodoli cyhyd gan fod y rhaglen yn rhedeg, OK?
Lleol yn golygu ei fod yn mwy o gaeth i ranbarth.
Felly, pryd bynnag y byddwch yn cael swyddogaethau penodol fel cyfnewid, rydym bob amser yn siarad am.
Rydym bob amser yn siarad am cyfnewid gyda A a B. A a B yn bodoli o fewn y swyddogaeth honno.
Nid ydynt yn bodoli unrhyw le arall.
>> Yn ogystal, pan fydd gennych os datganiadau neu ar gyfer dolenni.
Pryd bynnag yr ydym, er enghraifft, mewn a am dolen sydd gennym int i mi yn dychwelyd 0.
Mae gennym rai cyflwr ac yr ydym yn ei ddiweddaru.
Dim ond yn bodoli o fewn y bresys o hynny am ddolen.
Os ydych yn ceisio cael mynediad iddo mewn mannau eraill, Byddai eich compiler gweiddi ar chi.
Byddai'n hoffi, beth yr ydych yn ceisio ei wneud?
Nid yw hyn yn bodoli.
Felly dyna y ddau gwahanol fathau o gwmpas.
A yw hynny'n gwneud synnwyr i bawb?
>> Felly, er enghraifft, yma, mae hyn yn yn unig yw ychydig rhaglen syml.
Beth ydych chi'n guys meddwl sy'n yn mynd i ddigwydd ar bob pwynt
ein bod yn ceisio argraffu?
Felly, mae hyn yn un fan hyn, beth sy'n mynd i ddigwydd?
MYFYRIWR: Bydd yn argraffu tri.
ALLISON: Iawn.
Bydd yn argraffu tri.
Beth am fan hyn?
MYFYRIWR: Ni fydd yn gweithio.
ALLISON: Ni fydd yn gweithio.
Ydych allan o gwmpas, dde?
Nid yw newidyn lleol yn bodoli y tu allan i'r bresys hyn, i gyd yn iawn?
Ac yna beth am fan hyn?
>> MYFYRIWR: [Anghlywadwy].
>> ALLISON: Beth?
Rob, ewch.
>> ROB: wyf newydd ei ddweud.
Dylai newidynnau byd-eang fod yn tanlinellu newidyn byd-eang.
>> ALLISON: Ah, ie, sori.
Ddiolch, Rob.
Rob fel ein compiler breswyl.
Bydd yn jyst gweiddi arnom pan fyddwn yn ei angen. [Chwerthin] Ie, bod
Dylai fod yn amrywiol tanlinellu byd-eang.
Felly, gan dybio bod hynny oedd tanlinellu byd-eang
amrywiol, beth sy'n mynd i ddigwydd yma?
MYFYRIWR: Bydd hynny'n gweithio.
ALLISON: Bydd yn gweithio.
Felly bydd yn argraffu, felly dim ond enghraifft syml iawn.
OK, prototeipiau.
Felly, yn amlwg, mae gwir pwysleisio i chi guys
i wneud swyddogaethau os yw'n gwneud synnwyr yn eich rhaglenni.
Ond wrth gwrs, pan fyddwch yn gwneud eich hun swyddogaethau,
fel arfer byddwch yn eu diffinio ar ôl prif.
A byddwch yn ceisio eu galw yn y prif.
Ac os nad ydych yn defnyddio prototeip, Bydd eich compiler gweiddi ar chi.
>> Prototeip yn y bôn dim ond dweud wrth eich compiler
fod gennyf swyddogaeth hyn isod brif.
Rydw i'n mynd i alw ei fod cyn i mi ddiffinio iddo.
Dim ond yn dal ar.
Rwy'n addo y caiff ei diffinio, ac rydych Bydd yn rhaid i bopeth sydd ei angen arnoch.
>> Felly, y ffordd yr ydym yn ei wneud mae yr un eich ffurflen math, eich enw swyddogaeth, eich mewnbwn
rhestr.
Mae'n bôn y llinell gyntaf am eich datganiad swyddogaeth.
Mae'n wir i gyd ydyw.
Ond mae hyn yn unig yw math cyffredinol o fformat.
>> Felly, yn ein henghraifft fan hyn, Dylai yr ydych guys
wedi gweld yn adran ar ryw adeg, rydym wedi
rhyw ciwb int sy'n cymryd peth int o fewnbwn.
Ac rydym wedi ein prif swyddogaeth, sy'n galw ciwb.
A chiwb ei ddiffinio ar ôl y ffaith.
>> Felly os na bai gennym fewnbwn ciwb int ar y brig, pan byddem ni'n ei alw ciwb
o fewn prif, ein compiler Byddai cael wallgof ar ni.
Byddai'n cael ei hoffi, beth ydych chi'n siarad am?
Nid Cube yn bodoli.
Nid wyf yn gwybod beth rydych yn gofyn amdano.
A Im 'jyst yn stopio mynd.
>> Ond oherwydd ein bod yn gwneud ein prototeip ar y brig, yr ydym wedi dweud,
eich bod yn gwybod, pan fyddwch yn gweld ciwb, peidiwch â phoeni am y peth.
Rwy'n addo ei fod yn diffinio'n ddiweddarach.
A bydd yn gadael i chi wneud yr hyn rydych ei eisiau.
Felly, os ydych chi erioed gennych swyddogaeth sy'n cael ei ddatgan ar ôl i chi ei alw
am y tro cyntaf, mae angen i chi wedi ei prototeipio ar y brig.
>> Ie?
>> ROB: Mae'n sgwâr, nid cubing.
>> ALLISON: O fy Nuw.
Doeddwn i ddim yn have-- Gabe, yr wyf yn meddwl oeddech yn ein proofreader.
Guys OK, yn amyneddgar gyda mi, yma.
Rwy'n gobeithio y bydd pawb sy'n cael y syniad.
OK, felly dylai hyn gael wedi'i sgwario, nid torri'n giwbiau.
Ond mae'r syniad yn aros yr un fath.
Unrhyw swyddogaeth yr ydym yn galw ar ôl dylai'r ffaith fod â prototeip.
Mae pawb yn dda gyda hynny?
Unrhyw typos eraill?
OK.
Unrhyw typos yma cyn i ni ddechrau, Rob?
[Chwerthin] Iawn, felly structs.
Yn y bôn, byddwch yn caniatáu structs i greu eich math data eich hun.
Mae cymaint fel int neu torgoch neu fflôt, 'i' jyst fath arall.
Rwy'n hoffi meddwl am y peth fel, fel, creu eich math data eich hun.
Chi er ei fod yn caniatáu i wneud hynny.
Ac mae'n dal gwahanol fathau o ddata.
>> Felly, os ydych yn cofio, mewn amrywiaeth, rydym yn dim ond yn dal pethau o fath tebyg.
Structs yn ein galluogi i gynnal lluosog bethau o wahanol fathau.
Felly, yn yr achos yma, rydym yn fod â struct a elwir Myfyrwyr,
enwir yma ar y gwaelod.
Ac mae gennym rai id int a rhywfaint o enw llinyn.
Felly, mae hyn yn unig yw arall yn fath data.
Erbyn hyn mae gennym fath ddata o'r enw Myfyrwyr.
>> Felly, oherwydd ein bod yn gallu meddwl am mae fel dim ond un arall math data,
gallwn ddatgan newidynnau fel y byddem unrhyw arall.
Felly, yn hytrach na dim ond ar ôl, fel, mae myfyriwr yn int, rydym yn unig yn cael fyfyriwr,
i fyfyrwyr 1.
Oh, yn edrych.
Mae'n Rob.
Felly dyma ni yn datgan a struct, neu newidyn
Gelwir fyfyrwyr 1 o myfyriwr math.
Felly, mae'n mynd i gael id ac enw sy'n gysylltiedig ag ef.
>> A'r ffordd yr ydym yn cael mynediad rhain elfennau o fewn ein struct
yw gyda'r gweithredwr dot, yma.
Felly, yn yr achos hwn, rydym yn datgan rhywfaint myfyriwr 1.
Rydym yn neilltuo yr ID i fod yn 1.
Ac rydym yn neilltuo yr enw i fod Rob.
OK, mae pawb yn dda gyda hynny?
Defnyddiwch ef jyst like-- ie?
>> MYFYRIWR: Yeah, typedef-- pryd mae angen i ni ddefnyddio typedef?
>> ALLISON: Felly typedef unig Dywed that-- Rob, rydych
Gall gywiro fi ar hyn os wyf yn wrong-- ond typedef yn unig mewn gwirionedd yn datgan
fel math y gallwch eu defnyddio, dde?
>> ROB: Yeah, 'i' yn y bôn, felly mae'n dim ond creu
enw arall, neu lysenw am fath.
Felly, gallwch deipio bod [Anghlywadwy].
Felly [Anghlywadwy] yn bodoli, ac yn awr rydym yn unig wedi
[Anghlywadwy] fodd yn union yr un peth.
Ac felly dyma, rydym yn teipio, rwy'n credu, rhyw fath struct 2 [Anghlywadwy].
Felly, 'i' jyst llysenw am fath penodol.
>> MYFYRIWR: Llinynnol [Anghlywadwy] llyfrgell ei deipio i fyny fel seren torgoch.
>> ALLISON: At ein dibenion ni fan hyn, os ydych yn datgan struct,
dim ond gwneud typedef struct.
OK, felly ymlaen llaw, mae hyn yn dim ond newidyn normal yma.
Rydym yn cael mynediad 'i ag a dot.
os oes gennym pwyntydd i a struct, gallwn mewn gwirionedd
ddefnyddio saeth, sydd yn eithaf oer.
>> Felly, yn yr achos hwn, mae gennym pwyntydd i myfyriwr 1 sydd o myfyriwr math.
Cofiwch, gyda'ch adeiladu pwyntydd,
beth bynnag rydych am deipio eich pwyntydd yn pwyntio at i fod ar y dechrau.
Felly mae gennym rywfaint o fyfyrwyr 1, yma.
Ac ers myfyriwr hwn 1 yn pigfain awr,
gallwn mewn gwirionedd yn mynd i fyfyrwyr enw 1 arrow yn hytrach na dot, am ei fod yn pwyntydd,
a benodi Rob.
Ac yn awr os ydym am newid Rob i Davin,
mae hyn yn unig yw dangos i chi ffordd wahanol i wneud hynny.
>> Felly, yn hytrach na defnyddio'r saeth, rydych Gall also-- wyf am orffen hyn ac yna
cymryd bod question-- gallech hefyd yn gwneud cyfeirnod myfyriwr 1.
Mae hynny'n ei ddweud yn hoffi mynd i beth bynnag sydd yn fyfyriwr 1, a oedd yn
fyddai ein struct myfyrwyr.
Cael mynediad 'i ag a dot a'r elfen eich bod am, ac yna ail-neilltuo iddo.
Cafwyd cwestiwn.
MYFYRIWR: Ie, felly sut y dewch chi i ddefnyddio [Anghlywadwy] pan fyddwch chi
gwneud seren myfyrwyr heb [Anghlywadwy] myfyriwr?
ALLISON: Gan fod hwn yn creu pwyntydd.
ROB: Rydym yn mynd i siarad am y peth.
ALLISON: Rydym yn mynd i siarad am hynny yn nes ymlaen yn yr adolygiad.
Felly dim ond ddal gafael meddwl hynny.
Os yw'n dal i'ch poeni yn y pen, dewch siarad ag un ohonom ni.
>> Felly, mae'r rhain yn gwneud yn union yr un peth.
Rydym yn unig yn dangos i chi dau gwahanol ffyrdd o wneud hynny.
Myfyriwr 1 bellach yn pwyntydd, felly gallwch gael mynediad i'r elfen Enw
o fewn y struct gyda saeth.
Neu gallwch dereference eich pwyntydd, a Yna mynediad iddo gymaint ag arfer.
Ydy hynny'n gwneud synnwyr i bob un?
Os bydd y pwyntydd cyfan mae pethau ychydig yn ddryslyd, bydd Gabe yn siarad am hynny,
ac yna efallai hyn bydd yn gwneud mwy o synnwyr.
Ie?
>> MYFYRIWR: Ie, felly sut mae hyn yn wahanol i'r?
ALLISON: Yr un blaenorol?
Felly y myfyriwr 1 yn hyn Nid yw achos yn pwyntydd.
Mae'n dim ond eich struct gwirioneddol.
>> MYFYRIWR: OK.
>> ALLISON: Er bod yr un yma yn pwyntydd i struct.
>> MYFYRIWR: Iawn, ond a yw'n fath o yn y pen draw yn gweithio yr un fath [Anghlywadwy].
>> ALLISON: Mae'n gweithio yr un fath yn effeithiol.
Mae eich cystrawen yn unig yn wahanol.
MYFYRIWR: OK.
>> ALLISON: Yeah, maent yn effeithiol yr un fath.
'I' jyst yn dibynnu ar gyd-destun, efallai y byddwch am un dros y llall.
Ie?
>> MYFYRIWR: Pan fyddwch yn ei wneud cyfeiriadau at y 1--
ALLISON: Mm-EM?
MYFYRIWR: Pam ydych chi'n cael y cromfachau?
ALLISON: Gan fod myfyrwyr 1 yw'r pwyntydd.
Felly, mae angen i chi wneud yn siŵr eich bod yn jyst dereferencing y pwyntydd.
>> MYFYRIWR: OK.
>> ALLISON: Felly, yn yr achos yma, y cromfachau o'i gwmpas
yn golygu eich bod yn dereferencing fyfyriwr 1.
Felly, rydych chi'n mynd i lle mae myfyrwyr 1 pwynt, sef eich struct.
Felly, nawr gallwch feddwl am y peth fel y struct,
fel y gallwn ddefnyddio ein dot gweithrediad arferol.
Unrhyw gwestiynau eraill?
Cool, awesome.
>> Felly peth olaf, yr wyf yn meddwl yw fy sleid olaf, woo!
OK, felly fel y bo'r angen pwynt imprecision.
Buom yn siarad yn fyr am hyn yn ystod y ddarlith.
Yn y bôn, yr ydym wedi anfeidrol llawer o rifau real.
Ac os bydd unrhyw un ohonoch guys caru mathemateg, mae
pob math o bethau oeri gyda ni.
>> Ond mae yna ganmil llawer o rifau real.
Ond maen nhw ond yn gyfyngedig mae llawer o ddarnau sydd gennym.
Felly, byddwch bob amser yn mynd i cael imprecision, i gyd.
A dyna bod yn unig fath o fel rhywbeth y dylech ei wybod.
Gallai hynny fel y byddwn yn gofyn i chi pam mae imprecision pwynt arnawf yn bodoli?
Felly, dim ond rhywbeth y dylech ei wybod.
A chyda hynny, dwi'n troi 'i ar at Pointers.
>> BINKY: Helo, guys.
Binky Fy enw i.
Rydw i'n mynd i siarad am awgrymiadau.
Yeah, felly awgrymiadau mewn gwirionedd fy hoff ran yn y cwrs hwn.
Felly, dim ond er mwyn ei gwneud yn glir beth Allison yn siarad am fan hyn, felly y rheswm
why-- yr unig wahaniaeth yma, y gwahaniaeth mawr oedd y ffordd
rydym yn datgan pethau.
Felly seren cymwys yw hyn yn pwyntydd i fyfyriwr.
Tra y sleid o'r blaen, myfyriwr yn struct gwirioneddol, fel myfyriwr gwirioneddol,
sy'n cynnwys unrhyw un o'r pethau hynny.
>> A'r rheswm pam yr ydym yn eisiau i-- ie, Davin?
>> DAVIN: Beth mae'r saeth yn ei olygu?
>> BINKY: Y dull saeth yn union yr un fath â'r hyn.
Felly, nad ydych yn wir angen y saeth.
Fel, os ydych yn y rhaglen yn unig yn C, gallwch ddefnyddio hwn.
Mae'n ddrwg gennym, yr wyf yn gwneud nad beth yw hynny.
Gallwch jyst arfer cystrawen hwn.
>> Ond mae rhai pobl, pan eu bod yn dylunio C,
maent yn cyfrifedig bod pobl Defnyddir y gystrawen cymaint,
y byddant yn hoffi dim ond yn dod i fyny gyda strwythur cystrawen ar ei gyfer.
Ac mae hyn wedi digwydd yn ar ffurf saeth hon.
Ac mae'n neis iawn, gan fod mae'n symbol rhywbeth
fel rydym yn dilyn mewn gwirionedd saeth yma, pwyntydd yma,
tuag at ychydig o le yn y cof.
A phan fyddwn yn cyrraedd yno, rydym am edrych at enw'r y myfyriwr hwnnw,
os yw hynny'n gwneud synnwyr.
OK?
>> Felly mae hyn yn union yr un fath.
Mae hyn yn union yr un peth â hyn.
Maent yn cael eu llunio yn union yr un fath, OK?
A'r rheswm yma pam ein malloc rhywbeth, oherwydd yn yr achos hwn,
mae ein newidyn mewn gwirionedd dim ond newidyn pwyntydd.
Felly, rydym dim ond ychydig o le yn cof sydd wedi dal pwyntydd.
Dydyn ni ddim yn cael unrhyw le sy'n dal y struct gwirioneddol.
>> Felly, mae'n rhaid i hyn gael ei wneud mewn dau gam.
Mae'n rhaid i ni greu'r cof i roi'r struct yn.
Ac mae'n rhaid i ni greu'r cof i roi'r pwyntydd yn.
Felly, maent yn y bôn dau gwahanol newidynnau, yma.
Mae un ohonynt yn y myfyriwr math, ac eithrio ei fod nid yw'n wir yn cael enw.
Ac mae'r un arall yn o seren fath myfyrwyr.
Ac yna i fyfyrwyr 1 o bwyntiau yna, os yw hynny'n gwneud synnwyr.
OK?
>> Felly, y rheswm pam yr ydym yn defnyddio pwyntyddion yw fod popeth
mewn cyfrifiadur, pob newidyn mewn cyfrifiadur Mae dau beth.
Mae ganddo ei werth.
Ac mae wedi ei gyfeiriad.
Ac yn ffordd dda o conceptualize hyn yw mae '
llawer o broblemau pan fyddwch ceisiwch ddefnyddio swyddogaethau.
Ac rydym yn mynd i geisio edrych i mewn i un o'r rheini.
Sef, mae'n mynd i meddwl o gof fel blychau.
>> Yr ydych bob amser yn meddwl o newidynnau pan fyddwch yn dweud na hafal i 5.
Rydych chi'n meddwl o roi 5 mewn blwch.
Felly beth os ydych am i basio bod int i mewn i swyddogaeth?
'Ch jyst pass-- nad wyf yn ei wneud know-- x i mewn i swyddogaeth.
Ond beth sy'n digwydd yn Fel arfer, fel bodau dynol, yr ydych
Byddai yn meddwl rhywbeth fel fy mod gan fynd heibio i'r blwch i berson.
Ac nid mae'n ei wneud mewn gwirionedd digwydd mewn cyfrifiaduron.
Beth sy'n digwydd yw eich bod copïo'r gwerth o'r blwch i flwch y person.
>> Felly, yr hyn rwy'n ceisio ei ddweud yw os gennych function-- sorry-- yma,
os oes gennym swyddogaeth tebyg i bump i fyny yno, os ydych yn ceisio pasio newidyn,
dim ond mae'n mynd i gopïo.
Os yw nx ymgychwyn hafal 3, mae'n mynd i copi gwerth hyn i fyny at y newidyn a
i fyny yno.
OK, ac mae hyn yn fath o y rheswm pam ein bod eisiau defnyddio awgrymiadau.
Oherwydd yn hytrach na gan roi dim ond y gwerth,
hytrach na dim ond mynd heibio yn unig y gwerth i'r swyddogaeth,
rydym am i basio drwy gyfeirio.
Yr hyn rydym yn galw pasio drwy gyfeirio yn garedig o roi y blwch i'r swyddogaeth,
fel y gall y swyddogaeth hefyd newid y gwerthoedd yn y blwch.
>> OK, felly dim ond rhai pwyntydd sylfaenol stwff yw creu awgrymiadau,
'ch jyst yn datgan ei fod yn fath, a chi roi seren dde ar ôl iddo.
A'r math yn unig hyn yr ydych yn pwyntio at.
Felly os yw'n 'an seren int, eich bod yn pwyntio mewn int.
Os yw'n seren torgoch, eich bod yn pwyntio ar siart.
Ac os ei fod yn seren myfyrwyr, eich bod yn pwyntio at fyfyriwr.
OK?
>> Ac maen nhw i gyd 4 bytes o hyd.
Gan fod newidyn hwn Nid yw'n gwneud mewn gwirionedd
Mae angen i ddal torgoch, yn int, neu'n fyfyriwr.
Dim ond angen iddo gynnal gyfeiriad.
Dyna pam maen nhw i gyd 4 bytes hir mewn peiriant 32-bit normal.
OK?
Felly dyma, x yn newidyn sy'n pwyntiau i int. y pwyntiau i torgoch. pwyntiau z
i fflôt.
Unrhyw gwestiynau fan hyn?
Cool.
Ac mae dau gwahanol symbolau sydd ganddynt
i gadw mewn cof wrth dod i'r pwyntydd.
Felly cyfeirio a dereferencing yw'r rhai mawr.
Felly y ampersand y enw newidyn yn rhoi i chi y?
MYFYRIWR: Cyfeiriad.
BINKY: Cyfeiriad.
Felly, os ydych yn datgan int a yn hafal i 5, yna ampersand
o yn mynd i roi cyfeiriad i chi.
A allwch chi roi cynnig mewn gwirionedd i argraffu hynny a gweld
pa gyfeiriad mewn cof eich newidyn wedi.
Ac yna dereferencing-- fel eu bod yn cyfeirnodi,
cael y dereferencing address-- yw'r union gyferbyn.
OK, yn union fel amserau yw'r gyferbyn o is-adran,
seren yn y gwrthwyneb o ampersand.
Felly dereferencing yn golygu mynd yno.
Felly, os byddwch yn rhoi i mi star-- peidiwch â know-- 50, dyna
mynd i geisio mynd at y cyfeiriad o rhif 50 tu mewn i'ch cyfrifiadur.
OK, a pham yr ydym yn gweld eu bod yn croes?
Oherwydd bod yr hyn sy'n digwydd os ydych yn ei wneud rhywbeth fel seren ampersand a?
Wel, ampersand a rhoi cyfeiriad i chi o newidyn, cyfeiriad a.
Ond mae seren yn golygu mynd yno.
>> Felly, beth sy'n digwydd os ydych yn mynd at y cyfeiriad o?
Yr ydych newydd gyrraedd, dde?
Felly, yn mynd i gyfeiriad a yw yr un peth â a.
Dyna pam eu bod fel arfer yn cyfeirio at y same-- hon
ac mae hyn yn cael eu cyfeirio at gweithredwyr fel gyferbyn.
OK?
Mor oer.
>> O dan y cwfl, er enghraifft, os ydym yn datgan int x yn hafal i 5,
mae gennym newidyn.
A chofiwch fy mod wedi dweud pob variable-- ac mae hyn yn beth da
i gadw mewn mind-- mae wedi dwy pethau gwahanol sy'n gysylltiedig â.
Mae ganddo afael a gwerth.
OK?
>> Felly mae'r gwerth yn yr achos hwn yw 5.
Ac yw-- y cyfeiriad gadewch i ni ddweud, rwy'n gwneud rhywbeth up-- 'i' 0x04.
A'r unig reswm pam yr ydym fel arfer yn cynrychioli cyfeiriadau yn hecsadegol
yn un, oherwydd y mae fel yn dda.
Mae'n mynd yn dda gyda deuaidd.
Mae'n hawdd i droi yn ôl ac ymlaen deuaidd.
Ac nid yw'n mynd yn rhy fawr os gennych nifer fawr iawn.
Felly, rydym yn hoffi defnyddio hecsadegol mewn cyfeiriadau argraffu.
Ond allwn i gynrychioli hyn fel cyfanrif.
Mae'n iawn.
>> Ac felly mae ganddo gyfeiriad 4 a gwerth o 5.
Ac yna y dywedais pwyntydd seren int.
Felly, mae hyn yn fath, rhybudd gwahanol.
Pwyntydd seren int hafal y cyfeiriad o x.
Felly beth sy'n mynd i fod yn werth PTR?
Mae'n mynd i fod yn gyfeiriad o x, i lawr yma.
Iawn, felly mae'r gwerth yn mynd i yr un fath ag y cyfeiriad.
Dyna yr aseiniad yn gweithredu rwy'n ei wneud.
Ac yna ptr yn mynd i gael ei gyfeiriad ei hun, sydd yn troi allan,
yn yr achos hwn, mae'r 8, OK?
>> Ac yna yr wyf yn creu copi cyfanrif newydd.
Ac yr wyf yn dweud copi int hafal mynd yno.
Felly ewch i ba ptr yn pwyntio i.
Wel, pa ptr hwn?
Mae gan PTR 0x04.
Beth fydd yn digwydd os byddaf yn ceisio mynd yno?
Byddaf yn dod o hyd y dyn sydd wedi cyfeiriad x a phwy sydd gyfeiriad 4.
Ac sydd wedi mynd i'r afael pedwar yw x.
A yw hynny'n gwneud synnwyr?
Ie?
>> MYFYRIWR: Yn yr achos hwn, yn pwyntydd mewn pentwr?
>> BINKY: Yn yr achos hwn, it's-- Cwestiwn da.
Doeddwn i ddim wir yn meddwl am hyn wrth iddynt wneud cyfeiriadau hyn.
Ond os yw hyn yn, fel, i gyd mae'r rhain yn newidynnau lleol,
Yna, x yn mynd i fyw in-- bopeth yn mynd i fyw yn y pentwr.
Felly mae popeth yn mynd i fod yn pwyntio i'r golwg.
Byddwch ond yn cael at y domen pan byddwch yn dechrau defnyddio malloc, dde?
>> Felly, os ydych yn cofio stac yw bob tro byddwch yn ffonio swyddogaeth yn eich rhaglen,
fel, prif er enghraifft, neu unrhyw swyddogaeth arall, fel printf.
Mae pob un o'r newidynnau lleol yn mynd i gael eu rhoi mewn ffrâm pentwr.
Ac maent yn mynd i gael fel pentyrru i fyny yn y pentwr.
Dyna beth a elwir pentwr.
A holl newidynnau lleol hynny yn mynd i fod yno.
Ac mae'r heap-- ac rydym yn mynd i siarad mwy am hyn later--
mae'r domen yn lle pob un ddyrannwyd bywydau cof ddynamig.
Cool?
>> Rydym yn mynd i'r sleid hwn.
Ie?
>> MYFYRIWR: Ni Pam fod int copi dychwelyd 0x04?
>> BINKY: Ni Pam fod int copi dychwelyd 0x04?
>> MYFYRIWR: Pam nad yw bod [Anghlywadwy]?
>> BINKY: Oherwydd yr hyn yw gwerth y ptr?
>> MYFYRIWR: 0x04.
>> BINKY: 0x04.
Beth sy'n digwydd os byddwch yn mynd i 0x04?
Beth fyddwch chi'n ei gael?
>> MYFYRIWR: O, OK.
BINKY: Byddwch yn gweld?
MYFYRIWR: Ydw.
BINKY: Felly, byddwch yn cael 5.
Felly mae copi yn mynd i gael 5, os yw hynny'n gwneud synnwyr.
Ie?
>> MYFYRIWR: A allem wedi gotten 5 yn y blwch gwerth [Anghlywadwy]
os ydym yn rhoi int copïo [Anghlywadwy].
>> BINKY: Int-- byddem, yeah.
Byddai hynny wedi gwneud 'n bert lawer yr un peth.
Ond y ffordd hon, gallwn drosglwyddo mynd i'r afael â swyddogaethau.
A dyna yw'r peth cŵl rydym yn mynd i wneud ar hyn o bryd.
>> Felly y math hwn o ymarfer corff bob amser yn dod i fyny on-- fel arfer yn iawn yn dod i fyny ar y cwisiau.
Felly mae'n wirioneddol dda i geisio yn gwneud y math yna o beth eich hun.
Felly ceisiwch gadw golwg ar yr hyn y cyfeiriad yw ac eisiau gwerthoedd y newidynnau
ar bob pwynt.
Felly mae hyn yn union yr hyn rydym yn mynd i'w wneud.
Yma, mae gennym grisiau, un, dau, tri, pedwar, pump.
Un, dau, tri, pedwar, pump.
Ac rydym yn mynd i gadw golwg o werthoedd o x ac a.
>> Felly, beth mae hyn yn ei wneud, os yw hyn yn cod bygi, yr ydym yn ceisio ei wneud i bump.
Felly, rydym yn ceisio cael mewn amrywiol ac yn newid ei werth i 5.
A chofiwch fy cyfatebiaeth o gael blwch ac yn trosglwyddo i'r blwch i rywun?
Felly prif Mae y blwch hwn a elwir yn x.
Ac mae'n cynnwys y gwerth 3.
A dwi'n ceisio ei law y blwch hwn i at bump.
>> Ac rwyf am bump i newid gwerth y blwch hwn i 5.
Ac yna Fi jyst argraffu werth x.
Mae hyn yn yr hyn y mae fy function-- mae hyn yn beth rwy'n ceisio ei wneud.
Im 'jyst yn ceisio ei ddiweddaru werth x i 5.
A yw'n glir yr hyn y mae'r swyddogaeth yn ei wneud?
>> Iawn, felly beth yn mynd i fod y werthoedd o x a hawl yma,
y llinell gyntaf, i'r dde cyn y cyntaf line-- Byddwn say-- o'r rhaglen?
>> MYFYRIWR: Mae'n debyg garbage.
>> BINKY: Dim ond stwff garbage.
Felly, Fi jyst rhoi N / A. Felly dydyn ni ddim yn gwybod.
Fel, nid yw hyd yn oed yn bodoli eto, oherwydd nid ydym wedi galw i bump.
Nid Int a yn cael ei ddatgan.
Ac x yn mynd i fodoli yma, ond nid ydym wedi gwirionedd
neilltuo unrhyw werth iddo, felly OK?
>> Ac yna, beth yn mynd i fod y gwerthoedd x ac mae mewn rhif dau?
>> MYFYRIWR: [Anghlywadwy].
>> BINKY: Felly x yn mynd i fod yn 3.
Mae hynny'n hawdd, gan fod rydym yn aseinio 3 iddo.
Ac mae yn dal yn bodoli oherwydd bod yn unig yn byw mewn i bump.
Felly, dw i'n mynd i gael 3 a dim byd.
neu fel garbage, beth bynnag, Nid yw diffinio'n gwirionedd.
Ac yn awr, dyma'r llinell pwysig.
Yma, rydym yn mynd i mewn gwirionedd yn galw i bump.
A chofiwch hyn a ddywedais.
Rydym byth yn pasio yn y blwch.
Rydym jyst adysgrifia werth y blwch i'r blwch arall.
Dyna'r cyfan cyfrifiaduron yn, copïo pethau o un lle i'r llall.
>> Felly, i bump, yr hyn y mae'n ei wneud mewn gwirionedd a yw'n copïau werth x i a.
Felly beth sy'n mynd i fod yma?
Mae gwerthoedd x ac a.
3 a 3, byddwn yn jyst adysgrifia mae'n drosodd o x i a.
Cool.
>> Nawr rydym ni yma.
Ac yn awr rydym yn mynd i ddiweddaru hafal i 5.
Beth sy'n mynd i ddigwydd yn unol pedwar?
>> MYFYRIWR: [Anghlywadwy].
>> BINKY: a ​​yn cael ei diweddaru, ond nid yw x oedd yn cael ei diweddaru.
Oherwydd bod x yn dal i fyw yn y prif, mae'n hollol wahanol bloc o cof.
Mae'n newidyn gwahanol.
a yw newidyn arall.
Maent yn digwydd i gael y un gwerth am fy mod
copïo dros werth x i a.
Ond yn awr pan wyf yn ei wneud yn hafal i 5, mae'n nid yw'n wir yn effeithio x mewn unrhyw ffordd.
Mae hyn yn y rhan fwy anodd.
A yw'n gwneud synnwyr i bawb?
Ie?
MYFYRIWR: Un cwestiwn mwy, mae gennych 3.
Pam fod already-- oh, na, 'i' 3.
Mae'n ddrwg gennym, heb sôn.
Rwyf yn darllen 5.
>> BINKY: Yeah, 3, 3.
>> MYFYRIWR: [Anghlywadwy], yeah.
BINKY: Ac yna rydym yn aseinio 5 i mae, ond nid yw'n wir yn newid x.
Da?
MYFYRIWR: Ydw.
BINKY: Ie?
Allwch chi egluro eto sut a yn cael copïo [Anghlywadwy]?
>> BINKY: OK, felly pan fyddwch yn galw i bump o x, felly y llinell hon o god yma.
i bump o x, beth yw x?
x yn unig 3 ar hyn o bryd, dde?
Felly, fe allech chi jyst yn meddwl o roi a 3 mewn yma ac yn anghofio am x.
Dim ond yn rhoi 3 yma.
Fel, rydyn ni'n mynd i gopïo dros y gwerth o x i'r int a dyna i fyny yno.
OK?
>> Felly mae'r gwerth x yw 3.
Rydym yn mynd i gopïo 3 drosodd i a.
Ac mae hyn i gyd bloc arall o cof, y newidyn arall
a elwir yn cael 3, yn ogystal.
A yw hynny'n gwneud synnwyr?
Ie?
>> MYFYRIWR: Os ydych yn rhoi i bump fel rhaid iddo fel cyfanrif x yn hytrach na,
a fyddai'n atgyweiria popeth?
>> BINKY: Os yw'n 'an integer-- dim, Ni fyddai'n atgyweiria popeth.
Felly dyna gwestiwn da iawn.
Nid oes llawer o bwys beth byddwch yn ffonio newidynnau hynny.
Unwaith eto, bydd yn fater o gwmpas, oherwydd nad ydynt yn yr un x.
Maen nhw'n gwbl mannau gwahanol yn y cof.
MYFYRIWR: [Anghlywadwy].
BINKY: Felly, nid yw'n gwneud 'n sylweddol ots beth yr ydych yn eu galw.
Nid yw hynny'n datrys pethau, OK?
Mwy o gwestiynau?
Ie?
>> MYFYRIWR: Sut mae'n ôl i rhif pump [Anghlywadwy]?
BINKY: OK, nid ydym wedi gwneud hynny eto.
Gadewch i ni fynd i rif pump, yna.
>> MYFYRIWR: [Anghlywadwy]?
>> BINKY: Beth?
>> MYFYRIWR: Oes gennych chi ddychwelyd o gwbl?
BINKY: Nid oes gennym dychwelyd, nid o brif.
Ond prif yn dychwelyd 0 yn awtomatig os na fyddwch yn dychwelyd unrhyw beth.
Ie?
>> MYFYRIWR: Allech chi wneud main-- neu y gallech eu gwneud i bump ffurflen a?
>> BINKY: Gallem gael i bump dychwelyd, ie.
Ond yna byddai'n rhaid i ni neilltuo x yn hafal i werth dychwelyd i bump,
a fyddai'n fod yn ychydig yn raglen wahanol.
Y byddai'n gweithio.
Ond yr hyn yr ydym am ei wneud yw hyn sydd Gelwir newid rhywbeth yn ei le.
Felly, rydym am i mewn gwirionedd newid hynny blwch ac â phoeni
am orfod dychwelyd gwerthoedd neu unrhyw beth.
OK?
>> Mae hyn yn union fel y swyddogaeth cyfnewid Dangosodd David mewn darlith, ac eithrio fy mod
ond yn delio ag un newidyn.
A defnyddiodd dau, felly int a a b a Yna, amrywiol a whatnot dros dro.
OK?
Felly beth yw'r llinell olaf?
Ar ôl i bump yn dychwelyd, 'i' yn syml y mae yn mynd i fynd i ffwrdd.
Ni fydd gennym anymore, a dim ond x dal i fyw ar.
>> A dyfalu beth? x nid oedd yn newid ei werth,
wedi'r cyfan, oherwydd ein bod yn Dim ond newid y gwerth a.
Dyna pam mae x yn 3 drwy gydol.
OK?
Da.
Felly, nid yw'r rhaglen hon yn cyflawni'r hyn yr ydym ei eisiau.
Nawr, gadewch i drwsio.
>> Ac mae'r rhaglen atgyweiria yn defnyddio awgrymiadau.
Yr hyn rydym yn ei wneud yw gennym dri llinellau sy'n wahanol.
Mae'r rhai cyntaf yw nad ydym yn pasio x.
Rydym yn pasio y cyfeiriad o x.
Felly, yn lle hynny copïo drosodd gwerth y bocs,
Rydw i'n dal i fynd i gopïo dros rywbeth.
Ond dw i'n copïo drosodd cyfeiriad y bocs.
>> Felly, os wyf yn llwyddo yn y cyfeiriad y blwch i at bump, yna i bump
yn gallu dod o hyd i hynny yn cof ac yn newid ei werth.
>> Felly, ac yna i fyny yno, mae gen i Nid yw bod yn int anymore.
mae yn seren int.
Mae'n pwyntydd i'r cyfanrif.
Ac yna, oherwydd fy mod i'n mynd heibio i'r rhoi sylw yma, ac yna yr hyn yr wyf yn ei wneud
nid yw'n hafal 5, oherwydd a yn cynnal gyfeiriad.
Felly, yr hyn yr wyf am ei wneud yw mynd yno ac diweddaru'r cynnwys y cyfeiriad hwn
gyda 5.
>> OK, felly gadewch i ni fynd drwy'r pob un o linellau o un i un.
Felly, pan fyddaf yn dechrau fan hyn, yr wyf yn yn dal i gael N / A, N / A, N / A
ar gyfer popeth yn y cyntaf lein, oherwydd nid wyf wedi wir yn
datgan pethau eto.
Ac yna llinell dau, mae gennyf x yn hafal i 3.
Nid yw seren int a ddim yn bodoli, un peth ag o'r blaen.
>> Nawr mae'n mynd yn ddiddorol.
Felly, dw i'n mynd i basio.
A gadewch i ni dybio bod y cyfeiriad o x yw 12 yn hecsadegol.
Gadewch i jyst cymryd yn ganiataol hyn.
Yr wyf yn gwneud i fyny.
Felly, beth ydw i'n pasio yma yw i bump.
Im 'yn pasio 12.
>> Felly, pa werth sydd gan gael?
>> MYFYRIWR: [Anghlywadwy].
>> BINKY: Mae'n ddrwg gennyf?
>> MYFYRIWR: [Anghlywadwy].
BINKY: Yeah, fel, er mwyn gadewch i ni cymryd yn ganiataol ein bod yma, yn awr.
Rwy'n gofyn.
>> MYFYRIWR: [Anghlywadwy].
>> BINKY: Mae wedi cael ei gychwyn.
>> MYFYRIWR: [Anghlywadwy].
BINKY: Oherwydd ein bod pasio rhywbeth i'r swyddogaeth.
Ie?
>> MYFYRIWR: Cyfeiriad x.
BINKY: Mae'n mynd i gael y cyfeiriad o x.
A chyfeiriad x yn 12, yn dda.
Felly mae x yn mynd i fod yn 3, gan fod nid ydym wedi newid mewn gwirionedd x eto.
Ac yna mae yn mynd i fod 0x12, felly y cyfeiriad y x, oherwydd dyna
hyn yr ydym yn ei drosglwyddo i at bump.
>> Ac yna beth sy'n digwydd os ydym yn ceisio mynd yno?
Beth ydym yn mynd i ddod o hyd?
Felly, os ydych yn ceisio argraffu seren a, rydym yn mynd i ddilyn y cyfeiriad hwn
a chael y gwerth y tu mewn.
A'r gwerth yn unig yr un gwerth a x
Mae oherwydd dyna yw'r gyfeiriad o x, a fydd yn 3.
A ydym yn dda?
>> OK, ac yna erbyn hyn, rydym mewn gwirionedd yn mynd yno.
Ac rydym yn diweddaru beth bynnag yn y cyfeiriad hwn 12.
Rydym yn ei gwneud yn 5.
Felly nawr ddau x ac seren a 5.
>> Pam hynny?
Oherwydd bod y cyfeiriad o x yw 12.
Ac mae hefyd 12 fel ei werth.
Felly, os ydym yn dilyn 12, rydym yn jyst yn mynd i ddod o hyd x.
Felly, beth bynnag a wnawn gyda a seren yn mynd i ddigwydd
i x, oherwydd bod cynnwys y cyfeiriad o x.
OK?
>> Ac mae hyn yn debyg i'r craidd y atgyweiria.
Felly, yn awr rydym yn gallu, o i bump, mewn gwirionedd
cof mynediad a oedd yn byw yn y prif.
Felly, nid yw cof hwn yn byw mewn i pump, fel o'r blaen, y cyfeiriad hwn 12.
A bu modd i fynd yno ac yn newid ei werth i 5.
>> Ac yna pan fyddwn yn dychwelyd, rydym yn anghofio am a.
Rydym yn anghofio am y seren a.
Ac x yn dal pump.
Felly, os ydych yn dymuno gweithredu swyddogaeth cyfnewid,
Byddai 'ch jyst yn gwneud yr un peth yn union, ac eithrio angen i chi int sêr yma,
ac yn y blaen ac yn y blaen.
OK?
A ydym yn dda?
Cool.
>> Felly pwyntydd rhifyddeg.
Mae hwn yn bwnc ychydig yn anodd.
Felly, mae'n ymddangos bod awgrymiadau yn unig gyfanrifau.
Gallwch chi feddwl amdanynt fel gyfanrifau.
Oherwydd mewn cof, mae gennych hoffi cyfeiriad sero, un, dau, tri cof,
pedwar, pump.
Felly, gallwn swm cyfeiriadau cof.
>> A dyna fel arfer yn yr hyn yr ydych yn ei wneud pan fydd ydych chi mewn ac amrywiaeth, er enghraifft.
Amrywiaeth yn union fel yn cydgyffwrdd bloc o cof, o lawer o chars,
er enghraifft, llawer o ints.
Felly os ydych am fynd i'r ail int neu i'r drydedd int,
gallwch am grynhoi rhywbeth i'r cyntaf cyfeiriad, a ydych yn mynd i gyrraedd yno.
Felly mae hyn yn ddefnyddiol iawn ar gyfer hynny.
>> A'r peth i gadw mewn cof, fodd bynnag, yw
na 'i' jyst yn hoffi rhifyddeg arferol yn yr ystyr
os ydych yn delio â, dyweder, seren int, ac yr ydych yn ychwanegu 1 ato,
yna nid ydych yn mynd i ychwanegu 1 at y cyfeiriad,
ydych yn mynd i ychwanegu 4 at y cyfeiriad.
Am fod int yw 4 bytes.
>> Felly mae hyn yn union fel cerdded ar arae.
Os oes gennym amrywiaeth o lawer o ints a Yna, rydym yn ceisio mynd i'r ail un,
'i' y bôn yn unig grynhoi y cyfeiriad yr un cyntaf ac 1.
Ond ni fydd hynny'n be-- dim ond gadewch i ni ddweud bod y cyfeiriad yr un cyntaf yw 4.
Yma, yn yr achos hwn.
Ac os ydym yn swm, felly mae hyn yn yw'r hyn sy'n digwydd.
Mae gennym int.
Int x yn hafal i 5.
X mae iddo werth 5.
Ac rydym yn ymgychwyn y pwyntydd yma, int y seren int y hafal i gyfeiriad o x.
>> Gadewch i ni dybio y cyfeiriad o x yw 4.
Beth sy'n mynd i ddigwydd yn awr os wyf swm ychwanegu 1 i y?
Mae'n mynd i mewn gwirionedd swm 4 yn hytrach na dim ond 1.
Felly yr wyf yn ychwanegu 1, ond mae'n mewn gwirionedd Ychwanegodd 4, gan fod cyfrifiadur smart.
Felly, mae'n mynd i ychwanegu mewn gwirionedd gan i amseroedd maint y math o y pwyntydd.
OK?
>> Felly, pe bai'n torgoch, er enghraifft, pe bai hwn yn y seren char,
ac os ydym yn ychwanegu 1, yna byddai hyn yn fod yn 5, gan fod torgoch yw 1 beit hir.
Da?
>> Ac yn olaf, rydym yn cael i pwyntyddion a araeau.
Mae'n ymddangos bod bob tro eich bod yn delio gydag amrywiaeth,
eich bod mewn gwirionedd yn delio â pwyntydd.
Y rheswm cysyniadol neis iawn ar gyfer hyn yw bod araeau yn fawr iawn.
Felly cofiwch y dywedais fod bob tro y byddwch yn pasio pethau o gwmpas,
ydych yn copďo popeth.
Felly os oes gennych amrywiaeth mae hynny'n iawn, iawn mawr,
nad ydych yn wir eisiau copïo popeth bob tro
byddwch yn pasio o gwmpas i un arall swyddogaeth, oherwydd dyna yn unig
symiau enfawr o waith.
Felly, yr hyn yr ydych yn ei wneud yn y gorffennol yn unig cyfeiriad y beit cyntaf.
Ac yna bydd y swyddogaeth yn cael mynediad i'r holl elfennau yn y casgliad.
Felly, rydych basio y casgliad gan ei gyfeiriad, felly mae'r cyfeiriad y beit cyntaf.
>> Felly os ydym yn datgan int array 3, yma, rydym yn gwybod
sut i gael gafael ar yr elfen gyntaf gan ddefnyddio'r nodiant braced.
Os ydych yn cofio'r braced nodiant, braced array 0 yn dychwelyd 1.
Wel, byddai hyn yn union yr un fath ag yn unig yn mynd yno ac yn rhoi 1.
OK, yn union yr un peth.
Felly y nodiant braced yn fan hyn Bydd yr un fath ag y llinell hon.
>> A dyfalu beth mae'r nodiant braced am amrywiaeth braced 1 fydd yn?
Bydd yn unig fod yr un peth â hyn.
Felly ychwanegu un at amrywiaeth.
Symud un hyd mewn cof.
Ewch yno, ac yn rhoi 2.
OK?
Ac mae hyn yn llinell yn yr un peth.
Rydym yn awyddus i fynd i'r trydydd bocs, felly array a 2.
Ewch yno, ac yn rhoi 3.
Felly mewn cof, yr hyn sy'n mynd i ddigwydd yw ein bod yn
mynd i gael 1, 2, a 3 fel y tair elfen amrywiaeth hwn.
>> Gallem fod wedi gwneud hyn drwy ddefnyddio ein nodiant braced cyfarwydd.
Fi jyst am i chi guys i wybod eu bod yn yr un peth.
OK, cwestiynau am hyn?
Nice.
Nawr, dw i'n mynd i law 'i ar at Hannah,
>> HANNAH: Yay, Yee-haw.
>> BINKY: Siarad am cof ac erthygl stwff.
[Cymeradwyaeth]
>> HANNAH: Hi, oer, felly rydym yn mynd i siarad ychydig yn fwy
am cof, yr ydym yn unig sylw gan ddefnyddio pwyntyddion.
Felly, mae dwy brif ran o cof ein bod yn ymwneud â.
Mae gennym y simnai, sy'n tyfu i fyny yn y gwaelod, a'r domen, a oedd yn
mynd i lawr o'r top.
Ac mae'r pentwr yn mynd i ddal pob un o'n enghraifft newidynnau.
Felly, pob un yn galw i swyddogaeth yn cael ei ffrâm bach ei hun ar y pentwr.
Felly, fel y crybwyllwyd yn gynharach Gabe, os ydym ffoniwch y swyddogaeth dro ar ôl tro,
rydym yn mynd i bentyrru pethau fyny ar y pentwr.
>> Ac yn yr un modd, y domen, sy'n dechrau ar y brig
yn mynd i ddal yr holl o'r cof ein bod yn ddynamig dyrannu.
Ac felly wrth i ni ddynamig dyrannu cof,
Bydd hyn yn dod i lawr tuag at y gwaelod.
Cwpl o bethau i fod yn ymwybodol o ba bryd rydym yn defnyddio'r stac a'r domen,
gyda'r stac, os oes gennym ormod many-- gadewch i say-- galwadau recursive,
ac rydym yn galw swyddogaeth eto, ac unwaith eto, ac unwaith eto, ac unwaith eto,
ac mae'n pentyrru i fyny, pentyrru i fyny, pentyrru i fyny.
Ac mae'n mynd i ddamwain i mewn i'r domen.
Rydym yn mynd i redeg allan o gof.
Sy'n mynd i achosi problem ar gyfer y cyfrifiadur.
Ac mae hynny'n cael ei alw y gorlif pentwr.
Felly dyna bendant yn rhywbeth yr ydych yn Dylai fod yn ymwybodol o, a cheisio osgoi.
Ac mae'r domen, rhaid i ni gofio i beidio â gollwng cof ddamweiniol.
Unrhyw bryd y byddwch yn defnyddio malloc, peidiwch â anghofio i ryddhau y cof.
Fel arall, mae'n annhymerus jyst fod ar y domen a wastraffwyd,
ac ni fydd y cyfrifiadur yn gwybod bod ei bod yn rhydd i ddefnyddio hwnnw cof.
Felly, y rhai yn gwpl o bethau i fod yn ofalus iawn gyda phryd
rydych yn delio â y pentwr a'r domen.
Unrhyw gwestiynau gyda hyn?
Awesome.
>> OK, oer.
Felly y math hwn o yr un syniad fel gorlif stac, lle
rydym yn mynd y tu hwnt i'r ffiniau'r hyn cof
yw ein bod yn fod i fod yn gallu defnyddio.
Felly, yn cymryd, er enghraifft, byffer, neu os ydych yn Gallai dim ond meddwl am y peth fel arae.
A dywedasom, OK, rydym yn mynd i greu'r casgliad bach neis.
Mae'n mynd i fod yn llinyn.
Neu mae'n mynd i storio cymeriadau.
A 'i' jyst yn mynd i ddweud helo.
Ac mae'n amhenodol.
Dyna ni.
>> Ond os wyf yn rhywun drwg ac yn awyddus i gwneud rhywbeth drwg gyda'r amrywiaeth hwn, beth
Gallwn i wneud yw ceisio ysgrifennu heibio diwedd y llinyn.
Ac fel y gwelwch, os Yr wyf yn ysgrifennu yn ddigon pell,
Rwy'n gallu effeithio mewn gwirionedd y cyfeiriad dychwelyd.
Ac os wyf yn dechrau effeithio ar y cyfeiriad dychwelyd,
Rwyf yn effeithio ar sut mae'r rhaglen mewn gwirionedd yn rhedeg.
Ac yn hytrach na dychwelyd, rydych gwybod, llinyn hapus fel helo, yr wyf yn
Gallai gwneud rhywbeth drwg, fel mynd at rhywle arall yn eich cyfrifiadur, yn dal i
cof, ei newid, beth bynnag rwyf am ei wneud.
Felly dyna beth y byddai hyn yn edrych fel yw os Fi jyst fath o llenwi i fyny
gyda gwerth garbage ar hap, yn yr achos hwn, dim ond.
Ac yna pan Fi 'n weithredol gyrraedd y cyfeiriad cof,
I Dechreuodd ei lenwi gyda rhywbeth bod yn gwneud yr hyn yr oeddwn am iddo ei wneud.
Unrhyw gwestiynau gyda gorlif byffer?
Awesome, dde hedfan trwy'r pethau hyn.
>> Iawn, felly rydym yn siarad llawer o am y pwyntydd gyda Gabe.
Sut ydym mewn gwirionedd yn cael pwyntydd?
Sut ydym yn cael cyfeiriad yn y cof?
Wel, gallwn ddefnyddio glws hwn malloc alwad swyddogaeth, sef
yn mynd i gael ychydig o ddarn o gof,
yn benodol yn y domen, fel y trafodwyd,
ac mae'n mynd i roi yn ôl i chi pwyntydd at y cyfeiriad hwnnw mewn cof.
A'r ddadl yr ydym rhaid i roi i malloc
yw faint o le mewn cof yr ydym ei eisiau.
>> Fel y gallwch weld faint yn beit.
Gadewch i ni ddweud, er enghraifft, neu mewn gwirionedd, yn yr enghraifft hon,
ydym yn dyrannu digon lle ar gyfer 10 o gyfanrifau.
Felly, yn ôl pob tebyg yr hyn rydym yn mynd i eisiau i roi yma yw amrywiaeth o 10 o gyfanrifau.
Felly rydym yn rhoi maint y ints, a oedd rydym ddysgwyd oedd faint o bytes?
MYFYRIWR: 4.
HANNAH: 4, hardd, ac yr ydym yn am 10 o'r rheiny mewn rhes,
fel y bydd gennym ddigon o le i storio pob 10 gyfanrifau, yn yr achos hwn.
Rhywbeth super bwysig, unrhyw tro y byddwch yn galw malloc,
mae'n rhaid i chi i wirio am null.
Os nad ydych yn gwirio am null, yn dda, malloc os bydd yn rhedeg allan o le
a all mwyach roi i chi unrhyw mwy o gof, bydd yn dychwelyd null.
Felly os nad ydych yn gwirio, Gall malloc yn dychwelyd null.
Ac yna, os ydym yn ceisio dereference pwyntydd null,
rydym yn mynd i gael nam segmentu, y byddwn yn siarad am ar hyn o bryd.
Awesome.
>> OK, cwestiynau gyda malloc?
Ie?
>> MYFYRIWR: A yw gwirio nwl Nid yw [Anghlywadwy] yn gwneud hynny ar y cwis?
>> HANNAH: Cadarn, y cwestiwn oedd mae'n ei matter-- ar y cwis,
byddwch yn cael pwyntiau i ffwrdd os nad ydych yn edrych am null?
Ydw, byddwch yn cael pwyntiau off os nad ydych yn gwirio am null.
Unrhyw tro y byddwch yn galw malloc, y ddau ar y cwis a'ch psets ac mewn bywyd go iawn,
mae'n rhaid i chi i wirio am null.
Cwestiwn da.
>> Gabe: Beth os nad wyf yn rhad ac am ddim?
HANNAH: Gabe eisiau gwybod beth os nad ydym yn ei wneud am ddim.
Yna bydd gennym gollwng cof yn ein tomen.
Unrhyw gwestiynau eraill?
Ie?
>> MYFYRIWR: All you-- mynd dros gorlif byffer real cyflym eto?
>> HANNAH: Cadarn.
Y cwestiwn oedd gallwn fynd drosodd gorlif byffer wirioneddol gyflym.
Gadewch i ni fynd yn ôl at sleidiau hynny.
Felly byffer, gallwch jyst meddwl amdano fel amrywiaeth, dde?
Mae gennych ychydig o le yn y cof.
A phan fyddwn yn gyntaf yn creu ein array, gwyddom araeau wedi sefydlog maint,
neu ein byffer Mae maint sefydlog.
>> Felly, gadewch i ni ddweud yn yr achos hwn, rydym wedi dim ond digon o le i ysgrifennu y llinyn helo.
Os ydym yn mynd heibio y rhwymo, os ydym yn mynd heibio yr hyn y mae ein amrywiaeth y dywedwyd y gallai ddal,
gallem mewn gwirionedd yn dechrau ysgrifennu i mewn i gof
nad yw'r cyfrifiadur yn ei wneud am i ni ysgrifennu i mewn.
Ac yn benodol, os byddwn yn taro rhywbeth fel y ffurflen
mynd i'r afael o'r swyddogaeth, sef, fel unrhyw ddarn arall o gof,
yn unig yw rhywle yn eich cyfrifiadur, gallwch mewn gwirionedd
newid hynny ac yn dechrau i wneud pethau drwg.
Ateb eich cwestiwn?
Awesome, unrhyw beth arall?
Ie?
>> MYFYRIWR: Felly pentwr [Anghlywadwy], rydych dywedodd mynd o'r gwaelod yn mynd i fyny.
O fewn ystod stac, yn gwneud mae'r cof yn mynd o, fel,
brig i lawr sy'n ymwneud â phob egwyl?
>> HANNAH: Sut mae you-- ildio i Rob ar yr un yma.
>> ROB: Bydd yn tyfu yn yr un cyfarwyddyd wrth i'r pentwr dyfu.
HANNAH: OK.
ROB: Felly, yr wyf yn drysu.
Mae hyn yn mynd i fod yn tynnu.
HANNAH: OK.
ROB: Mae hyn yn gywir.
Felly os yw'r pentwr yn tyfu i fyny, ac yna generally-- ei
nid oes raid iddo fod fel hyn. ond gallwch ddatgan int x.
Yna byddwch yn datgan int y.
Yna, ar y cyfan, bydd int x yn is ar y pentwr nag int y.
Ond dim ond yn ffaith.
Dyw hynny ddim yn hoffi rhywbeth hadau pwysig.
>> ROB: Felly, y cwestiwn unwaith eto yn unig oedd beth sy'n digwydd i bob ffrâm yn adeiladu i fyny.
Felly mae pob swyddogaeth yn cael ychydig o ddarn o'r pentwr.
Ac wrth i chi fynd i fyny, o fewn hynny Ychydig darn, o fewn y ffrâm,
byddwn yn dweud bod newidynnau o fewn y ffrâm hefyd yn symud i fyny.
Cwestiwn?
>> ROB: Dim ond i fod ar y meic.
HANNAH: Oh, yeah.
ROB: 'n annhymerus' yn siarad i mewn i chi.
HANNAH: O, ie, OK.
ROB: Yr eithriad yw ar gyfer araeau a structs,
lle mae araeau, mae is mynegai yn yr amrywiaeth,
ac mewn structs yn uwch cae yn y structs
yn sicr o fod mewn cyfeiriadau is na gwerth ddiweddarach yn y rhesi.
Felly, y rhai yn cael eu gwarantu.
Ond unrhyw newidynnau penodol o fewn, fel int x ac int y mewn swyddogaeth,
does dim perthynas angenrheidiol rhwng eu cyfeiriadau.
HANNAH: Cwestiwn arall dros yma?
MYFYRIWR: Felly, yn byffer llif, ond yn gorlifo byffer
dim ond ddigwyddodd pan fyddwch wedi, fel, neilltuo
swm o amrywiaeth hynny wedyn yn fwy?
Fel, gallwch chi?
Felly, os ydych yn gofyn am rhywbeth o'r user--
>> HANNAH: Mm-EM.
MYFYRIWR: Can maent rymus rhoi rhywbeth yn ôl i chi
mae hynny'n fwy na beth bynnag ydych wedi ei ddyrannu ar eu cyfer?
HANNAH: Cadarn, felly mae'r Roedd y cwestiwn yn y bôn,
gall y defnyddiwr roi i chi mwy nag y byddwch yn gofyn amdano?
MYFYRIWR: Yeah.
HANNAH: Wel, gallech atal y defnyddiwr rhag gwneud hynny.
Fe allech chi ddweud yn benodol peidiwch â rhoi mwy i mi nag x rhif gan bytes
Rwyf yn unig wedi rhoi lle i x rhif chi o bytes, x nifer o gymeriadau.
Felly, mae hynny'n rhywbeth yr ydych am ei atal.
Ie?
Beth yw'r gwahaniaeth rhwng stacio gorlifo ac yn gorlifo byffer?
>> HANNAH: Iawn, felly mae'r pentwr overflow-- oh, beth
yw'r gwahaniaeth rhwng stac gorlif a gorlif byffer?
Felly, rydym yn awyddus i feddwl am gorlif pentwr yn digwydd pan fyddwn ni'n mewn gwirionedd
pentyrru galwadau swyddogaeth hyn.
Gadewch i ni ddweud eich bod yn cael swyddogaeth recursive, oherwydd ein bod yn gwybod bod bob tro y byddwch yn
yn galw swyddogaeth, mae'n mynd ei ffrâm ei hun ar y pentwr.
>> Felly, rydym yn dal dŵr yn rhy uchel, ac Yna, rydym yn dechrau i orlifo.
Ac rydym yn defnyddio gormod o gof, A nid ydym yn wedi gadael unrhyw le.
Rydym yn cael y gwall.
>> Byffer gorlif o fewn rhaglen.
Rydym am Efallai na fydd o reidrwydd rhedeg allan o gof yn yr un ffordd
y gallem os ydym yn pentyrru i fyny cymaint o alwadau swyddogaeth,
ond byddwn yn ysgrifennu heibio'r cof ein bod yn gwybod y gallwn ni eu defnyddio.
Ac mae hynny'n ein galluogi i wneud pethau drwg.
Yeah?
>> ROB: Ie, efallai y byddwch am i ddim ond ailadrodd hyn,
ond gallwch hefyd feddwl o gorlif pentwr
fel debyg i fath penodol o gorlif byffer.
Neu os ydych yn meddwl am eich stac fel clustog mawr iawn.
Yna pan fyddwch yn gorlifo chi'n dal dŵr, mae'n fath o fel gorlif byffer.
Ond gorlif pentwr yn unig yw Defnyddir term penodol pan fydd y pentwr
ei hun yn gorlifo.
>> HANNAH: Iawn, felly i ailadrodd am y fideo,
mae'n gallwch chi feddwl am gorlif stac fel math penodol o gorlif byffer.
Cool?
Unrhyw mwy o gwestiynau cyn i ni fynd ymlaen?
Awesome.
>> OK, oer, felly gadewch i ni siarad am mae rhai negeseuon gwall cyffredin.
Mae hyn yn rhywbeth sydd wedi dangos i fyny ar cwisiau lluosog,
fel rhywbeth sy'n werth cymryd ail olwg ar.
Rwy'n siŵr eich bod wedi dod ar eu traws o leiaf rhai o'r rhain
fel eich bod yn gwneud eich problem yn gosod.
Felly gwnewch yn siŵr y gallwch siarad amdanynt ar y cwis.
>> Felly, mae'r un cyntaf yn nam segmentu.
A dyna unrhyw bryd yr ydym yn ceisiwch gael mynediad cof
nad ydym yn cael mynediad.
Felly migh eich bod wedi gweld hyn, er enghraifft, yn y breakout.
Os canfod gwrthdrawiad dychwelyd null, ac yna rydych
ceisio gwneud rhywbeth gyda gwerth null,
Byddai y cyfrifiadur yn rhoi nam segmentu chi.
Felly un, yn beth pwysig i wneud er mwyn ceisio osgoi hyn
yw bob amser yn gwirio am null.
>> Efallai y byddwch hefyd wedi gweld datganiad ymhlyg o swyddogaeth.
Felly, mae hyn yn beth sy'n digwydd pan ddangosodd Allison chi
sut rydym yn gwneud prototeip, dde?
Felly, gadewch i ni ddweud mae gennym rai swyddogaeth yr ydym yn diffinio.
Lets 'ddeud ciwb.
Ac sy'n mynd ar y gwaelod o'n swyddogaeth, o dan brif.
>> Os ydym yn anghofio i ddweud wrth y cyfrifiadur am ciwb, pan brif ceisio alw ciwb,
Bydd y cyfrifiadur yn cael, fel, oh fy diar.
Does gen i ddim syniad beth mae hynny'n ei olygu.
Nid wyf yn gwybod beth i'w wneud, yma.
Felly mae'r prototeip yn dweud peidiwch â phoeni.
Rydw i'n mynd i ddweud wrthych.
>> Bydd yn dod.
Peidiwch â gweiddi arna i.
Peidiwch â rhoi i mi yn ymhlyg datganiad o swyddogaeth.
Felly, os ydych yn cael y gwall hwn, un beth rydych chi'n mynd i eisiau ei wneud
yw sicrhau bod gennych eich prototeip.
OK?
>> Ac yn olaf ond nid yn lleiaf, dynodwr heb ei ddatgan
yn ei hanfod pan fyddwch yn ceisio defnyddio newidyn nad ydych wedi datgan.
Felly yn sydyn i chi ddechrau gan ddweud fel n plws a mwy.
A'r cyfrifiadur yn dweud beth sy'n n?
Dydych chi byth yn dweud wrthyf n yn beth.
>> Felly mae un peth yn rhaid i chi wneud yn siŵr eich bod gwnaeth yn dweud wrth y cyfrifiadur pa n yw.
Felly, er enghraifft, gallai fod n yn gyfanrif.
Ac yna byddwch yn osgoi y gwall hwn.
Unrhyw gwestiynau am wallau cyffredin?
Ie?
>> MYFYRIWR: Ar gyfer y ddealledig datganiad o swyddogaeth,
gallai hefyd fod yn eich bod yn hepgor un o'r llyfrgelloedd yr ydych bod i fod
i gynnwys, yn hytrach na'r prototeip?
>> HANNAH: Iawn, felly mae'r cwestiwn oedd, allech chi
hefyd yn cael y gwall hwn os ydych yn anghofio cynnwys llyfrgell.
>> MYFYRIWR: Ydw.
>> HANNAH: Yn hollol, oherwydd yn yr un ffordd
ein bod am roi ein prototeipiau cyn y prif swyddogaeth,
os oes gennym lyfrgell, y rhai yn mynd i yn y bôn yn cynnwys y prototeipiau,
yn cynnwys y diffiniadau o'r swyddogaethau.
Cwestiwn mawr.
>> MYFYRIWR: Ar gyfer segmentu fai, a fyddai hefyd yn
yn digwydd os ydym, fel, ceisiodd i gael mynediad i newidyn,
fel, mewn gwahanol [Anghlywadwy] nag iddo gael ei ddatgan yn?
HANNAH: Cadarn, felly byddem cael nam segmentu
os ydym yn ceisio cael mynediad i amrywiol allan o gwmpas?
A oedd y cwestiwn?
MYFYRIWR: Ydw.
HANNAH: Beautiful.
Felly, yn ôl pob tebyg, rydych yn mynd i gael Gwall dynodwr heb ei ddatgan yn lle hynny.
Felly, 'i' jyst yn mynd i ddweud Nid wyf yn gwybod beth yw hynny.
Cool, unrhyw beth arall?
Yeah, OK, hardd.
>> Pob righty, felly recursion.
Felly yr wyf yn crybwyll cwpl o weithiau y gallem gael gorlif pentwr
oherwydd ein bod yn ffonio ein swyddogaeth recursive gymaint o weithiau.
Rydym yn cael yr holl stac hyn fframiau, blah, blah, blah.
Yr hyn hyd yn oed yn swyddogaeth ailadroddus?
Wel, mae swyddogaeth recursive yn unrhyw swyddogaeth sy'n galw ei hun.
>> Rhai pethau i fod yn ymwybodol ohonynt wrth i chi yn gweithredu swyddogaeth recursive,
peidiwch ag anghofio cynnwys achos sylfaenol.
Mae achos sylfaenol yw'r pwynt lle rydym yn y pen.
Felly, er enghraifft, os ydym yn codio, , Yn dweud, Fibonacci recursively,
rydym am wneud yn siŵr bod pan fyddwn yn mynd at y 0 neu'r rhif Fibonacci cyntaf,
y rhai ddau rif yn cael yr achosion hyn, oherwydd nid yw pobl yn ddibynnol
ar bethau a ddaeth o'r blaen.
Mae'r rhai yn cael eu gwerthoedd eu hunain.
>> Mae rhai manteision i recursion, sef cwestiwn rydym wedi gweld ar y cwisiau yn y gorffennol.
Maent yn gallu arwain at fwy o cryno cod, cain.
Ac mae llawer o swyddogaethau, a llawer o wahanol algorithmau,
mewn gwirionedd yn addas ar recursion.
Efallai eu diffiniad yn recursive mewn ac o ei hun.
Felly Fibonacci yn un.
Ffactoraidd yn un.
Cyfuno fath yw one-- gyd pethau y gallwch edrych ar.
OK, unrhyw gwestiynau?
Ie?
>> MYFYRIWR: A yw achos cornel debyg i achos sylfaenol?
Neu a yw hynny ar gyfer rhai eraill fath o [Anghlywadwy]?
>> HANNAH: Cadarn, felly mae achos gornel yn any-- felly
yn achos cornel yr un fath ag achos sylfaenol?
Mae achos cornel yw unrhyw beth sydd yn eich Gallai cod yn ymddwyn ychydig yn wahanol.
Achos sylfaenol yn fath o gysylltiedig, yn eu bod yn hoffi achosion penodol
eich bod am edrych arno.
Ond mae'r syniad o achos sylfaenol yw bod ydych am i'ch swyddogaeth recursive
i roi'r gorau ar ryw adeg.
Ni ellir ei gadw galw ei hun am byth.
Mae angen iddo stopio ar ryw adeg.
>> ROB: Ie, yn aml, eich achosion sylfaenol Gallai fod yn enghreifftiau o ganolfannau cornel.
>> HANNAH: Iawn, oer, unrhyw beth?
>> MYFYRIWR: Allech chi esbonio seilio'r ychydig yn fwy?
Nid wyf yn deall yn hollol [Anghlywadwy] achosion sylfaenol.
>> HANNAH: O'r achosion sylfaenol?
>> MYFYRIWR: achosion Base, yeah.
>> HANNAH: O ie, yn sicr.
Gadewch i ni weld.
A ydym wedi sialc dros yma?
Ie, rydym yn ei wneud.
OK, felly 'n sylweddol yn gyflym,' n annhymerus ' ceisiwch ysgrifennu'n ddigon mawr
fel y gallwch weld ar y sgrin.
Gadewch i ni siarad am, mewn gwirionedd yn gyflym, Fibonacci.
Felly, byddaf yn rhoi dilyniant Fibonacci chi.
Gallwch edrych ar y diffiniad.
>> Yn y bôn, mae pob rhif yn y dilyniant yw cyfanswm y ddau rif blaenorol.
Iawn, felly mae'r modd yr wyf jyst Disgrifiodd Fibonacci,
gallech glywed y recursion, dde?
Pan ddywedais mae pob rhif yn y Swm y ddau rif blaenorol,
gallem ddweud OK.
Wel, mae'r Fibonacci nfed number-- felly gadewch i ni
dweud gennym swyddogaeth hon Gelwir FIB fib-- o n
yn mynd i fod yn hafal i FIB o n minws 1 plus-- ddrwg gennym,
byddwn yn mynd ymlaen i'r llinell nesaf dros FIB Yma-- o n minws 2.
>> Iawn, felly mae hyn yn gweithio iawn os ydych yn gan edrych ar, er enghraifft, y sero, un,
dau, tri, pedwar, pumed rhif Fibonacci,
lle y gallwch ddweud bod 5 yn hafal i 2 a 3.
Ond beth os ydych chi ar y dechrau?
Beth os ydych ond yn taro y ddau werth gyntaf?
>> I gael hyn 1, ni allwch dweud ychwanegwch y ddau blaenorol,
oherwydd nad sero ac-- nad wyf yn gwybod.
Felly, ar ryw adeg, mae angen i ni roi'r gorau.
Ar ryw bwynt, mae angen i ni ddweud bod y rhain dau yn unig yn cael eu diffiniadau eu hunain.
Y rhif 0 Fibonacci yw 0.
Ac mae'r rhif Fibonacci cyntaf yw 1.
>> Felly, y ffordd efallai y byddwn cod hyn, yr wyf yn Byddai dweud os n yn llai na dau,
yna dim ond yn dychwelyd n.
A byddai hynny'n fy achos sail.
Dyna sut yr wyf yn gwybod i roi'r gorau gyda swyddogaeth ailadroddus.
A yw hynny'n glir?
Awesome.
Unrhyw beth arall ar recursion?
Beautiful.
>> Gadewch i ni yn gyflym siarad am chwilio ac amseroedd rhedeg didoli.
Ac yna mi a roddaf Davin rhyw amser i siarad am codio enghreifftiau.
Felly dyma yw'r prif chwilio a fath y dylech wybod am.
Guarantee-- Ni allaf warantu, gan nad wyf wedi gweld y quiz--
ond mae hyn yn dod i fyny cwis ar ôl cwis ar ôl rhoi'r gorau iddi.
Felly, yn bendant yn defnyddio'r siart hwn.
Fel, yn cymryd siart hwn.
Rhowch ef ar eich taflen twyllo.
Byddwch yn berson hapus.
>> Mae hyn yn dweud wrthym yr amseroedd rhedeg pob o'r rhain algorithmau didoli a chwilio.
Felly chwiliad llinol, gallwch weld ei redeg amser, ac yn un peth gyda chwiliad deuaidd.
Ewch dros yr hyn algorithmau hyn yn ei wneud, y syniad cyffredinol.
Edrychwch ar rai pseudocode, os nad yw cod ei hun.
>> Byddwch yn gweld bod swigen fath â uchaf rhwymo yn yr achos gwaethaf o n sgwâr.
Felly os yw ein amrywiaeth yn hollol yn ôl cyn i ni yn awyddus i ddatrys y broblem,
byddem yn dweud mai dyna mynd i gymryd camau n sgwâr.
Ond yn yr achos gorau, felly mae'r Isaf rhwymo ar gyfer yr achos gorau
yn mynd i fod os yw'n eisoes didoli berffaith.
Yna gyd mae'n rhaid i ni ei wneud yw gwiriwch fod yn cael ei datrys.
A oes cwestiwn dros yma?
>> MYFYRIWR: Pryd y byddai ydych am ddefnyddio fath?
Y math.
Im 'jyst yn chwilfrydig.
>> HANNAH: Pryd y byddech am ddefnyddio math dethol?
Mae hyn yn un?
Yr un sydd wedi sgwâr n yn y ddau achos?
>> MYFYRIWR: [Anghlywadwy].
>> HANNAH: Felly mae'n wahanol iawn.
Os oes gennych benodol gofynion ar gyfer eich rhaglen,
hoffi pethau fel os ydym newydd ei ddweud gweithredu sorry-- search--
gweithredu fath, wnewch chi helpu yn ôl pob tebyg am fynd
am un o'r rhai sy'n Mae gan achos gorau o n,
neu rwymo yn is yn yr achos gorau o n.
Ond gallai fod rhai pethau fel, dyweder,
cyfnewidiadau yn wirioneddol ddrud am ryw reswm.
Yna byddai ydych am ei wneud didoli swigen, oherwydd eich bod
rhaid iddynt wneud cymaint o cyfnewidiadau, pethau fel 'na.
Unrhyw ie other--?
>> MYFYRIWR: A fyddai'n [Anghlywadwy] i ddweud bod [Anghlywadwy]?
HANNAH: Dyna un peth Byddai hynny yn dweud wrthych
os ydych yn edrych ar y gweithredu.
Y ffordd yr wyf byddai mewn gwirionedd meddwl am pam ei bod n
sgwario yw bod yn rhaid i redeg drwy ein amrywiaeth o hyd n,
pob un yn gwneud yn y rhan fwyaf o, n cyfnewidiadau amser.
Ac mae'n rhaid i ni wneud y broses n amserau hyn.
>> Felly, pan fydd yn rhaid i chi eu gwneud yn y rhan fwyaf o, n cyfnewidiadau ac am n rhedeg drwy'r casgliad,
mae mynd i gael eu sgwario'n n.
Ond ie, bydd hyn yn cael ei datgelu trwy ddwbl hon ar gyfer dolen,
gan fod y cwestiwn yn asked-- neu nythu ar gyfer dolen, dylwn ddweud.
OK?
>> Ac yna uno didoli, sy'n yw'r math cyflymaf ydym yn awr,
neu ein bod ni wedi cynnwys yn CS50, gwybod bod y prif algorithm yw
syniad hwn o dorri i mewn i darnau datrys hynny ac yna
cyfuno ynghyd darnau didoli hyn.
A bydd yn cael ni log n log n.
Unrhyw gwestiynau am chwiliadau a math cyn i mi basio ymlaen?
Gadewch i ni weld.
>> Oh, rhestrau cysylltiedig.
Mae'n ddrwg gennym, mae gennyf un pwnc mwy.
OK, anhygoel, rhestrau cysylltiedig.
Problem gyda'r arrays, mae ganddynt faint sefydlog.
Felly os nad ydych yn gwybod pa mor fawr eich cyfraniad yn mynd i fod,
nad ydych am i greu arae.
Oherwydd os ydym yn creu amrywiaeth sy'n rhy fach,
efallai y byddwn yn rhedeg i mewn gorlif byffer.
>> Felly, yn lle hynny, gallem wneud rhywbeth gyda rhestrau cysylltiedig, a oedd
yn caniatáu i ni gael ddynamig strwythur data o faint
fydd yn ein galluogi i storio a faint yn fwy hyblyg o ddata.
Felly, o fewn pob nod yn ein rhestr cysylltiedig, mae gennym ddau ddarn.
Mae gennym y gwerth gwirioneddol y mae'n storio.
Felly dyna dim ond y peth y byddech gweld yn yr amrywiaeth, er enghraifft.
Ac yna rydym hefyd yn cadw golwg ar a pwyntydd at y peth nesaf yn y cof.
>> Yn wahanol i araeau, a oedd yr ydym yn gwybod i gyd yn mynd
i be-- elfennau amrywiaeth i gyd yn un ar ôl y llall yn memory-- cysylltiedig
Gallai rhestrau fod yn unrhyw le yn y cof.
Maen nhw'n lleoliadau mympwyol.
Felly, pe baem yn mewn gwirionedd yn mynd yn dod o hyd iddynt, rydym yn
Mae angen i gadw golwg ar y beth nesaf yn ein rhestr.
>> Ac yna, er mwyn gwybod lle y rhestr yn ei gyfanrwydd yw,
i gyd mae'n rhaid i ni gadw golwg ar yr Elfen gyntaf un yn ein rhestr cysylltiedig.
A byddwn yn caniatáu i ni i ddilyn drwodd.
>> Felly dyma sut y gallech ddiffinio ddelw.
Mae hwn yn gyfle gwych i fanteisio ar structs.
Oherwydd bod gennych syniad hwn, yn dda, am nod a roddir, mae gennyf ddau ddarn.
Mae'n rhaid i mi werth ei hun.
Ac yna mae gen i pwyntydd i'r elfen nesaf yn y rhestr cysylltiedig.
Felly, byddwch yn gweld, mae gennym yn gyfanrif n, sydd yn mynd i fod y gwerth gwirioneddol,
ac yna pwyntydd i a nod, o'r enw nesaf.
Felly, mae hynny'n mynd i fod y nesaf elfen yn ein rhestr cysylltiedig.
MYFYRIWR: Ie?
Oes rhaid i chi nodi bod y seren yn debyg i struct?
>> HANNAH: Ie, felly gan fod hyn Mae bron fel rhyw fath o,
mae'n ymddangos fel recursive diffiniad yn yr ystyr ein
angen gwybod beth yw nod yw y tu mewn i ddod o hyd i nod.
Gan nad yw mewn gwirionedd gwybod beth yw nod yn gwbl
nes i ni gyrraedd at ddiwedd this-- ac ar ôl hyn y gallwn ni jyst alw yn
a node-- tu mewn diffiniad hwn, mae angen i ni alw ei fod yn nod struct.
Cwestiwn mawr.
Unrhyw beth arall?
Ie?
>> MYFYRIWR: Pam rydyn ni'n i'w ddweud nod ddwywaith?
Oherwydd pan oeddem yn [Anghlywadwy] rydym yn unig roedd yn rhaid i wneud hynny yn hanner colon,
ond erbyn hyn mae'n rhaid i ni ganfod bod struct nod? [Anghlywadwy].
HANNAH: Felly, yr wyf yn credu yn yr enghraifft olaf,
roeddem yn unig yn creu unrhyw adeg rydych yn awyddus i ddefnyddio myfyriwr ar ôl hynny, i chi
roedd yn rhaid i ddefnyddio struct node-- Rydw i'n fyfyriwr sorry-- struct.
Roedd hyn yn caniatáu i ni, ar ôl y ffaith, dim ond defnydd nôd yn ychwanegu math newydd, yn y bôn.
Mae hynny'n gwneud synnwyr?
Felly, byddai'n rhaid i ni fynd yn ôl a edrych ar y cod blaen.
Ond byddwn yn tybio bod doedden ni ddim yn defnyddio typedef.
Ac gwnaethom ofyn y cwestiwn, pam mae angen i ni ddefnyddio typedef?
Typedef ein galluogi i osgoi'r struct gair yn y dechrau.
Ie?
MYFYRIWR: Pa fath o Byddai cwestiynau dod i fyny
o ran o ran nodau a rhestrau cysylltiedig?
>> HANNAH: Felly, un peth yw y gallem ddweud sut efallai y byddwch yn chwilio drwy restr cysylltiedig?
OK, am ei fod yn ychydig yn fwy cymhleth
nag os ydym yn chwilio trwy arae.
Gallwn dim ond yn edrych ar elfen sero, un elfen, elfen dau, blah, blah,
blah.
Os ydym am i chwilio trwy restr cysylltiedig,
byddem gwirionedd yn rhaid i ddilyn Ychydig ddrysfa hon o awgrymiadau.
Felly gadewch i ni mewn gwirionedd yn mynd drwy hyn yn gyflym iawn.
Yr hyn y gallem ei wneud yn archebu i-- gadewch i ni ddweud ein bod
eisiau i ddim ond ailadrodd drwy ein rhestr gysylltiedig yn gyfan gwbl.
Byddem yn dechrau yn y pen.
Ac yna, er mwyn symud i'r elfen nesaf,
hytrach na dim ond cynyddu o un fel y gallem yn mynd drwy amrywiaeth,
rydym yn wir yn mynd i dilynwch y pwyntydd nesaf,
fel y gallwn ddod o hyd i ble yn cof yr elfen nesaf.
Felly, yr wyf yn gwybod nad yw'n ddigon i cymryd hyn i gyd mewn ar hyn o bryd,
ond byddwch yn cael sleidiau hyn.
Felly, gallwch chi fynd drwy'r mae hyn ychydig yn arafach.
Ond yn ei hanfod, yr hyn yr ydym ei eisiau ei wneud yw dilyn awgrymiadau hyn
trwy gydol y rhestr cysylltiedig.
Felly, mae hwn yn gwestiwn efallai y gofynnir i chi.
>> Rhywbeth i hysbysiad gyda mewnosod, gadewch i ni ddweud
roeddem yn awyddus i roi elfen newydd ar flaen ein rhestr cysylltiedig.
Mae'n rhaid i ni fod yn ofalus iawn am y drefn yr ydym
symudir yr awgrymiadau.
Oherwydd gadewch i ni ddweud wyf newydd ei ddweud OK.
Gwneud pwynt pen i'r elfen newydd.
Dim ond yn ei gwneud yn bwynt i 1 Yna, rydym wedi yn y bôn colli gweddill ein rhestr,
gan nad wyf yn cofio lle 2 o fywydau.
>> Felly, mae'n rhaid i ni ei wneud mewn trefn benodol iawn.
Yn gyntaf, rydym yn gwneud y newydd Elfen bwynt i'r pen.
Ac yna rydym yn gwneud y pen cyfeirio at yr elfen newydd.
Felly, gadewch i ni weld beth sy'n edrych fel gyda arrows-- yn union fel hynny.
Felly, yn gyntaf i chi gael y newydd Elfen pwynt i'r hen ben.
Ac yn awr, mae gennym y pen cyfeirio at yr elfen gyntaf newydd.
Unrhyw gwestiynau gyda hyn?
>> OK dyma ychydig cod eto, rhywbeth i edrych ar ychydig yn ddiweddarach.
Ac yn awr mi droi drosodd i Davin ar gyfer GDB a ychydig o ymarfer
codio ar bapur.
Beautiful.
>> ROB: A Rob.
>> HANNAH: O, Davin a Rob.
Mae'n ddrwg gen i.
>> MYFYRIWR: Woo!
>> ROB: Diolch.
>> DAVIN: Ydych chi eisiau dweud popeth yn gyflym go iawn?
ROB: Yeah, yeah.
DAVIN: Ar ôl i fy mod i fyny.
OK, tra bod Rob yn rhoi'r meicroffon ar, felly beth GDB?
Dylai pawb wedi gweld GDB mewn dosbarth a hefyd mewn oriau swyddfa.
A dylech fod yn ei ddefnyddio.
Felly beth yw GDB?
Unrhyw un?
>> MYFYRIWR: Mae'n debugger.
>> DAVIN: Mae'n debugger.
A beth mae'n ei caniatáu i chi ei wneud?
Fel, pam yr ydych yn hoffi GDB?
MYFYRIWR: Er mwyn arafu'r rhaglen.
DAVIN: Iawn, felly gallwch gerdded drwyddo yn hoffi cyflymder dynol.
Ac felly beth yw rhai gorchmynion gallwch chi ei wneud?
Wel, toriad yn ôl pob tebyg eich hoff gorchymyn.
Oherwydd sy'n eich galluogi i dorri'r rhaglen ac mewn gwirionedd yn cerdded drwyddo
fesul llinell.
>> Run yn caniatáu i chi redeg.
Nesaf, fel camu drwodd.
Beth yw'r rhwng nesaf a'r cam?
Arhoswch, yn dweud bod allan yn uchel.
Yr oedd yn gywir.
>> MYFYRIWR: [Anghlywadwy].
>> DAVIN: Ie, awesome.
Felly fel, cam nesaf ac, os you're-- gadewch i ni ddweud bod gennych chi swyddogaeth
diffinio.
Lets 'ddeud rhai yn eich prif swyddogaeth, a ydych ond yn taro nesaf, nesaf,
nesaf.
Rydych yn wir yn mynd i gweithredu y swyddogaeth honno,
ond eich bod yn mynd i neidio drosto.
Os ydych yn taro cam, neu s neu beth bynnag, rydych yn
mynd i neidio mewn gwirionedd i mewn i'r swyddogaeth,
ac yna gallwch daro nesaf i weld y gwahanol alwadau
tu mewn y swyddogaeth benodol.
Yeah?
>> MYFYRIWR: A oes ffordd i neidio, fel, yn ôl allan?
DAVIN: Gorffen, yeah, orffen gyda chi neidio allan.
Felly, mae'n mynd i orffen y swyddogaeth, ac yna rydych chi'n
mynd i fod yn ôl yn bennaf, er enghraifft.
Bydd Print hargraffu un tro.
Rhywbeth yr wyf bob amser yn defnyddio ei arddangos.
Bydd Arddangos hargraffu yn gyson trwy gydol y chyfanrwydd
eich rhaglen.
>> Er enghraifft, os ydych chi'n mewn i ddolen, ac rydych
am weld sut mae rhywbeth wedi newid, ac nad ydych am i, fel, yn gyson
fod yn ei wneud fel print, print, print, arddangos
Bydd arddangos y newidyn yn barhaus, bob tro y byddwch yn taro Nesaf.
Ac yn parhau.
Felly GBD, dyna GDB.
>> MYFYRIWR: Beth yw'r un lle rydych [Anghlywadwy]?
DAVIN: Beth ydyw?
>> MYFYRIWR: Beth the-- y newidynnau lleol.
ROB: Mae rhywbeth mewn gwirionedd fel pobl leol neu rywbeth.
Rwy'n can't--
>> DAVIN: Gallai fod yn rhywbeth fel 'na, yeah.
>> HANNAH: Yn y bobl leol?
>> DAVIN: Dyna ni.
Dyna yr un.
ROB: Beautiful.
>> DAVIN: Yeah.
>> MYFYRIWR: Beth mae yn parhau yn ei wneud?
>> DAVIN: Mae'n continues-- felly mae'n jyst mynd i barhau eich rhaglenni.
Felly, os byddwch yn torri ac yn taro parhau, mae'n mynd
i ddim ond yn rhedeg y rhaglen honno tan mae'n taro bod egwyl eto.
Felly er enghraifft, os ydych yn torrodd mewn swyddogaeth,
a ydych yn mynd i ddim yn hoffi am dolen neu rywbeth fel 'na,
a byddwch yn taro yn parhau, mae'n mynd i parhau ac yn mynd yn ôl at hwnnw egwyl.
Neu does dim egwyl, mae'n mynd i parhau ac yn gorffen y rhaglen.
>> ROB: Felly, yn union fel arosfannau rhedeg yn y torbwynt cyntaf
byddwch yn taro, os ydych wedyn daro yn parhau, bydd yn cadw
mynd nes ei fod yn y torbwynt nesaf.
Ac yna yn parhau yn mynd at y torbwynt nesaf.
DAVIN: Unrhyw gwestiynau eraill ar GDB?
Felly, yr wyf yn meddwl yn y gorffennol, rydym wedi gofyn i chi beth
GDB yn ac yn rhoi Enghraifft o rai pethau i chi
Gall wneud gyda GDB, felly syml go iawn, ond yeah.
Dyna ni.
A nodau?
>> ROB: Ie, felly ba gyfeiriad oedd hi?
MYFYRIWR: Dyna oedd ei.
DAVIN: Arhoswch.
ROB: Mae hyn yn guy?
DAVIN: Mae hynny'n un.
ROB: Mae hyn yn guy, oh, doeddwn i ddim yn sylweddoli.
Felly, nid oeddem yn glir ar yr hyn the-- nad wyf yn ei wneud
gwybod pwy was-- ond y cwestiwn.
Nid ydym yn gwybod yn union beth rydych yn gofyn am y peth, felly dim ond
i egluro rhywbeth.
Felly, yn gyntaf, fel y dywedais o'r blaen, typedef eich bod bob amser yn defnyddio dim ond
creu llysenw am fath.
Felly dde yma, y ​​llysenw rydym yn creu ar gyfer y math hwn nod struct.
>> Felly, yn gyntaf, gan anwybyddu nod hwn yn y typedef, felly mae hyn struct cyrliog nod
Brace i lawr i cyrliog nesaf Brace yw'r math nôd struct.
Ac mae angen i nod hwnnw i fyny yno, oherwydd ein
Mae angen i gyfeirnodi nod yn y fan hyn.
Felly, gyda'r math hwn o struct recursive, angen i chi roi hyn struct enw,
neu arall nad gallech dweud nod struct yn fan hyn.
Lle o'r blaen gyda myfyrwyr pan oeddem yn teipio, rwy'n credu,
Nid oedd yn rhaid i ni ddweud fyny myfyrwyr yno, oherwydd ein
Nid oedd rhaid i ddweud struct myfyrwyr y tu mewn i'r struct ei hun.
Felly mae'n y dychweliadol sy'n yn ein gorfodi i ddweud nod yno.
>> Mae hyn yn unig yw nod yr enw rydym yn gan roi nod ar gyfer yr typedef.
Fel nad yw nod yw yr un fath â'r hyn nod.
Ond mae hyn nod struct yw'r un fath â'r hyn nod struct.
DAVIN: Felly, pryd bynnag y byddwch yn galw, fel, nod yn eich prif swyddogaeth,
Nid ydych yn mynd i rhaid i ddweud nod struct.
Alli jyst ddweud nod, gan fod nod yw different-- yn y bôn
yr ydych yn ei ddweud, OK.
Yn hytrach na gorfod galw nod struct yn fy cod,
Fi jyst eisiau ei ail-enwi ei fel nod i'w wneud yn haws.
>> ROB: Os ydych yn bob amser defnyddio typedef, yna mae hyn
yw'r unig le yr ydych yn mynd i gael i ddatgan newidyn gyda nod struct
seren, yeah.
>> DAVIN: Iawn, felly mae'r rhan olaf yn anodd i addysgu because--
ROB: Beth?
>> DAVIN: Oherwydd ei fod yn codio ar bapur.
Felly, bob blwyddyn rydym wedi cod ar gwestiynau bapur.
Felly, yr wyf yn meddwl y llynedd, 12 allan o 80 pwynt oedd cod ar bapur.
Flwyddyn cyn hynny, 10 allan o 80, flwyddyn cyn hynny, 20 allan o 100,
felly mae cryn nifer o'r rhain.
Felly, rydych yn mynd i gael i allu i cod fyny swyddogaethau hyn â llaw.
>> Felly yr wyf yn cyfrifedig efallai y byddwn yn mynd drwy cwpl ohonyn nhw a gweld sut y mae pobl yn ei wneud,
math o gerdded drwy iddynt yn araf gyda phobl.
Felly ar y cyfan, strlen a atoi wedi bod yn boblogaidd iawn.
Y llynedd, yr wyf yn meddwl oedd gennym GetPositiveInt a RandomInt.
Ond pow, felly pŵer, hefyd yn un cadarnhaol hefyd.
Gadewch i jyst yn mynd trwy efallai un neu ddau o'r rhain gyda'i gilydd.
Beth mae pobl am ei weld?
>> MYFYRIWR: Atoi.
MYFYRIWR: Yeah.
DAVIN: Atoi?
MYFYRIWR: [Anghlywadwy].
DAVIN: OK, dw i'n mynd i wneud hynny ar y bwrdd.
A oes gennych chi ddewis os wyf yn gwneud hynny yma neu yno?
Yno, Gabe dywed yno.
>> ROB: A dyma meddyliau cyffredinol ar y cwestiynau codio.
Ceisiwch ysgrifennu rhywbeth.
Peidiwch â'i adael yn wag.
>> DAVIN: Ydw.
ROB: Os gallwch gael y dychwelyd math cywir,
neu efallai efallai y byddwn yn ei roi i chi, ond os gallwch, fel,
ysgrifennu'r llofnod swyddogaeth gyffredinol, Os gallwch gael y achosion sylfaenol cywir,
neu achosion cornel, neu cofio siec am null,
cyn belled ag y byddwch yn cael rhywfaint o pethau, yna efallai yr ydym yn
Gall roi cwpl i chi pwyntiau am y broblem.
Peidiwch nid dim ond ei adael yn wag.
>> DAVIN: Ie, ac os ydych yn yn unig yn gyfan gwbl
stumped ar sut i mewn gwirionedd yn troi i mewn i cod.
Os byddwch yn ysgrifennu pseudocode, mae hynny'n eithaf da hefyd.
Felly mae'n debyg, mae'n gwestiwn chwe phwynt, a byddwch yn ysgrifennu y pseudocode cywir,
byddwch yn cael o leiaf ddau bwynt.
Felly peidiwch â dim ond eu gadael yn wag.
Ceisiwch roi rhywbeth.
>> ROB: Mae angen iddo fod yn pseudocode gywir, er.
>> DAVIN: Ydw.
ROB: Felly, rydym yn gyffredinol yn llai drugarog gyda chwilod yn pseudocode.
DAVIN: OK, felly i chi guys eisiau gweld atoi.
OK, felly dim ond really-- felly beth yr ydych am ei wneud
yw eich bod yn mynd i fod o ystyried rhyw fath o rif.
Ond nid yw nifer hwn yn mynd i fod yn int, dde?
Sut beth yw mynd i fod?
>> MYFYRIWR: [Anghlywadwy].
>> DAVIN: Mae'n mynd i fod yn llinyn, dde?
Felly, os ydych yn cael a string-- gadewch i say--
>> ROB: A ddylwn i dynnu i fyny golygydd?
Gallaf dynnu up--
>> DAVIN: O, ydych am ei wneud iddo on--
>> ROB: A fyddai'n well gennych y bwrdd?
>> DAVIN: Beth ydych chi eisiau ei wneud?
Yr wyf yn golygu, ydych chi eisiau ei wneud â llaw?
Neu ydych chi eisiau ei wneud iddo gan gyfrifiadur?
>> ROB: Ei wneud â llaw.
>> DAVIN: [Chwerthin]
ROB: Ei wneud â llaw.
>> DAVIN: Iawn, felly mae'n mynd i fod yn atoi.
Felly beth iddo-- Hynny yw, rydym yn annhymerus yn ôl pob tebyg yn rhoi hyn i chi.
Ond beth sy'n ei mynd i ddychwelyd?
>> MYFYRIWR: Int.
>> DAVIN: Mae'n mynd i ddychwelyd int, dde?
So-- Dydw i ddim eisiau ei wneud yno.
Fe wna i fan hyn.
>> ROB: Gallwch dynnu i lawr ac yna gwthio i fyny arno.
>> DAVIN: yeah.
[Chwerthin] newid Game.
Iawn, felly mae'n mynd i fod yn atoi int, a beth rwyt ti'n mynd i'w gymryd?
Mae seren torgoch, felly dim ond llinyn, seren s, fel 'na.
>> ROB: seren Nice, 'n glws.
DAVIN: Efallai na fydd hyn fod yno, OK.
ROB: Yeah.
DAVIN: Iawn, felly y cyntaf beth rydych am ei do-- I
ddim yn gwybod os oes unrhyw un yn edrych yn y solutions-- practis
ond yr hyn yr ydych chi'n mynd i am ei wneud yw eich bod yn
mynd i am gael dolen, am eich bod yn
mynd i eisiau mewn gwirionedd gamu drwy'r llinyn hwn.
Felly helpful-- felly gadewch i ni ddweud rydym yn mynd i mewn i'r ddolen,
ac rydym yn mynd i gamu drwy pob elfen o'r llinyn.
Pa mor hir yw hynny?
Sawl gwaith ydym ni'n mynd i ailadrodd yn hynny am ddolen?
MYFYRIWR: Sterln?
DAVIN: Sterln, yeah.
Felly, gadewch i ni ddweud hyd int hafal sterln s.
A dim ond yn chwilfrydig, pam ei fod bob amser yn garedig o well i wneud y tu allan yma o ddolenni?
Fel, pam ei fod yn well i alw swyddogaeth hon y tu allan i dolen?
Dim ond bwyll cyflym gwirio?
Yeah?
MYFYRIWR: Felly, nid ydych yn ei wneud rhaid inni barhau i wirio iddo.
Gallwch dim ond [Anghlywadwy].
>> DAVIN: Yn union, felly yeah, yn union yr hyn a ddywedodd.
Felly, nid ydym yn rhaid i ni gadw wirio iddo.
Felly, er enghraifft, os ydw i'n galw swyddogaeth hon y tu mewn i dolen,
Wedyn dw i'n mynd i gadw galw swyddogaeth hon amseroedd lluosog.
Ac mae hynny'n mynd i ostwng effeithlonrwydd eich rhaglen.
Felly mae'n ddefnyddiol bob amser i ddatgan ei fod y tu allan.
>> ROB: Mae hynny wedi dweud hynny, ar unrhyw un o'r problemau hyn,
'n bert lawer cyn belled ag y byddwch yn cael datrysiad sy'n gweithio, byddwch yn cael credyd llawn.
Felly peidiwch â phoeni os yw eich cynllun yn gwbl erchyll.
Gall wneud i ni cynhyrfu darllen eich cod.
Ond cyn belled ag y mae'n gweithio, byddwch yn cael y pwyntiau.
>> DAVIN: Ydw.
OK, felly, yna dwi'n mynd i datgan rhywfaint o amrywio.
Dim ond ei fod yn mynd i alw swm int.
Ac yr wyf i'n mynd i osod hyn yn hafal i sero, fel 'na.
A dyna 'jyst yn mynd i fod yn dalfan.
Felly, mae hynny'n mynd i fod yn yr hyn yr wyf i'n mynd i ddychwelyd.
Felly, dw i'n mynd i yn y pen draw dychwelyd swm allan o'r rhaglen hon.
Felly, yr wyf yn cael y ddau newidyn.
Mae gen i hyd.
Mae gen i swm.
Ac yn awr gadewch i ni neidio i mewn i'n llinyn.
>> Felly yn gadael wedi ein gyfer dolen.
Felly pedwar int I hafal 0 w, tra Rwyf yn llai na hyd I a mwy a mwy.
Ac now--
ROB: Nice.
DAVIN: OK, ac yn awr yma daw'r cig ein cod.
Felly, gallwch chi ei wneud mewn gwirionedd yn y bôn yn un y llinell hon.
Felly, mae unrhyw un yn cael syniad o'r hyn yr ydym yn mynd i'w wneud nesaf?
Iawn, felly mae hynny'n iawn.
Felly, rydym yn ei wneud i ddweud swm equals-- gadewch i mi scoot swm over-- hwn
swm hafal amseroedd 10 plus-- rydym yn mynd i gymryd s I llai un
quote 0 un dyfyniad a wnaed, fel 'na.
ROB: reddfol iawn.
>> DAVIN: Mâl iddo.
OK, felly someone-- Cawn ei fod, yr wyf yn got it.
Iawn, felly mae hyn yn amlwg yn mynd i fyny.
Beth mae hyn yn ei olygu?
Felly, mae unrhyw un yn gwybod beth mae hyn yn ei olygu?
Gall pawb yn gweld hyn?
Na, ni all neb weld hyn, OK.
Dw i'n mynd i'r canlynol--
>> ROB: Rydw i'n mynd i ysgrifennu'r fformiwla yn unig iawn yma.
DAVIN: OK, Rob mynd i wneud hynny ar y cyfrifiadur, sydd yn hwyl.
ROB: O fy Nuw.
Neu nid wyf fydd.
DAVIN: Sefwch yn ôl.
MYFYRIWR: Mae gen i gwestiwn.
DAVIN: Yeah, yn sicr.
MYFYRIWR: [Anghlywadwy]?
DAVIN: Iawn, felly mae'n mewn gwirionedd, fel, dim ond yn gyffredinol,
pe baech yn rhoi, fel, yn y datganiad hwn int
I hafal i hyd 0 coma hafal sterln, that--
>> MYFYRIWR: [Anghlywadwy].
>> DAVIN: Mae hynny'n iawn, gan fod that--
MYFYRIWR: Pam byddech chi hyd yn oed angen i ddefnyddio hyd?
Ni allai Pam rydym yn unig [Anghlywadwy] sterln s, fel yr amser cyfan [Anghlywadwy]?
>> DAVIN: Rydych yn golygu iawn yma?
>> MYFYRIWR: Ydw.
DAVIN: Oherwydd bod pob y tro hwn ar gyfer rhediadau dolen,
mae'n mynd i werthuso cyflwr hwn.
MYFYRIWR: Iawn.
DAVIN: Ac os oes gennych sterln yno, yna mae'n
mynd i gael i alw mewn gwirionedd swyddogaeth honno bob tro.
Felly, yn hytrach na dim ond ei gymharu i int,
ydych yn mynd i gael ei galw yn swyddogaeth ac yna ei gymharu
at werth dychwelyd.
Yeah, felly mae'n dim ond, yeah.
>> Nice, OK, felly, yn awr y gall pawb ei weld.
Beth does-- hyn yn debyg, mae hyn yn ei.
Mae hyn yn y jam, dde yma.
Beth yw ystyr hynny?
Beth ydw i'n ei wneud?
Yeah, syniad?
Yeah?
>> MYFYRIWR: Wel, felly pan eich bod yn mynd i mewn arae,
ydych yn mynd i fod yn mynd o'r chwith i'r dde,
felly rydych yn mynd i fod yn mynd i mewn degol oddi lawr y [Anghlywadwy].
DAVIN: Yn union.
MYFYRIWR: Felly mae gan bob un rhaid i chi luosi
yr hyn a welodd chi fel gwerth y int gan yr amser y byddwch yn ei gael i symud hynny dros un.
>> DAVIN: Perffaith, perffaith, felly er enghraifft, gadewch i ni
dweud Rhoddais you-- rwy'n mynd i ysgrifennu dros yma.
Na, dydw i ddim.
Rydw i'n mynd i ysgrifennu dros yma.
Lets 'ddeud roddais i chi 76, dde?
Gadewch i ni ddweud yr wyf yn rhoi i chi 76.
Dyna llinyn i ddechrau, OK?
>> Felly hyd yw beth?
2, dde?
Swm yw 0.
Yna, rydym yn neidio yn ein am ddolen.
OK, mae'r fersiwn cyntaf o hyn, yr hyn sy'n ei mynd i fod?
Mae'n mynd i fod yn swm yw 0.
Felly swm adegau 10 0.
Mae hynny'n ddiystyr.
Yna beth mae hyn yn ei wneud?
MYFYRIWR: [Anghlywadwy].
>> DAVIN: Mae'n mynd i droi hynny cymeriad i mewn i cyfanrif, dde?
Mae'n fath o fel gyda'ch broblem set-- light-- hwn
ei fod yn fath o fel gyda problem a osodwyd i Visioneer.
Rydych yn delio â gwerthoedd ASCII.
Felly, os wyf yn rhoi i chi, fel, a saith, ond mae'n gymeriad,
a ydych am wybod, OK, pa digid yw hynny?
Yeah, gallech, yeah.
Felly beth digid yw hynny?
Gallech tynnu 0 oddi wrtho, ond i chi rhaid i dynnu 0, cymeriad.
>> A lle mae rhai pobl yn cael baglu i fyny, eu bod yn
fel, OK, wel, mae'n rhaid i mi ei wybod gwerthoedd ASCII ar gyfer y cwis hwn?
Na, yr ydych nid yn bendant yn ei wneud angen gwybod i'r ASCII
gwerthoedd, fel, llythrennau bach a, priflythyren A, sero.
>> ROB: Nid oes unrhyw reswm i erioed rhoi hyn ar y daflen twyllo.
>> DAVIN: nid yn bendant yn ei wneud gwastraffu eich gofod gyda hyn.
Gallwch literally-- jyst yn lle hynny o ddweud 48, fel dde i fyny
yno, mae hynny'n cyfateb i dweud un, un collnod,
fel 'na, yn union yr un fath.
>> ROB: Gallech bron yn meddwl am y peth fel os-- Dduw, mae angen i fy I,
oops-- gallech bron feddwl am y peth fel pe bai gennym rywbeth fel 'na hash
diffinio 0 fel 48.
Ni fydd yn gweithio.
Ond yn meddwl amdano fel un dyfyniad 0 quote sengl, ac ar gyfer yr holl gymeriadau.
Meddyliwch amdano fel gyson bod yn cynrychioli gwerth ASCII.
>> DAVIN: Ydw.
OK, felly y tro cyntaf drwy, felly gyda 76-- felly y tro cyntaf drwy,
mae hyn yn unig yw cymeriad 7 minws cymeriad 0,
a'r rhai saith integers-- yn dda, y rhai
saith o lefydd i ffwrdd oddi wrth bob un arall ar y siart ASCII neu beth bynnag.
Felly, mae hynny'n mynd i ddychwelyd yn int o 7.
Felly nawr, swm hafal 7.
>> OK, yn dda, gadewch i ni neidio i mewn i hyn ar gyfer dolen eto.
OK, nawr mae'n swm amseroedd 10.
Felly, rydych yn effeithiol symud y 7 ar y chwith.
A yw hynny'n gwneud synnwyr?
Rydych yn effeithiol symud i'r chwith.
>> Ac yna rydych add-- hyn yn mynd i fod yn 6 minws 0.
Dyna 6.
Felly, mae'n mynd i fod yn 70 a 6.
76, mae hynny'n eich rhif.
Felly, heb ystyried pa rif Rhoddais chi, 'i' jyst yn araf
yn mynd i newid y gwerthoedd mwy o faint ar y chwith, 1 ffactor o 10
bob amser yn yr am ddolen, ac yna ychwanegu yn ôl yr angen.
>> Yn y cefn?
MYFYRIWR: does dim rhaid i ni ei wneud unrhyw gwirio yn y rhaglen?
>> ROB: Felly cyn belled ag y gwirio yn mynd ar gyfer y rhaglen,
byddem yn rhoi gwybod i chi 'n bert llawer beth sydd angen i chi ei wirio.
Os nad ydym yn dweud wrthych unrhyw beth, yna yn gyffredinol
cymryd yn ganiataol yn rhaid i chi wirio rhan fwyaf o bethau.
Fel y gallech, dim ond i fod yn ddiogel, byddwch yn Mae'n debyg y dylai wirio hey, mae s null?
Yna, Nid oes gennyf unrhyw syniad beth i ddychwelyd.
Ond byddem yn dweud wrthych math hwn o beth.
0, nid wyf yn gwybod.
>> DAVIN: A pham y byddech eisiau i ailwirio os s hafal nwl?
MYFYRIWR: [Anghlywadwy].
DAVIN: Oherwydd y seren torgoch.
Mae'n pwyntydd.
Felly mae gwbl dderbyniol datganiad, gallwn ddweud, OK,
s hafal null, oherwydd ei fod yn Gallai fod yn pwyntydd i'w null.
Felly, pryd bynnag y byddwch yn cael awgrymiadau yn eich llwybr yn fel hyn,
mae'n debyg y dylech wirio.
Oherwydd os nad ydych yn gwirio bod, a yna rydych wedyn yn mynd i mewn i'ch am loop,
ac rydych yn doing-- scoot lawr.
Scoot lawr.
>> ROB: Mae'n ddrwg gennym, dyna ni.
>> DAVIN: Ac felly, fel, os ei fod yn null, ac yna rydych
gwneud hyn, pa gwall ydych chi'n mynd i gael?
MYFYRIWR: Rydych yn mynd yn cael nam penodol.
DAVIN: Rydych yn mynd i osod fai, i'r dde, oherwydd eich bod yn
ceisio mynegai i mewn null.
Felly, rydych yn mynd i geisio mynegai i mewn i gof nad ydych yn berchen.
Felly, mae hyn, os yw hyn yn null, ac byddwch yn gwneud hyn, wnewch chi helpu feicio.
>> ROB: Rwyf hefyd yn meddwl ar yr arholiad lle gofynnom y cwestiwn hwn, rydym yn dweud wrthych
y gallwch gymryd yn ganiataol ei fod yn rhif positif.
Oherwydd disgwylir atoi hefyd i ymdrin â rhifau negatif,
felly byddai'n rhaid i achos arbennig chi.
Hey, yw'r cymeriad cyntaf diferyn, ac os felly, OK,
erbyn hyn mae'n cyfanrif negyddol.
Byddwn yn dweud wrthych y mathau hyn o bethau.
Byddwn yn dweud wrthych beth mae angen i chi ei drin.
DAVIN: Ydw.
Felly, rwy'n siŵr y gallai rhai pobl have-- os ydych wedi dechrau edrych ar hen arholiadau,
ydych chi wedi gweld sterln.
Dyna un poblogaidd.
Ac yr wyf yn meddwl yn sterln, roedd yn rhaid i chi gwneud gwiriad hwn ar gyfer null, yr enillion
0 neu rywbeth fel 'na.
Fel, bu'n rhaid i chi wirio am null.
Ac os na wnaethoch, hynny Roedd yn tynnu sylw oddi ar y cwis.
Felly, beth bynnag, mae pawb teimlo'n iawn gyda atoi?
A oes unrhyw un eisiau mynd dros rannau eto?
ROB: O ie, yr wyf yn meddwl rydym hefyd yn dweud wrthych chi
Gall gymryd yn ganiataol bod popeth yw-- hwnnw eu bod mewn gwirionedd yn mynd i mewn i nifer,
nad oes rhaid i chi boeni am, fel, llythyrau fod yn y llinyn, felly.
DAVIN: Yeah.
Ie?
MYFYRIWR: Allwch chi fynd dros un adeg mwy pan
ydych yn defnyddio dyfyniad dwbl a dyfyniad sengl?
>> DAVIN: Cadarn, felly dyfynodau dwbl, iawn yn syml, mae dyfynodau dwbl yn llinynnau.
Felly, os ydych yn dyblu quote unrhyw beth, mae hynny'n llinyn.
Felly, fel, os oedd gennyf hwn 0 dros yma, ac yr wyf yn gwneud hyn, mae hynny'n llinyn.
Bellach mae hynny'n gymeriad.
Felly ni allaf ddod o hyd y gwerth hwn ar fy ASCII siart, am ei fod yn llinyn, yeah.
>> OK, unrhyw gwestiynau eraill?
Ie?
>> MYFYRIWR: Felly, ydych chi wedi eisoes wedi ateb hyn,
ond fel, pan fyddwn ni'n mewn gwirionedd ysgrifennu hyn ar y cwis,
ydych chi eisiau i ni ysgrifennu gyda slaes sero [Anghlywadwy]?
DAVIN: Na
Y cwestiwn oedd dylech rhoi slaes drwy'r zeros
i nodi os ydynt yn sero?
Na, byddwn yn ffigwr allan.
Yeah, diolch, maen nhw'n dda.
OK, unrhyw beth arall?
A oes unrhyw un yn dymuno i'r canlynol-- felly rwy'n credu rydym wedi rhedeg ychydig bach dros gyfnod o amser.
A ydych eisiau gweld un arall, neu?
MYFYRIWR: RandomInt.
>> DAVIN: RandomInt, OK, yn union.
Felly, gadewch i ni wneud RandomInt.
Fe wna i dros yma.
Felly RandomInt mewn gwirionedd yn llawer symlach.
Rwy'n credu atoi mae'n debyg, yw'r un anoddaf ein bod wedi gofyn yn y blynyddoedd blaenorol.
MYFYRIWR: [Anghlywadwy].
>> DAVIN: Beth?
ROB: Rydw i'n gweld os yw'n fath o viewable o dros yma.
DAVIN: A yw'n?
ROB: Nid wyf yn credu ei bod yn going-- dwi'n meddwl mae'n mynd i redeg i ffwrdd i'r dde.
DAVIN: OK, felly byddaf yn gwneud hyn yn un.
Ac yna 'ch jyst roi ar y sgrin.
>> ROB: Pob hawl.
>> DAVIN: Yr ydych eisiau bod yn fy ysgrifennydd?
>> ROB: Yeah.
>> DAVIN: Nice.
OK, alla i ddileu hyn?
>> MYFYRIWR: Yeah.
>> DAVIN: Dyna mor galed.
(CANU) Rydych yn ei wneud yr hyn yr ydych yn ei wneud.
A gwneud yr hyn nad ydych yn ei wneud.
Mae pob hawl.
>> OK, os cofiaf yn iawn, ar y cwis oedd y RandomInt fel,
OK, dw i'n mynd i roi i chi dau rhifau, fel a a a b.
Ac yr wyf am i chi i roi i mi RandomInt rhwng y niferoedd hynny.
Felly RandomInt yn mynd i gymryd dau numbers--
felly RandomInt-- ac mae'n mynd i ddychwelyd yn int.
>> Felly beth yw'r gwerth dychwelyd?
Fi jyst dweud wrthych.
Int, dde?
Fel hyn, ac yna mae'n mynd i gymryd dau ints.
Felly, mae'n mynd i gymryd int a a int b, fel 'na.
Felly beth RandomInt yw mynd i'w wneud yw ei fod yn mynd
i ddychwelyd rhywfaint o werth ar hap mewn rhwng y ddau werth.
Felly, mae'n mynd i fod yn fwy na, llai na b.
Felly, yr wyf yn meddwl mae'n debyg y gallwch gymryd yn ganiataol bod a yw'r lleiaf o'r ddau werthoedd.
Felly, os ydym yn delio â randomness, pa swyddogaeth
yr ydym wedi gweld bod rhoi pethau ar hap i ni?
MYFYRIWR: Drand.
DAVIN: Drand, yn union.
Felly, rydych yn mynd i yn ôl pob tebyg am ddefnyddio eich drand.
Felly, gallwch ddweud hap int, ac rydym annhymerus dim ond dweud ei fod yn dychwelyd 0 ar hyn o bryd.
Ac maen nhw'n rydym yn mynd i ddweud, OK, gydradd hap drand 48.
A beth mae hyn yn ei dychwelyd?
Beth mae'r swyddogaeth hon yn rhoi i chi?
>> MYFYRIWR: Rhwng 0 a 1.
>> DAVIN: Yeah, rhwng 0 ac 1.
Felly, mae'n mynd i be--
>> ROB: A hyn yr wyf yn meddwl yw-- byddem yn dweud hyn wrthoch chi.
Fel, gallwch ddefnyddio drand 48.
Gallwch wirio hyn ar yr arholiad yn y gorffennol.
Ond byddem yn ôl pob tebyg yn dweud eich Gall defnyddio drand 48, a oedd yn
dychwelyd fflôt rhwng 0 ac 1.
>> DAVIN: Ie, ie, rwy'n eithaf sicr ar yr arholiad
mae'n dweud eich bod yn ôl pob tebyg am ddefnyddio drand, yeah.
Felly, mae'n mynd i ddychwelyd rhywfaint o werth rhwng 0 ac 1.
Ac yna beth ydych chi mynd i eisiau ei wneud?
Wel, yr ydych am i luosi by-- aros, yr wyf yn credu ei fod fel hyn, mae'n ddrwg gennyf.
'N annhymerus' jyst yn gwneud hyn.
Nid wyf yn gwybod.
>> Felly b minws a.
Felly pam b minws a?
Felly, gadewch i ni ddweud drand rhoi yn ôl i chi yn OK int--, 'n annhymerus' jyst yn gwneud y gweddill,
felly yn ogystal a.
Felly beth does-- y mae b minws a.
Felly, gadewch i ni ddweud bod drand rhoi yn ôl i chi y gwerth mwyaf posibl y gallai o bosibl
rhoi i chi.
Beth sy'n bod yn mynd i fod?
MYFYRIWR: 1.
>> DAVIN: 1, dde?
Felly, os yw hyn yn 1, ac rydych yn luosi b minws a,
yn dda, mai dim ond y gwahaniaeth rhwng minws A.
Ac os ydych yn, yna ychwanegwch y yn ôl ymlaen i, dyna beth?
Mae wedi b bôn.
A yw hynny'n gwneud synnwyr?
>> MYFYRIWR: Ydw.
>> DAVIN: Felly, os yw hyn yn yr uchafswm gwerthfawrogi y gallai fod o bosibl fod yn,
mae'n mynd i fod yn 1.
Ac yna mae hyn yn unig yw gwahaniaeth rhwng y ddau.
Ychwanegu ar, felly mae hyn yn mynd i ddychwelyd hap.
Ac yn yr achos gornel sy'n drand yn rhoi i chi yn ôl 1,
Bydd ar hap yn unig yn effeithiol yn cael ei b.
Ond dyna yw'r uchafswm y gall fod.
Felly, os yw'n mynd i fod yn llai na hynny, felly gadewch i ni ddweud bod ei hoffi 0.9,
felly, yna 0.9 gwaith b minws mae yn mynd i fod yn llai
na'r gwahaniaeth rhwng b minws a.
>> Ac yna, os ydych yn ychwanegu bod ymlaen i, yna y gwerth yn
mynd i fod yn fwy na, gan fod eich bod yn ychwanegu rhywbeth arno,
ond mae'n mynd i fod yn llai na b.
Felly, rydych chi'n mynd i gael ar hap rif, oherwydd eich bod yn ffonio drand.
A bod y rand, y rhif ar hap yw mynd i fod yn rhywle yn y canol a
a b.
A yw hynny'n gwneud synnwyr?
>> ROB: Dim ond i roi yn rhifau concrid, felly
gadewch i ni ddweud ein bod yn awyddus i ddewis rhif ar hap rhwng 7 a 10.
Felly b minws a yw ein dewis.
Felly, mae ystod o dri rhifau rydym am i ddewis ohonynt.
Ac yna lluosi bod rhwng 0 a 1 1,
os yw hynny wedyn yn rhoi i ni some-- gadewch i ni yn dweud bod yn rhoi i ni 1.5.
>> 1.5 Yna, rydym eisiau mynd 7-10.
1.5 Felly, yn ogystal â 7 yn dod â ni yn ôl i mewn i'n 7 i 10 amrediad.
Ac yna rydym yn storio tu mewn cyfanrif, felly mae'n cwtogi i lawr i 8.
Ac yna rydym yn unig yn dychwelyd hynny.
Felly b minws a yw ein dewis.
a shifftiau i fyny i mewn i'r rhifau ein bod am o fewn yr ystod honno.
Felly, rhwng 7 a 10, ac yna rydym yn yn gallu dychwelyd yr hyn yr ydym yn y pen draw.
>> DAVIN: Yeah, 'n glws.
>> ROB: Diolch yn fawr.
>> DAVIN: Yeah, beth sydd i fyny?
>> MYFYRIWR: A ydym yn rhedeg i unrhyw fath o Gwallau ASCII wrth we're-- os drand yw
dychwelyd fflôt [Anghlywadwy].
>> Felly, yn union fel y dywedodd Rob,: ROB gan nad ar hap yn int,
felly bydd drand yn arnofio.
Felly, ac yna mae'n lluosi allan.
Ac efallai y byddwch yn cael rhywfaint o math o rifau arnofio.
Ac yna mae'n mynd i gwtogi'r amser.
>> MYFYRIWR: OK.
DAVIN: Yeah.
ROB: Ac os yw'r compiler oedd i rybuddio chi am, fel, colli manwl gywirdeb,
dim ond taflu i int mewn yno, ac yna mae'n dda.
DAVIN: Ie?
>> MYFYRIWR: A fyddai'n cael y yr un tebygolrwydd o gael,
fel, b neu [Anghlywadwy]?
>> ROB: Felly yw-- fy mod mewn gwirionedd wondering-- yw RandomInt tybiedig
bod nifer o i lai na b?
Fel, os yw'n rhwng 7 a 10, beth yw'r posibiliadau?
7, 8, a 9, neu 7, 8, 9, 10?
DAVIN: wyf yn anghofio.
Ar y broblem set--
>> ROB: Rwy'n credu ei fod yn 7, 8, 9.
>> DAVIN: Mae'n dweud un yn benodol gynhwysol ac un yn unigryw.
>> ROB: Yeah.
>> DAVIN: Ond dw don't-- Rwy'n not--
>> ROB: Felly, yr wyf yn meddwl y rhain yn nad ydynt wedi'u cynnwys, ac os felly,
mae 'na cyfartal tebygolrwydd o 7, 8, a 9.
Does dim tebygolrwydd o 10.
DAVIN: Ie?
MYFYRIWR: Mae gen i gwestiwn.
Rydym am ddiffinio swyddogaeth dychwelyd nid un gwerth, ond arae.
Yna beth fyddai'r cystrawen ar ôl dychwelyd?
>> DAVIN: OK, felly yna rydych would-- ar ôl dychwelyd?
Felly, gadewch i ni ddweud eich bod wedi datgan amrywiaeth rhywle i fyny yno.
Yna byddech yn unig yn dychwelyd enw'r arae.
>> MYFYRIWR: Iawn, diolch i chi.
Yna, dim ond dychwelyd gyda a--
DAVIN: O aros, felly sori.
Y cwestiwn oedd sut ydych chi'n dychwelyd arae.
>> ROB: Er nad y gallai yn cael ei ddatgan amrywiaeth
ar y corn neu unrhyw beth fel 'na.
Byddai'n rhaid iddo fod yn rhywbeth malloced, gan fod malloc
yw sut yr ydych yn symud o gwmpas dyraniad cof awtomatig.
>> DAVIN: Ydw.
ROB: Sut y byddwch yn ei gael o amgylch cwmpas lleol.
>> DAVIN: Ond byddech dim ond yn dychwelyd ei name--
>> MYFYRIWR: [Anghlywadwy] nid yw'n un gwerth, er enghraifft, dau rif, felly
[Anghlywadwy].
>> DAVIN: Ni allwch ddychwelyd rhif lluosog.
Nid ydych yn gallu, fel, return--
>> MYFYRIWR: soniais am ddychwelyd arae neu rywbeth fel 'na.
>> DAVIN: Yeah, felly y cwestiwn yw gallaf ddychwelyd gwerthoedd lluosog.
Ni allwch ddychwelyd gwerthoedd lluosog.
Ni allwch chi, fel, yn dychwelyd wedyn dychwelyd b neu rywbeth fel 'na.
Oherwydd ar ôl i chi ddychwelyd, rydych dychwelyd allan o'r swyddogaeth.
Ac yna bydd y swyddogaeth yn cael ei wneud, a fel y dywedodd Rob, yw ar y pentwr.
>> Felly yr holl cof mai dim ond yn cael dychwelyd i'r cyfrifiadur.
Mae popeth yn cael ei anghofio, yn y bôn.
Felly os ydych am ddychwelyd lluosog gwerthoedd, rhaid i chi ddychwelyd arae,
A'r ffordd yr ydych yn gwneud hynny yn mallocing.
Ac yna byddech yn dychwelyd x fel 'na.
Yn y bôn, 'ch jyst yn dychwelyd yr enw.
A phan fyddwch yn dychwelyd rhywbeth fel hyn, eich bod yn
Nid mewn gwirionedd yn dychwelyd y gwerth.
>> Felly, gadewch i ni ddweud i chi ei storio gwerthoedd mewn arae.
Dydych chi ddim mewn gwirionedd dychwelyd y gwerthoedd hynny.
Fel, os wyf dychwelodd yn int, rwy'n wir yn dychwelyd copïau o'r gwerthoedd.
Ond os fi oedd i ddychwelyd rhywbeth fel hyn,
Im 'yn dychwelyd geirda i'r gwerthoedd hynny.
Felly rwy'n dychwelyd, yn y bôn, a cyfeiriad cof i'r gwerthoedd.
A yw hynny'n gwneud synnwyr?
MYFYRIWR: Ydw.
DAVIN: Nice.
Ie?
>> MYFYRIWR: Pan fyddwch yn gan ddefnyddio drand dros yma,
oes rhaid i chi roi srand cyn hynny?
>> DAVIN: Na, na, nid wyf yn credu hynny.
>> ROB: Yeah, felly a oes gennych i ddweud unrhyw beth am srand?
'R ball o chi byth yn dweud srand o gwbl yw dim ond gwneud srand o null.
Felly drand ar ei waith ewyllys ei hun.
A bydd yn hadau yn awtomatig gyda yr amser presennol, yr hyn y mae'n ei ddefnyddio.
DAVIN: Ie?
MYFYRIWR: Ydych chi [Anghlywadwy] gyda'r niferoedd?
DAVIN: Ydw, y gallwch.
MYFYRIWR: Felly gallech yn dweud, fel, 4 gwaith 2.
Y peth yw, ni allwch gymryd yn ganiataol yna int yw pedwar bytes.
Yr only--
>> DAVIN: Yr wyf yn golygu, ar gyfer y cwis y gallwch.
[Chwerthin]
>> ROB: Mm, dim.
DAVIN: Ie, ie gallwch.
Os byddant yn gofyn i chi pa mor fawr mae int yw, nad ydych yn gallu bod, fel, pedwar neu wyth.
ROB: O, felly os yw'r cwestiwn yn benodol,
fel, os yw'n broblem codio, dylech ddweud maint y int.
Os yw'n dabl, neu'n mae'n dweud faint o bytes,
Ni ddylech lenwi maint y ints.
>> MYFYRWYR: [Chwerthin]
>> DAVIN: Iawn, felly pam mae maint o int bwysig yma?
Felly, fel, os ydym yn mynd i 32-bit prosesydd neu rywbeth fel 'na,
Yna, mae'n mynd i fod yn bedwar bytes.
Ond ar rai o'r mwyaf newydd pethau, gallai fod yn beth?
Gallai fod yn wyth, dde?
Felly this-- os ydych yn unig cod caled pedwar, Yna, ar rai peiriannau, bydd yn gweithio.
Mae rhai peiriannau, ni fydd yn gweithio.
Ond os ar y cwis rydym yn fel pa mor fawr yw int?
Rhowch pedwar.
ROB: Iawn.
DAVIN: Yeah?
MYFYRIWR: Felly, oherwydd ein bod yn datgan [Anghlywadwy] y tu mewn i swyddogaeth,
dylem roi 3 y tu mewn y swyddogaeth honno?
Neu gallwn ei defnyddio y tu allan?
DAVIN: Gallwch ei ddefnyddio y tu allan i'r swyddogaeth.
Felly, mae'n gofyn am ddim.
>> MYFYRIWR: Colli trac o ble [Anghlywadwy].
>> ROB: O, nid yw'r rhad ac am ddim yn happen-- mae hynny'n rhan o'r hud malloc
yw nad ydych yn cyfyngu i gwmpas lleol.
Mae gennych reolaeth lawn dros pa mor hir yw eich newidynnau yn byw.
Felly, rydym yn galw malloc fan hyn, y gallai fod yn swyddogaeth hollol ar wahân.
Gallai fod yn 10 awr yn ddiweddarach ein bod o'r diwedd yn galw rhad ac am ddim.
>> DAVIN: Felly, er enghraifft, fel, cwpl wythnosau o hyn pan fyddwch yn olaf
gwneud eich sillafu geiriadur psets, rydych yn mynd
i gael rhywfaint o swyddogaeth sydd yn creu tunnell o nodau.
Felly, rydych chi'n mallocing tunnell o nodau mewn swyddogaeth hon.
Ac yna yn ddiweddarach mewn swyddogaeth ar wahân, rydych yn
mynd i eisiau i ryddhau holl nodau hynny.
Felly, gallwch llythrennol dim ond pasio i ddim pwyntydd, felly, cyfeiriad cof
i hyn yr ydych malloced.
A bydd hynny yn iawn.
Nid oes rhaid i chi am ddim, fel, yn yr un swyddogaeth.
Ie?
>> MYFYRIWR: Felly a malloc amrywiol [Anghlywadwy] y tu allan?
Yw bod yr hyn rydych yn ei ddweud?
DAVIN: Arhoswch, yn dweud hynny?
Mae'n ddrwg gennym.
>> MYFYRIWR: Os yw newidyn malloc Gall fod am ddim unrhyw le yn y cod,
yna gallant gael mynediad unrhyw le yn y cod?
Allwch chi eu cadw'n lleol?
>> DAVIN: O, gofynnodd hi, fel, y newidyn, like--
>> ROB: Felly, mae angen i chi gael rhyw fath o gyfeirio
i bloc y malloc yn y cof.
Felly dyma, rydym yn dychwelyd x.
MYFYRIWR: Oh.
ROB: Pe na baem yn dychwelyd x yma, ac mae hyn yn ddim ond yn ddi-rym,
yna byddai gennym unrhyw fynediad at y pwyntydd a malloced,
ac mae'n gollwng cof.
>> MYFYRIWR: OK.
>> DAVIN: Felly fel, gadewch i ni ddweud eich wedi hyn, fel, dde yma.
ROB: Na
DAVIN: Yn fy mhrif swyddogaeth, ni allaf ffoniwch x hwn a bod yn, fel, OK,
yn y swyddogaeth hon, yr wyf yn gwneud hyn.
>> ROB: Iawn.
>> DAVIN: Felly, yr wyf i'n mynd i alw x mewn, fel, prif neu rywbeth fel 'na.
Ni allwch wneud hynny.
Rydych yn mynd i ddychwelyd rhywbeth.
Ond beth ydych chi'n mynd i ddychwelyd?
Rydych yn mynd i ddychwelyd cyfeiriad cof.
Ac oherwydd eich bod yn dychwelyd atgof cyfeiriad, y gellir cael mynediad mewn mannau eraill.
Unrhyw mwy o gwestiynau?
Ie?
>> MYFYRIWR: A yw'r swyddogaeth uchod sef siec am [Anghlywadwy]?
>> DAVIN: Nid Pam fod angen i mi wneud hynny?
MYFYRIWR: [Anghlywadwy].
DAVIN: Oherwydd eich bod yn Nid yw mallocing unrhyw beth.
Felly mae'n not-- yeah, 'i' nid fel s llinyn.
Mae'n pwyntydd rhywle.
Mae'r rhain yn unig werthoedd.
MYFYRIWR: OK.
DAVIN: Yeah.
Unrhyw beth arall?
ROB: Yep?
MYFYRIWR: Ond pan fyddwch [Anghlywadwy]?
>> ROB: Felly, er mwyn rhyddhau y cof, byddem yn ei ddweud yma.
Felly x yw ein pwyntydd i y bloc o cof.
Rydym yn rhad ac am ddim y pwyntydd.
Ac ni fyddem o reidrwydd yn ei wneud yma.
Gallwn ei wneud yn unrhyw le.
Ond byddwch ond yn galw am ddim ar rhywbeth sy'n malloc dychwelyd.
Felly malloc, yma, dychwelodd beth sy'n cael ei storio yn x.
Felly gallwn ffoniwch am ddim ar x.
Unrhyw gwestiynau diwethaf?
>> DAVIN: Unrhyw gwestiynau diwethaf?
Yeah?
>> MYFYRIWR: Mae'n ddrwg gennym, gallwch ail-esbonio pam y byddech yn rhad ac am ddim i mewn 'na?
Pam [Anghlywadwy]?
>> DAVIN: Ar gyfer fan hyn?
>> MYFYRIWR: Yeah, fel dde ar ôl.
DAVIN: Yr ydych yn ôl pob tebyg ddim eisiau rhad ac am ddim yma.
ROB: Yr ydych nid yn ôl pob tebyg fyddai.
DAVIN: Yeah, y byddai hyn yn gwneud dim.
Byddai hyn, fel, creu cof, yn gwneud pethau iddo,
ac yna yn syth anghofio am y peth, yeah.
>> ROB: Ond efallai y byddwn yn ei wneud, fel, mewn yma am ryw reswm.
Efallai y byddwn yn dweud seren int y yn hafal array dychwelyd.
Gwnewch ychydig o stwff gyda y, efallai argraffwch y cynnwys.
Ac yna, yn olaf, rydym yn ei wneud.
Gallwn rhad ac am ddim y.
MYFYRIWR: [Anghlywadwy].
DAVIN: Ddylwn i sgrolio i lawr?
Diolch.
ROB: Nice.
>> DAVIN: Iawn, dyna ni.
ROB: pob hawl, yn dda.
Pob lwc.
>> DAVIN: Os oes gennych gwestiynau, e-bostiwch ni.
Pob lwc.