1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
DAVID Malan: Helo, a croesawu yn ôl i CS50. Felly, mae hyn yw diwedd wythnos pedwar. Dim ond un cyhoeddiad cyntaf. Felly, yr hyn a elwir yn bumed Dydd Llun dod i fyny hyn Dydd Llun i ddod. Dyma'r cyfle i newid o SADWRN / UNSAT i radd lythyr, neu gan gradd llythyr SADWRN / UNSAT. Annoyingly, y broses honno yn ei gwneud yn ofynnol i llofnod, gan fod yn rhaid i chi lenwi allan un o'r rhai ffurflenni ychwanegu / galw heibio pinc. 

Oherwydd dechnegol, y TAS / UNSAT fersiwn a'r fersiwn gradd llythyr rhifau catalog gwahanol. Ond nid oes llawer mawr. Dim ond yn dod i fyny i mi neu i Rob neu i Lauren ar unrhyw adeg. Neu anfonwch e-bost i ni os nad oes gennych y math o waith papur sydd ei angen arnoch heddiw, ac rydym yn Bydd yn sicr o helpu i gymryd gofalu am hynny cyn dydd Llun. 

Mae pob hawl, felly heddiw - mewn gwirionedd, mae 'na dipyn o adlais. Allwn ni tôn fi i lawr ychydig? OK. Felly heddiw, rydym yn cyflwyno pwnc a elwir fel awgrymiadau. A byddaf yn cyfaddef bod hyn yn un o'r pynciau mwy cymhleth yr ydym yn tueddu i cynnwys yn y dosbarth hwn, neu mewn gwirionedd unrhyw Cwrs rhagarweiniol sy'n defnyddio C. 

Ond chymryd fy ngair i am hynny, yn enwedig os yw eich meddwl yn teimlo ychydig yn fwy plygu heddiw ac yn yr wythnosau i ddod. Dyw hi ddim yn gynrychioliadol o chi'n cael waeth yn y 'i jyst yn golygu bod mae'n bwnc arbennig o soffistigedig yr wyf yn addo, ychydig wythnosau felly, bydd yn ymddangos yn rhy drawiadol syml o edrych yn ôl. 

Rwy'n dal i gofio hyd heddiw. Roeddwn yn eistedd yn Elliott Neuadd Fwyta, yn eistedd nesaf at fy TF Nishat Mehta, a oedd yn un o drigolion tŷ Elliott. Ac am ryw reswm, mae hyn yn pwnc yn unig clicio. Pa un yw i ddweud fy mod hefyd ei chael yn anodd ag ef ers peth amser, ond yr wyf yn bydd yn gwneud fy ngorau i helpu i osgoi unrhyw fath cael trafferth gyda bwnc yn y pen draw yn eithaf pwerus. 

Yn wir, un o'r pynciau y byddwn yn trafod yn ystod yr wythnosau sydd i ddod yw bod o ddiogelwch, a sut y gallwch chi mewn gwirionedd yn manteisio ar beiriannau mewn ffyrdd nad oedd y bwriadwyd. Ac exploitations hynny yn nodweddiadol y canlyniad o chwilod, camgymeriadau ein bod yn pobl yn gwneud drwy beidio â deall rhai y gweithrediad sylfaenol manylion drwy pa raglenni yn cael eu gwneud. 

Awr i wneud hyn yn ymddangos yn fwy defnyddiwr gyfeillgar, yr wyf yn meddwl y byddwn i'n chwarae 10 ail rhagolwg o ychydig o animeiddio clai ffigur a enwir Binky a oedd yn dod i bywyd gan ffrind o ni yn Stanford, Athro Nick Parlante. Felly, yn fy ngalluogi i roi hwn i chi ymlid o Binky yma. 

[VIDEO Playback] 

-Hey, Binky. Wake i fyny. Mae'n amser am hwyl pwyntydd. 

-Beth sy'n bod? Dysgu am awgrymiadau? O, nwyddau. 

[VIDEO END Playback] 

DAVID Malan: Mae hynny'n Stanford gwyddoniaeth gyfrifiadurol. Felly mwy am hynny i ddod. 

[Cymeradwyaeth] 

DAVID Malan: Mae'n ddrwg gennyf, Nick. 

Felly, dwyn i gof bod tro diwethaf i ni a ddaeth i ben ar hwn Cliffhanger cyffrous lle swyddogaeth hon nid yn unig oedd yn gweithio. O leiaf yn reddfol, teimlir fel y dylai weithio. Yn syml, gyfnewid y gwerthoedd o dau gyfanrif. Ond yn cofio pan fyddwn yn argraffu'r gwerthoedd gwreiddiol yn y prif, un a dau, eu bod yn dal yn un a dau ac nid dau ac un. 

Felly, gadewch i mi newid mewn gwirionedd draw at y peiriant. Ac yr wyf yn ysgrifennu i fyny ychydig o god ysgerbydol yn ymlaen llaw yma, lle yr wyf yn honni bod x Bydd fod yn 1, bydd y fod yn 2. Yna argraffu ddau o'u gwerthoedd gyda phrint f. 

Yna honni i lawr yma y rydym yn mynd i gyfnewid eu cyfer. Gadewais yn fan wag yma i ni llenwi heddiw mewn dim ond munud. Yna, yr wyf i'n mynd i honni bod y dau newidyn wedi cael eu cyfnewid. Yna mi i'n mynd i argraffu nhw allan eto. Ac felly gobeithio, dylwn gweler 1, 2. 2, 1. Dyna'r syml super nod ar hyn o bryd. 

Felly, sut rydym yn mynd ati i gyfnewid ddau newidyn? Wel, os wyf yn cynnig yma y cwpanau hyn yn allai gynrychioli cof mewn cyfrifiadur. Mae hyn yn ychydig o brathiadau, mae hyn yn yn ychydig brathiadau arall. Gallem fod wedi dod yn wirfoddolwr ar hyd a ni gymysgu rhai diodydd, os gyfarwydd? Dewch ar i fyny. Beth yw eich enw? 

JESS: Jess. 

DAVID Malan: Jess? Dewch ar i fyny, Jess. Os nad ydych yn meddwl, mae'n rhaid i ni roi'r Google Gwydr arnoch chi fel y gallwn immortalize hyn. OK, gwydr. Cofnodi fideo. Ac yn iawn, rydym yn dda i mynd gyda Jess yma. Mae pob hawl. Neis i gwrdd â chi. 

Felly, beth hoffwn chi ei wneud yma - pe gallech, yn eithaf cyflym - dim ond ni arllwys hanner gwydraid o oren sudd a hanner gwydraid o laeth, cynrychioli yn effeithiol y rhifau 1 mewn un cwpan a 2 yn y cwpan eraill. 

Mae hyn yn mynd i fod yn ffilm dda. 

JESS: Mae'n ddrwg gennyf. 

DAVID Malan: Na, na. Mae'n iawn. Nice. Mae pob hawl, felly mae gennym bedwar bytes gwerth o sudd oren. Byddwn yn ei alw y gwerth 1. Nawr pedwar bytes arall gwerth o laeth. Yn galw ei gwerthfawrogi 2. Felly, x ac y, yn y drefn honno. 

Mae pob hawl, felly nawr os y dasg dan sylw - i chi, Jess, o flaen yr holl eich cyd-ddisgyblion - yw cyfnewid y gwerthoedd x ac y fath ein bod am y sudd oren yn y cwpan eraill a'r llaeth mewn cwpan hwn, sut y gallai chi - cyn i chi ei wneud mewn gwirionedd iddo - mynd ati i wneud hyn? 

OK, ddoeth penderfyniad. Felly mae angen ychydig mwy o gof. Felly, gadewch i ni ddyrannu dros dro cwpan, os mynnwch. Ac yn awr symud ymlaen i gyfnewid x ac y. 

Ardderchog. Felly, gwneud yn dda iawn. Diolch yn fawr iawn, Jess. Dyma chi. Mae cofrodd fach. 

Iawn, felly mae'n amlwg, syniad super syml. Hollol sythweledol bod angen ychydig mwy o le storio - yn y ffurflen hon, cwpan - os ydym mewn gwirionedd yn dymuno gyfnewid y ddau newidyn. Felly, gadewch i ni wneud yn union hynny. Yma yn y canol lle rwy'n hawlio fy mod mynd i fod yn gwneud ychydig o gyfnewid, byddaf mynd yn ei flaen ac yn datgan temp. A byddaf yn ei osod yn hafal i, dyweder, x. 

Yna mi i'n mynd i newid y gwerth x yn union fel Jess oedd yma gyda'r llaeth a sudd oren i fod yn hafal i y. Ac yr wyf i'n mynd i newid y i fod yn gyfartal i beidio x, oherwydd erbyn hyn byddem yn sownd mewn cylch, ond yn hytrach dros dro,. Pan fyddaf yn dros dro - neu lle mae Jess rhowch y sudd oren dros dro cyn clobbering bod cwpan gyda'r llaeth. 

Felly, gadewch i mi fynd yn ei flaen yn awr ac yn gwneud hyn. Mae'n cael ei alw noswap.c. Ac yn awr gadewch i mi redeg dim cyfnewid. Ac yn wir yr wyf yn gweld, os wyf yn ehangu'r ffenestr ychydig bach, sy'n x yw 1, y mae 2. Ac yna x yw 2, y yw 1. 

Ond yn dwyn i gof bod ar ddydd Llun rydym yn gwneud pethau ychydig yn wahanol lle rwyf yn hytrach na gweithredu swyddogaeth cynorthwy-ydd, os ydych, a oedd mewn gwirionedd yn ddi-rym. Fe'i gelwais yn gyfnewid. Rhoddais ddau baramedr, ac yr wyf yn galw iddynt ac yr wyf yn galw nhw b. 

Dweud y gwir, gallwn eu x a y galw. Does dim i rwystro fi o beidio gwneud hynny. Ond byddwn yn dadlau ei fod wedyn yn ychydig yn amwys. Gan fod galw i gof ar gyfer dydd Llun yr ydym yn honni bod y paramedrau hyn yn copïau o'r gwerthoedd trosglwyddo i mewn Felly, dim ond messes gyda'ch meddwl, rwy'n credu, os ydych yn defnyddio yn union yr un newidynnau. 

Felly, 'n annhymerus' yn lle hynny iddynt alw a b, dim ond er mwyn eglurder. Ond gallem eu galw y rhan fwyaf o unrhyw beth yr ydym ei eisiau. Ac yr wyf i'n mynd i gopïo a gludo effeithiol cod hwn o fyny yno i lawr i mewn yma. Gan fy mod jyst yn gweld ei fod yn gweithio. Felly dyna mewn cyflwr eithaf da. A byddaf yn newid fy x i, fy x i, fy y i b a fy y i b. 

Felly, mewn geiriau eraill, yr un rhesymeg union. Mae'r un peth yn union y gwnaeth Jess. Ac yna y un peth mae'n rhaid i mi ei wneud i fyny yma, wrth gwrs, yn awr yn galw hyn yn swyddogaeth, neu ffoniwch y swyddogaeth hon. Felly, byddaf yn galw swyddogaeth hon gyda dau mewnbynnau, x ac y, a daro Arbed. 

Mae pob hawl, felly sylfaenol yr un peth. Yn wir, yr wyf wedi gwneud y rhaglen yn ôl pob tebyg gymhleth ddiangen gan ysgrifennu swyddogaeth sy'n cael ei ond yn cymryd rhyw chwe linellau o god er fy mod yn yn flaenorol wedi gweithredu hyn mewn dim ond tri. 

Felly, gadewch i mi fynd yn ei flaen yn awr ac ail-wneud hyn, yn gwneud unrhyw cyfnewid. Mae pob hawl, yr wyf yn sgriwio i fyny yma. Dylai hyn fod yn wall y gallech gweld yn gynyddol gyffredin fel eich rhaglenni yn cael mwy cymhleth. Ond mae 'na ateb hawdd. Gadewch i mi sgrolio yn ôl i fyny yma. 

A beth yw'r gwall cyntaf i mi i'n gweld? Datganiad ymhlyg. Beth mae hynny'n ei ddangos fel arfer? Oh, anghofiais y prototeip. Anghofiais i addysgu'r compiler y cyfnewid yn mynd i fodoli hyd yn oed er ei fod yn yn bodoli ar y dechrau y rhaglen. Felly, Im 'jyst yn mynd i ddweud ddi-rym, cyfnewid, int, a b int, hanner colon. 

Felly, nid wyf ddim yn mynd i reimplement hynny. Ond erbyn hyn mae'n cyfateb i'r hyn sydd i lawr yma. Ac rhybudd, nad oes hanner colon yma, nad yw'n angenrheidiol pan gweithredu. 

Felly, gadewch i mi ail-wneud hyn, yn gwneud dim cyfnewid. Llawer gwell siâp. Rhedeg dim cyfnewid. Ac damn iddo. Nawr rydym yn ôl lle yr oeddem ar ddydd Llun, lle nad oedd y peth yn gyfnewid. 

A beth yw'r esboniad sythweledol am pam fod hyn yn digwydd? Yeah? 

MYFYRIWR: [Anghlywadwy]. 

DAVID Malan: Yn union. Felly, a a b yn gopïau o x ac y. Ac yn wir, unrhyw bryd rydych chi wedi bod galw swyddogaeth hyd yn hyn bod pasio newidynnau fel ints - yn union fel y cyfnewid yn disgwyl yma - rydych guys wedi bod yn pasio mewn gopïau. 

Nawr mae hynny'n golygu ei fod yn cymryd ychydig o amser, eiliad, ar gyfer y cyfrifiadur i gopïo y darnau o un amrywiol yn y darnau o un arall. Ond nid yw hynny'n mor bwysig â hynny. Ond maen nhw'n serch hynny gopi. 

Ac felly yn awr, yng nghyd-destun cyfnewid, Yr wyf mewn gwirionedd yn llwyddiannus newid a b. Yn wir, gadewch i ni wneud yn gyflym gwirio bwyll. Print f mae a yn% i, llinell newydd. A gadewch i plwg yn a. Nawr, gadewch i ni wneud yr un peth gyda b. A gadewch i ni wneud yr un peth yma. 

Ac yn awr, gadewch i mi copïo un llinellau hynny eto ar waelod y swyddogaeth ar ôl fy dair llinell o ddiddorol allai fod wedi gweithredu, a argraffu a b unwaith eto. Felly nawr gadewch i ni wneud hyn, yn gwneud dim cyfnewid. Gadewch imi wneud y ffenestr derfynell a ychydig yn dalach, fel y gallwn weld mwy ohono ar unwaith. 

A rhedeg dim cyfnewid. x yw 1, y mae 2. a yw 1, b yw 2. Ac yna, mae a yn 2, b yw 1. Felly mae'n gweithio, yn union fel Jess wneud hynny yma tu mewn cyfnewid. Ond wrth gwrs, ei fod yn cael unrhyw effaith ar y newidynnau yn y brif. 

Felly, rydym yn gweld tric lle rydym yn Gallai atgyweiria hon, dde? Pan fyddwch yn wynebu gyda hyn gwmpasu mater hwn, gallai 'ch jyst punt a gwneud x ac y pa fath o newidynnau yn lle hynny? 

Gallech eu gwneud yn fyd-eang. Rhowch nhw ar frig y ffeil fel y gwnaethom, hyd yn oed yn y gêm o 15. Rydym yn defnyddio newidyn byd-eang. Ond yng nghyd-destun y gêm o 15, mae'n rhesymol i gael byd-eang Amrywiol cynrychioli'r bwrdd, oherwydd y cyfan o'r 15.c i gyd am weithredu'r gêm. Dyna beth y ffeil yn bodoli i wneud. 

Ond yn yr achos yma, dwi'n galw gyfnewid swyddogaeth. Rwyf am i gyfnewid dau newidyn. A dylai ddechrau teimlo'n unig flêr os yw'r ateb i bob un o'n problemau pan fyddwn yn rhedeg i mewn i gwmpas materion hyn yn ei gwneud yn fyd-eang. Oherwydd gyflym iawn ein rhaglen yn mynd i fod yn dipyn o lanast. Ac rydym yn gwneud hynny yn gynnil iawn o ganlyniad yn 15.c. 

Ond mae'n troi allan mae 'na ffordd well yn gyfan gwbl. Gadewch i mi mewn gwirionedd yn mynd yn ôl a dileu'r argraffu f, yn union i symleiddio'r cod hwn. A gadewch i mi yn cynnig y hyn, yn wir, yn ddrwg. Ond os wyf yn hytrach yn ychwanegu mewn rhai sêr a sêr, gallaf ei dro mae hyn yn lle hynny swyddogaeth i un sy'n mewn gwirionedd yn weithredol. 

Felly, gadewch i mi fynd yn ôl yma ac yn derbyn yn dweud sêr bob amser yn anodd, felly byddaf yn dweud sêr. 'N annhymerus' jyst fess i fyny at yr un. Mae pob hawl. Ac yn awr, beth ydw i'n mynd i wneud yn lle hynny? 

Felly, yn gyntaf oll, yr wyf i'n mynd i bennu yn hytrach na basio int i y swyddogaeth cyfnewid, rwy'n yn lle hynny o fynd i ddweud seren int. Yn awr, beth mae'r seren yn dangos? Mae hyn yn y syniad o pwyntydd y Binky, cymeriad animeiddio clai, roedd cyfeirio at funud yn ôl. 

Felly, os ydym yn dweud seren int, ystyr mae hyn yn awr yn bod yn ddim yn mynd i fod yn basiwyd yn ôl ei werth. Dyw hi ddim yn mynd i gael ei gopïo i mewn Yn hytrach, y cyfeiriad y mae a yn mynd i gael eu trosglwyddo i mewn 

Felly, dwyn i gof bod tu mewn i'ch cyfrifiadur yn criw cyfan o gof, fel arall a elwir yn RAM. A dyna RAM yn unig yw criw cyfan o bytes. Felly, os yw eich Mac neu eich PC wedi dau gigabeit, mae gennych 2 biliwn bytes o gof. 

Nawr, gadewch i ni dim ond mae'n debyg mai dim ond i gadw pethau neis ac yn drefnus, rydym yn pennu cyfeiriad - nifer - i bob beit o RAM yn eich cyfrifiadur. Mae'r beit cyntaf o'r rhai 2 biliwn yw drwy sero rhif. Yr un nesaf yw rhif un beit, rhif dau, yr holl ffordd i fyny, dot dot dot, i tua 2000000000. 

Felly, gallwch nifer o'r bytes y cof wrth eich cyfrifiadur. Felly, gadewch i ni gymryd yn ganiataol bod dyna beth ydym yn ei olygu gan gyfeiriad. Felly, pan fyddaf yn gweld int seren yn, beth sy'n mynd gael ei drosglwyddo i mewn i cyfnewid nawr yw'r cyfeiriad a. Nid yw ei werth, ond beth bynnag ei ​​post cyfeiriad yw, fel petai - ei leoliad yn RAM. 

Ac yn yr un modd ar gyfer b, yr wyf i'n mynd i ddweud yr un peth. Int, seren, b. Fel o'r neilltu, yn dechnegol y seren Gallai fynd mewn lleoliadau eraill. Ond byddwn yn safoni ar y seren yn dde nesaf at y math data. 

Felly cyfnewid llofnod yn awr yn golygu, yn rhoi i mi y cyfeiriad o int, ac yn galw sy'n mynd i'r afael a. Ac yn rhoi cyfeiriad arall o fy int a galw sy'n mynd i'r afael b. 

Ond yn awr fy cod yma yn newid. Oherwydd os wyf yn datgan dro int - sydd yn dal i fod yn int fath - ond yr wyf yn storio ynddo, pa fath o werth? I fod yn glir, a wyf yn rhoi i mewn gyda y cod fel y'i hysgrifennwyd ar hyn o bryd? 

Rwy'n rhoi'r lleoliad yn a. Ond nid wyf yn poeni am y lleoliad yn awr, dde? Temp yn bodoli dim ond trydedd cwpan Jess ' yn bodoli, i ba ddiben? I storio gwerth. Llaeth neu sudd oren. Ddim mewn gwirionedd storio cyfeiriad naill neu'r llall o'r pethau hynny, sy'n teimlo ychydig yn hurt yn y go iawn cyd-destun byd beth bynnag. 

Felly, mewn gwirionedd, yr hyn yr wyf am roi mewn adeiladau dros Nid yw cyfeiriad yn, ond mae'r cynnwys a. Felly, os a yn rhif fel 123, mae hyn yn y beit 123 o gof bod yn unig digwydd bod yn meddiannu, bod gwerth mewn yn digwydd bod yn meddiannu. 

Os ydw i eisiau mynd i'r cyfeiriad hwnnw, Mae angen i mi ddweud seren a. Yn yr un modd, os wyf yn newid yr hyn sydd yn y cyfeiriad yn, byddaf yn newid hwn i ddechrau. Os ydw i eisiau i storio yn yr hyn sydd yn y lleoliad a gyda beth sydd yn y lleoliad yn b, seren b seren. 

Felly, yn fyr, hyd yn oed os nad yw hyn yn hollol suddo i mewn eto - ac ni fyddwn yn disgwyl y byddai mor gyflym - sylweddoli bod yr holl rwy'n ei wneud yn prefixing sêr hyn at fy newidynnau, Nid ddywediad yn chrafangia 'r gwerthoedd. Peidiwch â newid y gwerthoedd. Ond yn hytrach, ewch i'r cyfeiriadau hynny a chael y gwerth. Ewch i'r cyfeiriad hwnnw a newid werth yno. 

Felly nawr gadewch i mi sgrolio yn ôl i fyny i ben, dim ond at atgyweiria y llinell yma, i newid y prototeip i gyd-fynd. Ond yr wyf yn ei angen nawr i wneud un peth arall. Reddfol, os ydw i wedi newid y mathau o ddadleuon y cyfnewid yn disgwyl, beth arall sydd angen i mi newid yn fy cod? 

Pan fyddaf yn galw cyfnewid. Oherwydd ar hyn o bryd, beth ydw I fynd heibio i gyfnewid o hyd? Mae gwerth x a gwerth y, neu y llaeth a sudd oren. Ond nid wyf am wneud hynny. Rwyf yn lle hynny am eu trosglwyddo yn yr hyn? Mae lleoliad x a lleoliad y. Beth yw eu cyfeiriadau post, fel petai. 

Felly, er mwyn gwneud hynny, mae 'na ampersand. Ampersand math o swnio fel cyfeiriad. felly n, ampersand, y cyfeiriad o x, a chyfeiriad y. Felly, mae'n fwriadol ein bod yn defnyddio ampersands wrth alw y swyddogaeth, a sêr wrth ddatgan a phryd gweithredu'r swyddogaeth. 

A dim ond meddwl am ampersand gan fod y chyfeiriad y gweithredydd, a seren wrth i'r fynd yno gweithredydd - neu, yn fwy priodol, y weithredwr dereference. Felly, mae hynny'n llawer iawn o eiriau yn unig i yn dweud bod yn awr, gobeithio, yn cyfnewid yn mynd i fod yn gywir. 

Gadewch i mi fynd yn ei flaen ac yn gwneud - gadewch i ni mewn gwirionedd yn ail-enwi'r ffeil, rhag rhaglen hon yn dal i gael ei alw dim cyfnewid. Allaf hawlio y byddwn yn ei alw'n swap.c awr. Felly gwnewch, cyfnewid. Dot, slaes, cyfnewid. 

Ac yn awr yn wir, x yw 1, y mae 2. Ac yna, yn 2 x, y yn un ohonynt. Wel, gadewch i ni weld os na allwn wneud hyn yn ychydig bach yn wahanol o ran yr hyn sy'n digwydd yma. Yn gyntaf, gadewch i mi chwyddo i mewn ar ein tynnu sgrin yma. A gadewch i mi gynnig am funud - ac pryd bynnag y byddaf yn tynnu yma yn cael ei adlewyrchu fyny yno yn awr - gadewch i mi yn cynnig y dyma criw cyfan o gof, neu RAM, tu mewn fy nghyfrifiadur. 

A bydd hyn yn rhif brathu, gadewch i ni ddweud, 1. Bydd hyn yn bytes rhif 2. A byddaf yn gwneud criw cyfan yn fwy, ac yna griw o dot dot dotiau i yn dangos fod yna 2000000000 o'r pethau hyn. 4, 5, ac yn y blaen. 

Felly mae pum bytes cyntaf o gof fy cyfrifiadur. Mae pob hawl? Ychydig iawn allan o 2 biliwn. Ond yn awr yr wyf i'n mynd i gynnig y canlynol. Rydw i'n mynd i gynnig bod x yn mynd i storio'r rhif 1, ac yn mynd y i storio rhif 2. A gadewch i mi fynd yn ei flaen yn awr ac yn cynrychioli gwerthoedd hyn fel a ganlyn. 

Gadewch i ni wneud hyn fel a ganlyn. Rhowch un eiliad i mi. Un eiliad. OK. Yr wyf am wneud hyn yn bach - gadewch i ni wneud hyn eto. Fel arall, yr wyf i'n mynd i ac yn defnyddio'r yr un niferoedd, yn anfwriadol, sawl gwaith. 

Felly, dim ond felly mae gennym wahanol rifau i siarad am, gadewch i ni galw beit hwn rhif 123, 124, 125, 126, a dot dot dot. A gadewch i mi hawlio nawr fy mod i'n mynd i rhoi'r gwerth o 1 yma, a gwerth 2 yma, a elwir fel arall yn x ac y. Felly, dim ond fel y digwydd bod mae hyn yn x, mae hyn yn y. 

A dim ond gan rai cyfle ar hap, y cyfrifiadur, y system weithredu, ddigwyddodd i roi x yn y lleoliad rhif 123. Ac y daeth i ben i fyny yn y lleoliad 124 - damn iddo. Dylwn i fod wedi sefydlog hyn. O ddyn, ydw i'n wir eisiau gwneud hyn? Ydw, rwyf am i atgyweiria hon a b iawn am hyn heddiw. Mae'n ddrwg gennym, newydd ar hyn. 

127, 131, a doeddwn i ddim am fod hyn yn cymhleth, ond pam wnes i newid y rhifau yno? Gan fy mod am i'r ints i mewn gwirionedd fod yn bedwar bytes. Felly, gadewch i ni fod rhefrol super am hyn. Felly, os 1 yn digwydd mynd i'r afael 123, y 2 yn mynd i fod yn y cyfeiriad 127 oherwydd ei fod yn dim ond 4 byes i ffwrdd. Dyna i gyd. A byddwn yn anghofio am yr holl cyfeiriadau eraill yn y byd. 

Felly x yn y lleoliad 123, y mae yn y lleoliad 127. Ac yn awr, beth Fi 'n weithredol am ei wneud? Pan fyddaf yn galw cyfnewid yn awr, beth mewn gwirionedd yn mynd ymlaen? Wel, pan fydda i'n galw cyfnewid, dwi'n pasio mewn cyfeiriad x a chyfeiriad y. Felly, er enghraifft, os yw'r rhain yn ddau ddarn o bapur yn cynrychioli y ddwy dadleuon a a b i gyfnewid, beth ydw i mynd i ysgrifennu ar y cyntaf o'r rhain, yr wyf i'n mynd i alw cyfeirio ato fel? 

Yn union, 123. Felly, mae hyn allaf hawlio yn a. Mae hyn yn y paramedr a. Rwy'n rhoi'r cyfeiriad x i mewn 'na. 

Beth sy'n bod? 

Beth sy'n bod? 

Na, na. Mae hynny'n iawn. Dal yn dda, yn dal yn dda. Felly, mae hyn yn a. Ac yn awr ar yr ail ddarn o bapur, mae hyn yn mynd i fod yn b, a beth ydw i mynd i gael ei ysgrifennu ar darn hwn o bapur? 127. 

Felly, yr unig beth sydd wedi newid ers ein trawiadol blaenorol o'r stori hon yw, yn hytrach na llythrennol 1 a 2, rwy'n mynd i basio yn 123 a 127. Ac yr wyf i'n awr yn mynd i roi'r rhain mewn y blwch hwn, iawn? Felly y blwch du bellach yn cynrychioli y swyddogaeth cyfnewid. 

Yn y cyfamser, gadewch i ni yn awr rywun gweithredu'r swyddogaeth cyfnewid. A fyddai rhywun yma hoffi i wirfoddoli? Dewch ar i fyny. Beth yw eich enw? Charlie. Mae pob hawl, Charlie. Dewch ar i fyny. 

Felly Charlie yn mynd i chwarae rôl ein blwch du. A Charlie, beth hoffwn i chi ei wneud yn awr yn gweithredu cyfnewid yn y fath fodd hynny, o ystyried y ddau gyfeiriad, oeddech yn mynd mewn gwirionedd i newid y gwerthoedd. A byddaf yn sibrwd yn eich clust sut i redeg y teledu yma. 

Felly, mynd yn ei flaen, ac yr ydych yn y blwch du. Cyrraedd yno. Pa werthoedd ydych yn gweld ar gyfer a, a pa werthoedd yn eich barn chi am b? 

CHARLIE: a yw 123 a b yw 127. 

DAVID Malan: OK, yn union. Nawr oedi yno am ychydig funudau'n. Y peth cyntaf y byddwch yn mynd i wneud yn awr, yn ôl y cod - sy'n 'N annhymerus' nawr dynnu i fyny ar y sgrin - yn mynd i fod i ddyrannu ychydig ychydig o gof a elwir dros dro. Felly, yr wyf i'n mynd i fynd yn ei flaen a rhoi'r cof i chi. 

Felly, mae hyn yn mynd i fod trydydd newidyn bod gennych hygyrch i eich enw dros dro. A beth ydych chi'n mynd i ysgrifennu ar y darn o bapur dros dro? 

CHARLIE: awgrymiadau, dde? 

DAVID Malan: OK, wel reidrwydd awgrymiadau. Felly, y llinell o god fy mod i wedi hamlygu ar yr ochr dde, gadewch i ni ddechrau yno. Mae'n dweud seren a. Felly ar hyn o bryd yn cael ei storio y rhif 123. A dim ond yn reddfol, beth oedd seren 123 yn ei olygu? 

Ond yn benodol, os yw 123, seren yn golygu beth? Mae gwerth a. Neu yn fwy hamddenol, yn mynd yno. Felly, gadewch i mi yn cynnig y, cynnal y mae yn eich llaw, mynd yn ei flaen a thrin y fel pe ei fod yn map. A cherdded eich hun drosodd i'r cyfrifiadur cof, a dod o hyd i ni beth sy'n yn y lleoliad 123. Yn union. 

Felly, rydym yn gweld yn y lleoliad 123 hyn, yn amlwg? Iawn, felly pa werth yn awr yn cael eich mynd i roi i mewn i dro? Yn union. Felly, mynd yn ei flaen a gwneud hynny. Ac ysgrifennu rhif 1 ar y darn o bapur sy'n cael ei dwyn y teitl dros dro ar hyn o bryd. 

Ac yn awr y cam nesaf y ydych yn mynd i weithredu yn mynd i fod yr hyn. Wel, ar yr ochr dde y llinell nesaf o god yn seren b. b, o gwrs, storio cyfeiriad. Sy'n mynd i'r afael 127. Star b golygu'r hyn, casually siarad? 

Ewch i'r lleoliad hwnnw. Felly, mynd yn ei flaen a dod o hyd i ni beth sydd yn y lleoliad 127. OK. Wrth gwrs, yn y lleoliad 127, yn dal yn werth 2. Felly, beth ydych chi'n mynd nawr siop yn beth bynnag sydd yn y lleoliad mewn? Felly seren modd mynd i'r lleoliad a. Beth yw'r lleoliad a? 

Yn union. Felly nawr, os ydych am newid beth sydd yn y lleoliad hwnnw - 'N annhymerus' mynd yn ei flaen ac yn rhedeg y rhwbiwr yma. Ac yn awr roi yn ôl ar y brwsh. Pa rif yr ydych yn mynd i ysgrifennu yn y blwch gwag nawr? 

Yn union. Felly mae hyn yn llinell o god, i fod yn glir - gadewch mi oedi beth Charlie yn ei wneud a nodi yma, beth mae'n ei wneud yn unig yw ysgrifennu i mewn i'r blwch ar leoliad 123 y gwerth a oedd yn flaenorol yn b. Ac felly rydym wedi rhoi ar waith yn awr yn wir yr ail linell o god. 

Nawr yn anffodus, mae dal yn un llinell ar ôl. Nawr, beth sydd yn dros dro, yn llythrennol? Mae'n amlwg y rhif un. Nid yw hynny'n cyfeiriad. Mae'n dim ond nifer, math o newidyn o wythnos un. 

Ac yn awr pan fyddwch yn dweud seren b, mae hynny'n golygu mynd i'r cyfeiriad b, sydd o cwrs yma. Felly, ar ôl i chi gyrraedd yno - 'N annhymerus' mynd yn ei flaen ac yn dileu hyn sydd mewn gwirionedd yn yno - a beth yr ydych yn mynd i ysgrifennu nawr mewn 127 lleoliad? 

CHARLIE: Temp, sy'n un. 

DAVID Malan: Temp, sy'n un. A beth sy'n digwydd i dro yn y diwedd? Wel, nid ydym yn wir yn gwybod. Nid ydym yn wir gofal. Unrhyw amser rydym wedi gweithredu swyddogaeth hyd yn hyn, unrhyw newidynnau lleol sydd gennych yn wir yn lleol. Ac maent ond yn diflannu. Maent yn hawlio gan y gweithredu system yn y pen draw. 

Felly, y ffaith fod dros dro hyd, y mae'r Gwerth 1 yn fath o sylfaenol anniddorol i ni. Mae pob hawl, felly rownd o gymeradwyaeth pe gallem i Charlie. Gwneud yn dda iawn. 

Mae pob hawl, felly beth yn fwy mae hyn yn golygu y gallwn ni ei wneud? Felly, mae'n troi allan ein bod wedi dweud ychydig o gorwedd gwyn ers peth amser. Yn wir, mae'n ymddangos fod llinyn, i gyd y tro hwn, nid mewn gwirionedd yn dilyniant o gymeriadau fel y cyfryw. Mae'n fath o yw bod yn reddfol. 

Ond yn dechnegol siarad, llinyn yn math data yr ydym yn datgan tu mewn y CS50 llyfrgell i symleiddio'r byd am yr ychydig wythnosau cyntaf o ddosbarth. Beth llinyn mewn gwirionedd yn y cyfeiriad o gymeriad rhywle yn RAM. Mae llinyn mewn gwirionedd yn nifer, fel 123 neu 127, mae hynny'n digwydd i ddiffinio lle mae llinyn yn dechrau yn cof eich cyfrifiadur. 

Ond nid yw'n cynrychioli'r llinyn, fel y cyfryw, ei hun. A gallwn weld hyn fel a ganlyn. Gadewch i mi fynd yn ei flaen ac yn agor i fyny rhywfaint o cod sy'n ymysg enghreifftiau cod ffynhonnell heddiw. Ac yr wyf i'n mynd i fynd yn ei flaen ac yn agor i fyny, gadewch i ni ddweud, cymharu-0.c. Mae hon yn rhaglen buggy sy'n mynd i'w gweithredu fel a ganlyn. 

Yn gyntaf. Dw i'n mynd i ddweud rhywbeth. Yna mi i'n mynd i fynd yn ei flaen a cael llinyn gan y defnyddiwr yn y llinell nesaf. Yna mi i'n mynd i ddweud eto. Yna mi i'n mynd i gael un arall llinyn gan y defnyddiwr. 

Ac yn sylwi, rwy'n yn dangos un o'r llinynnau mewn amrywiol o'r enw, ac arall o linynnau hyn mewn newidyn o'r enw t. Ac yn awr yr wyf i'n mynd i wneud cais, yn fawr rhesymol, os s hafal hafal t, y tannau yr un fath. Rydych yn teipio yr un peth. Arall, yn y tannau yn Nid yr un peth. 

Wedi'r cyfan, os ydym mewnbwn dau ints, dau chars, dau fflotiau, dau dyblau, unrhyw un o y mathau o ddata rydym wedi trafod hyd yma eu cymharu - cofio rydym yn gwneud yn glir iawn beth amser yn ôl nad ydych yn gwneud hyn, gan fod arwydd cyfartal unigol, wrth gwrs, y gweithredwr aseiniad. Felly, byddai hynny'n bug. 

Rydym yn defnyddio yr arwydd hafal cyfartal, sydd yn wir yn cymharu pethau ar gyfer gwir gydraddoldeb. Ond yr wyf yn hawlio hyn yn bygi. Os byddaf yn mynd yn ei flaen ac yn gwneud cymharu sero, ac yna yn dot slaes cymharu sero. Ac yr wyf yn teipio i mewn, gadewch i ni ddweud, helo. Ac yna gadewch i ni ddweud helo eto. Llythrennol yr un peth, y cyfrifiadur hawliadau wyf deipio pethau gwahanol. 

Nawr efallai Fi jyst gamdeipio'r enw rhywbeth. 'N annhymerus' teipio fy enw hyn o bryd. Yr wyf yn golygu, helo. Helo. Mae'n wahanol bob tro. 

Wel, pam hynny? Beth sy'n digwydd mewn gwirionedd o dan y cwfl? Wel, beth sy'n digwydd mewn gwirionedd o dan y cwfl yn y llinyn, yna Yr wyf deipio yn y tro cyntaf, er enghraifft yw'r gair helo, wrth gwrs. Ond os ydym yn eu cynrychioli hyn o dan y cwfl, dwyn i gof bod llinyn mewn arae. Ac rydym wedi dweud hynny yn y gorffennol. 

Felly os wyf yn tynnu bod amrywiaeth fel hyn, dwi'n mynd i gynrychioli rhywbeth eithaf debyg i'r hyn a wnaethom funud yn ôl. Ac mae mewn gwirionedd yn rhywbeth arbennig yma, hefyd. Beth wnaethon ni benderfynu oedd yn ddiwedd pob llinyn? Yeah, mae hyn yn sero slaes, sydd yn dim ond y ffordd o gynrychioli, llythrennol, 00,000,000. Wyth 0 ddarnau yn olynol. 

Nid wyf yn gwybod, a dweud y gwir, beth sydd ar ôl hyn. Dyna dim ond bagad mwy o RAM tu mewn fy nghyfrifiadur. Ond mae hyn yn arae. Rydym yn siarad am araeau o'r blaen. Ac rydym fel arfer yn siarad am araeau fel leoliad sero, yna un, yna ddau. Ond dim ond er hwylustod. A bod yn hollol cymharol. 

Pan fyddwch chi'n mewn gwirionedd yn cael cof o'r y cyfrifiadur, mae'n wrth gwrs unrhyw 2000000000 rhai bytes rhyfedd, o bosibl. Felly mewn gwirionedd o dan y cwfl, yr holl amser hwn, ie. Gallai hyn yn dda iawn fod yn sero braced. Ond os ydych yn cloddio hyd yn oed yn ddyfnach o dan y cwfl, mae hynny'n wir mynd i'r afael rhif 123. Mae hyn yn gyfeiriad 124. Mae hyn yn gyfeiriad 125. 

A doeddwn i ddim sgriw i fyny y tro hwn. Mae'r rhain yn awr yn un bytes ar wahân am ba reswm? Pa mor fawr yw golosg? Mae torgoch yn un beit. Mae int yn nodweddiadol pedwar bytes. Felly dyna pam yr wyf yn ei wneud yn 123, 127, 131 ac yn y blaen. Nawr gallaf gadw y math symlach a dim ond gwneud ac 1. Ac mae hyn yn awr beth sy'n digwydd mewn gwirionedd ymlaen o dan y cwfl. 

Felly, pan fyddwch yn datgan rhywbeth fel hyn, llinyn, mae hyn mewn gwirionedd - mae'n troi allan - seren torgoch. Seren, wrth gwrs, yn golygu gyfeiriad, pwyntydd aka. Felly mae'n y cyfeiriad o rywbeth. Beth yw cyfeiriad? 

Wel - Fi yw'r unig un sy'n gallu gweld yr union pwynt pwysig fy mod yn gwneud, neu'n meddwl Fy mod yn gwneud. Felly llinyn - y peth trist yw gen i fonitro iawn yno lle rwy'n allai fod wedi gweld hynny. 

Mae pob hawl, felly llinyn yw hyn Rwy'n datgan o'r blaen. Ond mae'n troi allan, diolch i ychydig hud yn y llyfrgell CS50 hwn, mae'r holl llinyn amser yn llythrennol bod yn seren torgoch. Mae'r seren eto yn golygu pwyntydd neu gyfeiriad. Mae'r ffaith ei fod wedi bob ochr i'r gair torgoch yn golygu ei fod yn y cyfeiriad y cymeriad. 

Felly, os yn cael ei alw llinyn, ac yr wyf yn teipio yn H-E-L-L-O, yn cynnig yn awr yr hyn sydd wedi cael llinyn llythrennol bod yn dychwelyd yr holl y tro hwn, er ein bod i wedi yn hytrach gorsymleiddio y byd? Beth mae cael llinyn mewn gwirionedd dychwelyd fel ei werth dychwelyd? 

123 yn yr achos hwn, er enghraifft. Rydym eisoes wedi dweud bod yn cael llinyn yn syml yn dychwelyd llinyn, dilyniant o cymeriadau. Ond mae hynny'n dipyn o gelwydd gwyn. Mae'r ffordd yn cael llinyn mewn gwirionedd yn gweithio o dan y cwfl a yw'n cael llinyn gan y defnyddiwr. Mae'n Plops y cymeriadau ef neu hi fathau yn y cof. Mae'n rhoi sero slaes ar y diwedd o'r rhai a dilyniant o gymeriadau. 

Ond yna beth mae cael llinyn dychwelyd llythrennol? Mae'n llythrennol yn dychwelyd y cyfeiriad y bytes cyntaf yn y RAM a ei ddefnyddio ar gyfer y nerth. Ac mae'n troi allan mai dim ond drwy ddychwelyd cyfeiriad unigol o'r cymeriad cyntaf yn y llinyn, hynny yw ddigonol ar gyfer dod o hyd y cyfan o'r y llinyn. 

Mewn geiriau eraill, gael nid llinyn oes gan i ddychwelyd 123 a 124 a 125. Nid oes rhaid i roi hir i mi rhestr o'r holl bytes sy'n fy llinyn yn ei ddefnyddio. Oherwydd bod un, maen nhw i gyd gefn wrth gefn. A dau, yn seiliedig ar y cyfeiriad cyntaf, yr wyf yn Gall chyfrif i maes lle y llinyn yn dod i ben. Sut? 

Mae cymeriad null arbennig, y slaes sero ar y diwedd. Felly, mewn geiriau eraill, os byddwch yn pasio o gwmpas - tu mewn newidynnau - cyfeiriad a golosg, ac yr ydych yn tybio hynny ar ddiwedd unrhyw llinyn, unrhyw dilyniant o gymeriadau wrth i ni bodau dynol meddwl o linynnau, os ydych yn cymryd yn ganiataol bod ar ddiwedd unrhyw llinyn o'r fath mae sero slaes, rydych yn euraidd. Oherwydd y gallwch bob amser yn dod o hyd i ddiwedd y llinyn. 

Nawr beth sy'n digwydd mewn gwirionedd, yna mynd ymlaen yn y rhaglen hon? Pam fod y rhaglen hon, cymharu-0.c, bygi? Beth mewn gwirionedd yn cael ei gymharu? Yeah? 

MYFYRIWR: [Anghlywadwy]. 

DAVID Malan: Yn union. Mae'n cymharu y lleoliadau y llinynnau. Felly, os bydd y defnyddiwr wedi teipio helo unwaith, fel y gwneuthum, efallai y cof yn y pen draw yn edrych fel hyn. Os hynny mathau y defnyddiwr yn helo eto, ond drwy ffonio cael llinyn eto, c yw nid yn arbennig glyfar oni bai eich bod yn addysgu ei fod yn glyfar yn ôl cod ysgrifennu. 

C - a chyfrifiaduron yn fwy cyffredinol - os ydych yn teipio yn y gair helo eto, eich bod yn gwybod beth rydych chi'n mynd i gael. Ydych ond yn mynd i gael ail amrywiaeth o gof hynny, wrth gwrs, yn digwydd yn storio H-E-L-L-O ac yn y blaen. 

Mae'n mynd i edrych yr un fath i ein pobl, ond mae cyfeiriad hwn Efallai na fydd 123. Gallai dim ond fel y digwydd bod y system weithredu wedi rhai sydd ar gael lle er enghraifft yn y lleoliad - gadewch i ni ddweud rhywbeth mympwyol, fel hyn yn lleoliad 200. Ac mae hyn yn lleoliad 201. Ac mae hyn yn lleoliad 202. Nid oes gennym unrhyw syniad ble mae hynny'n mynd i fod yn y cof. 

Ond beth mae hyn yn ei olygu yw bod yr hyn sy'n mynd i gael eu storio yn y pen draw yn s? Y rhif 123. Beth sy'n mynd i gael eu storio mewn t, yn yr enghraifft hon mympwyol? Y rhif 200. A hynny i gyd yn golygu hynny yn amlwg, Nid yw 123 yn gyfartal 200. Ac felly os yw cyflwr byth gwerthuso i wir. Gan fod llinyn get yn defnyddio gwahanol darnau o gof bob tro. 

Nawr gallwn weld hyn eto yn enghraifft arall. Gadewch i mi fynd yn ei flaen ac yn agor i fyny chopi-0.c. Yr wyf yn honni bod yr enghraifft hon yn mynd i geisio - ond methu - gallwch gopïo dau llinynnau fel a ganlyn. 

Dw i'n mynd i ddweud rhywbeth i'r defnyddiwr. Yna yr wyf i'n mynd i gael llinyn a galw s. Ac yn awr, yr wyf i'n gwneud gwiriad hwn yma. Rydym yn sôn am hyn ychydig yn ôl. Ond pan y gallai gael llinyn null dychwelyd, gymeriad arbennig arall, neu arbennig symbol gadewch i ni ddweud. Os yw'n allan o gof. 

Er enghraifft, os yw'r defnyddiwr yn wirioneddol bod yn anodd a mathau o erchyll nifer o gymeriadau yn y bysellfwrdd a hits Enter. Os bydd y nifer o gymeriadau nid yn unig all ffitio i mewn RAM am ba bynnag crazy reswm, yn dda yn cael gallai llinyn yn dda iawn dychwelyd null. 

Neu os yw eich rhaglen ei hun yn gwneud llawer o bethau eraill ac nid dim ond Nid yw digon o gof ar gyfer pedwarawd llinynnol get i lwyddo, efallai yn dod i ben i fyny dychwelyd null. Ond gadewch i ni fod yn fwy manwl gywir ynghylch beth mae hyn yn. Beth yw s yn fath data mewn gwirionedd? Seren torgoch. 

Felly, mae'n troi allan nawr gallwn croen yn ôl yr haen o null. Troi allan, null yw - ie, yn amlwg symbol arbennig. Ond beth yw e mewn gwirionedd? Really, null yn unig yw symbol yr ydym yn pobl yn eu defnyddio i gynrychioli sero hefyd. 

Felly, mae'r awduron C, a chyfrifiaduron yn fwy cyffredinol, penderfynodd flynyddoedd yn ôl hynny, eich bod yn gwybod beth. Pam nad ydym yn sicrhau na chaiff unrhyw ddefnyddiwr data byth, byth, byth storio ar sero bye? Yn wir, hyd yn oed yn fy enghraifft mympwyol o'r blaen, doeddwn i ddim yn dechrau rifo'r bytes ar sero. Dechreuais ar un. Gan fy mod yn gwybod bod pobl yn y byd wedi penderfynu cadw'r sero beit mewn RAM unrhyw un yn rhywbeth arbennig. 

Y rheswm am hyn, ar unrhyw adeg rydych am ei arwydd bod rhywbeth wedi mynd o'i le mewn perthynas â chyfeiriadau, dychwelodd i chi null - a elwir fel arall yn sero - ac oherwydd eich bod yn gwybod nad oes unrhyw legit data yn y cyfeiriad sero, yn amlwg mae hynny'n golygu gwall. A dyna pam yr ydym, yn ôl confensiwn, edrychwch ar gyfer null a dychwelyd rhywbeth fel un yn yr achosion hynny. 

Felly, os ydym yn sgroliwch i lawr nawr, mae hyn yn unig yna mae rhai gwirio gwall, rhag ofn aeth rhywbeth o'i le gyda [? mechnïaeth?] yn gyfan gwbl a gadael y rhaglen trwy ddychwelyd yn gynnar. Mae'r llinell hon gellid nawr yn cael ei ailysgrifennu â hyn, sy'n golygu beth? Ar yr ochr chwith, yn rhoi i mi un arall pwyntydd i gymeriad, a galw yn t. Beth ydw i'n ei storio tu mewn t, yn seiliedig ar un llinell hon o god? 

Rwy'n storio lleoliad. Yn benodol y lleoliad oedd yn s. Felly, os bydd y defnyddiwr wedi teipio helo, ac yn gyntaf helo digwydd i roi diwedd ar i fyny yma, yna mae'r rhif 123 yn yn mynd i ddod yn ôl o gael llinyn ac yn cael ei storio - fel y dywedasom yn gynharach - yn s. 

Pan wyf yn awr yn datgan pwyntydd arall i a t golosg a galw yn, pa rif sydd llythrennol yn mynd i roi diwedd ar i fyny yn t yn ôl y stori? Felly 123. 

Felly dechnegol nawr yn s a t yn pwyntio at yr union yr un darnau o gof. Felly sylwi ar yr hyn yr wyf i'n mynd i wneud yn awr i profi bod y rhaglen yn bygi. 

Yn gyntaf yr wyf i'n mynd i wneud cais, gyda print f, gan fanteisio copi o'r llinyn. Yna mi i'n mynd i wneud ychydig Gwall wrth wirio. Rydw i'n mynd i wneud yn siŵr. Gadewch i ni wneud yn siŵr bod y llinyn t ar lleiaf yn fwy na sero o hyd, felly mae rhywfaint o gymeriad yno i fanteisio mewn gwirionedd. 

Ac yna efallai y byddwch yn cofio hyn o enghreifftiau blaenorol. 2 uchaf - sydd yn y ffeil ctype.h. T braced sero rhoi sero i mi gymeriad y llinyn t. A 2 uchaf o'r un gwerth, gwrs, yn trosi i priflythyren. 

Felly reddfol, mae hyn yn tynnu sylw at linell o cod yn cael manteisio gyntaf llythyr yn t. Ond nid yw'n manteisio, yn reddfol, y llythyr cyntaf yn s. Ond os ydych yn meddwl ymlaen, beth ydw i ar fin gweld pan fyddaf yn rhedeg y rhaglen hon ac argraffwch y gwreiddiol, s, a'r copi fel y'i gelwir, t? 

Maent yn wir yn mynd i fod yr un fath. A pham maen nhw'n mynd i fod yr un fath? Maent yn ddau pwyntio i yn union yr un peth. Felly, gadewch i ni wneud hyn. 

Gwnewch gopi sero. Mae'n llunio OK. Gadewch i mi redeg copi sero. Gadewch i mi deipio rhywbeth fel helo yn Yna daro pob llythrennau bach Enter. Ac mae'n honni bod y s wreiddiol a'r copi yn wir yn union yr un fath. 

Felly, beth sydd wir yn digwydd yma? Gadewch i mi ail-lunio darlun hwn yn unig i ddweud y stori mewn ychydig yn wahanol ffordd. Beth sy'n wir yn mynd ymlaen o dan y cwfl pan wyf yn datgan rhywbeth fel torgoch dechrau s, neu linyn s, Yr wyf yn cael pwyntydd - sy'n digwydd i fod yn bedwar bytes yn y CS50 offer ac mewn llawer o gyfrifiaduron. Ac yr wyf i'n mynd i alw y s. Ac mae hyn ar hyn o bryd rhywfaint o werth anhysbys. 

Pan fyddwch yn datgan newidyn, oni bai eich bod eich hun yn rhoi gwerth fan honno, a yn gwybod beth sydd yno. Gallai fod peth dilyniant ar hap o darnau o'r gweithredu blaenorol. Felly, pan fyddaf, yn fy llinell o cod yn cael llinyn, ac yna'i storio dychwelyd gwerth mewn s cael llinyn rhywsut - ac rydym yn y pen draw chi helpu croen yn ôl sut yn cael gwaith llinyn, rywsut yn dyrannu amrywiaeth yn ôl pob tebyg yn edrych yn ychydig fel hyn. H-E-L-L-O, slaes sero. 

Gadewch i ni dybio bod hyn yn gyfeiriad 123 dim ond cysondeb gyntaf. Felly, yn cael dychwelyd llinyn, yn y Amlygodd lein yn y fan, mae'n dychwelyd y Dywedodd nifer ydym, 123. Felly, beth sydd wir yn mynd y tu mewn o s yma? 

Wel, beth sydd wir yn mynd tu mewn yw 123. Ond dweud y gwir, rwy'n cael ychydig yn drysu gan yr holl gyfeiriadau hyn, holl rifau mympwyol hyn. 123, 124, 127. Felly, gadewch i ni symleiddio mewn gwirionedd y byd yn ychydig bach. 

Pan fyddwn yn sôn am awgrymiadau, a dweud y gwir, i ni bodau dynol, y mae'r heck gofalu lle pethau mewn cof? Mae hynny'n hollol fympwyol. Mae'n mynd i ddibynnu ar sut y llawer o RAM gan y defnyddiwr. Mae'n mynd i ddibynnu ar pryd yn ystod y dydd ydych yn rhedeg y rhaglen, efallai, a pa fewnbwn y defnyddiwr yn rhoi i chi. Rydym yn annedd ar fanylion dibwys. 

Felly, gadewch i ni haniaethol i ffwrdd a dweud, pan fyddwch yn rhedeg llinell o cod fel hyn, torgoch seren s yn cael y ffurflen gwerth o linyn get. Peidiwch â pam yr ydym yn hytrach na dim ond tynnu hyn yr ydym yn cadw galw pwyntydd fel pe ei fod yn pwyntio at rywbeth? Felly yr wyf yn honni yn awr ei fod ef i fyny mae pwyntydd - o dan y cwfl ei fod yn gyfeiriad. Ond 'i' jyst bwyntio at y beit cyntaf yn y llinyn sydd wedi bod yn dychwelyd. 

Os wyf yn awr yn dychwelyd at y cod yma, beth sy'n mynd ymlaen yn y llinell hon? Wel, yn y llinell hon a amlygwyd yn awr, Rwy'n datgan yn ôl pob golwg arall amrywiol o'r enw t. Ond mae hefyd yn pwyntydd, felly dwi'n mynd i dynnu fel, mewn theori, yr union blwch un maint. Ac yr wyf i'n mynd i alw yn t. 

Ac yn awr os ydym yn mynd yn ôl at y cod unwaith eto, pan fyddaf yn storio y tu mewn t, beth ydw i yn dechnegol rhoi tu mewn t? Wel dechnegol, mae hyn yn oedd y nifer 123. Felly mewn gwirionedd dylwn i fod yn ysgrifennu rhif 123 yno. Ond gadewch i ni fynd ag ef ar lefel uwch. t, os mai dim ond pwyntydd, reddfol, yn unig yw hynny. Dyna i gyd sydd wedi cael ei storio mewn 'na. 

Felly, yn awr yn y llinellau diddorol ddiwethaf o god, pan mewn gwirionedd yn mynd ati i manteisio cymeriad sero mewn t, yr hyn sy'n mynd ymlaen? Wel, t braced sero yn awr yn pwyntio i ba gymeriad, yn ôl pob tebyg? 

Mae'n pwyntio at h. Oherwydd bod t braced sero - galw i gof, mae hyn yn hen gystrawen. t braced sero yn unig yn golygu os t yn llinyn, t braced sero yn golygu cael y sero gymeriad yn y nerth. Felly, beth mae hynny'n ei olygu mewn gwirionedd yw mynd i'r amrywiaeth hwn - ac ie, gallai hyn fod yn 123, gallai hyn fod yn 124. Ond mae'n gyd berthynas, cofiwch. Pryd bynnag y siarad am amrywiaeth, rydym wedi y fantais o siarad am mynegeion cymharol. 

Ac felly yn awr y gallwn gymryd yn ganiataol bod t braced sero h. Felly os wyf yn galw 2 uchaf arno, beth mae hynny'n mewn gwirionedd yn ei wneud yn manteisio yr h llythrennau bach i priflythyren H. Ond wrth gwrs, beth yw s? Mae'n pwyntio at yr un llinyn darn. 

Felly, mae hyn yw'r cyfan sydd wedi bod yn digwydd yn y cod hwn hyd yn hyn. Felly, beth sydd yna bydd y goblygiadau? Sut rydym yn datrys y ddwy broblem? Sut rydym yn cymharu â llinynnau gwirioneddol? 

Wel reddfol, sut y byddai byddwch yn mynd am gymharu dau llinynnau ar gyfer gwir gydraddoldeb? 

Beth mae'n ei olygu os oes dau llinynnau yn gyfartal? Yn amlwg, nid bod eu cyfeiriadau yn gyfartal yn y cof, oherwydd dyna isel manylion gweithredu lefel. Mae pob un o'r cymeriadau yr un fath. Felly, gadewch i mi gynnig, a gadewch i mi gyflwyno mewn fersiwn un o compare.c yma, felly cymharu-1.c. 

Gadewch i mi cynnig ein bod yn dal i gael pwyntydd enw s, a storio ynddo y dychwelyd gwerth llinyn get. Gadewch i ni wneud yr un peth gyda t. Felly, nid oes yr un y cod yn wahanol. Rydw i'n mynd i ychwanegu ychydig mwy o wall gwirio awr. Felly nawr ein bod yn fath o plicio yn ôl haenau hyn yn CS50 o'r hyn y llinyn mewn gwirionedd, mae angen i ni fod yn fwy rhefrol gwneud yn siŵr nad ydym yn cam-drin gwerthoedd annilys fel null. 

Felly, Im 'jyst yn mynd i wirio. Os nad yw'n s null cyfartal ac nid yw'n t null cyfartal, sy'n golygu ein bod yn iawn. Get Nid yw'r llinyn yn sgriw i fyny yn cael un o'r llinynnau hynny. A allwch chi ddyfalu efallai nawr, beth yn STR CMP yn ôl pob tebyg yn ei wneud? Llinyn cymharu. 

Felly, os oes gennych raglen yn java o'r blaen, mae hyn yn debyg i'r dull yn hafal yn y dosbarth llinyn. Ond ar gyfer y rhai ohonoch nad ydynt wedi raglennu o'r blaen, hyn swyddogaeth c yn unig. Mae'n digwydd i ddod i mewn a ffeil o'r enw string.h. Dyna lle mae'n datgan. 

A llinyn cymharu - Fi 'n weithredol yn anghofio ei defnydd, ond byth yn meddwl hynny. Dwyn i gof bod yn gallu gwneud dyn, tro cymharu. Ac mae hyn yn mynd i ddod i fyny 'r Llawlyfr rhaglenwyr Linux. Ac mae'n, dweud y gwir, ychydig yn cryptig. Ond gallaf weld yma fod, yep. Rhaid i mi gynnwys string.h. 

Ac mae'n dweud yma o dan y disgrifiad, "y swyddogaeth cymharu llinyn yn cymharu y ddau llinynnau S1 a S2. "Ac S1 ac S2, mae'n debyg, y ddau dadleuon pasio i mewn Dwi ddim yn cofio beth Etholaeth yw, ond erbyn hyn yn sylwi - ac efallai eich bod wedi gweld hyn eisoes pan eich bod wedi defnyddio'r tudalennau dyn os ydych yn rhaid i hyn i gyd - y seren torgoch yn unig gyfystyr gyda llinyn. 

Felly mae'n cymharu y ddau llinynnau, S1 ac S2, ac yn dychwelyd yn gyfanrif llai na neu'n hafal i neu'n fwy na sero os S1 yn dod o hyd, yn y drefn honno, i fod yn llai na, neu yn cyd-fynd, neu fod yn fwy na S2. Dyna dim ond yn ffordd gymhleth iawn o ddweud y llinyn cymharu enillion sero os oes dau llinynnau yn reddfol union yr un fath, cymeriad gyfer cymeriad cymeriad. 

Mae'n dychwelyd rhif negyddol os s, yn nhrefn yr wyddor, i fod i ddod o flaen t. Neu yn dychwelyd rhif positif os s i fod i ddod ar ôl t yn nhrefn yr wyddor. Felly, gyda hyn swyddogaeth syml, gallai chi, er enghraifft, didoli criw cyfan o eiriau? 

Felly, yn y fersiwn newydd, dw i'n mynd i fynd yn ei flaen a gwneud compare1. Dot slaes cymharu un. 'N annhymerus' deipio i mewn helo ym mhob achos is. Rydw i'n mynd i deipio helo ym mhob llythrennau bach eto. Ac yn diolch i'r drefn awr mae'n sylweddoli Yr wyf deipio yr un peth. 

Yn y cyfamser, os wyf deipio i mewn helo yn is achos ac HELO mewn priflythrennau a cymharu, yr wyf deipio gwahanol bethau. Oherwydd nid yn unig yn y cyfeiriadau wahanol, ond rydym yn cymharu cymeriadau gwahanol eto ac eto. 

Wel, gadewch i ni fynd a gosod un broblem arall nawr. Gadewch i mi agor fersiwn un o'r copi, sydd bellach yn mynd i'r afael y mater hwn fel a ganlyn. Ac mae hyn yn un yn mynd i edrych ychydig yn fwy cymhleth. Ond os ydych yn meddwl am yr hyn rydym yn broblem angen i ddatrys, gobeithio bydd hyn yn glir mewn dim ond munud awr. 

Felly mae hyn yn llinell gyntaf, cols dechrau t, yn Gallai termau lleyg rhywun yn cynnig beth mae hyn yn llinell yma'n golygu? Golosg seren t, beth yw hynny wneud? 

Da. Creu pwyntydd i rai fan a'r lle yn y cof. A gadewch i mi fireinio ychydig. Datgan amrywiol a fydd yn storio'r gyfeiriad rhai torgoch yn y cof, dim ond i fod ychydig yn fwy priodol. 

Iawn, felly, yn awr ar yr ochr dde, rydw i wedi erioed wedi gweld un o'r swyddogaethau hyn o'r blaen, malloc. Ond beth y gallai hynny ei olygu? Dyrannu cof. Dyrannu cof. 

Felly, mae'n troi allan, hyd yn hyn, rydym yn nid ydynt mewn gwirionedd wedi ffordd bwerus o gofyn i'r system weithredu, rhoi rhywfaint o cof i mi. Yn hytrach, mae gennym yn awr swyddogaeth o'r enw malloc sy'n gwneud yn union hynny. Er bod hyn yn dipyn o tynnu sylw ar hyn o bryd, yn sylwi bod yn rhwng y ddau cromfachau yn jyst yn mynd i fod yn rhif. Ble rydw i wedi teipio dan sylw Gall marciau fod yn rhif. 

Ac mae'r nifer yn golygu, yn rhoi 10 bytes mi. Rhowch 20 bytes mi. Rhowch 100 bytes mi. A bydd malloc gwneud ei orau i gofyn i'r system weithredu - Linux, yn yr achos hwn - hey, yw eu 100 bytes o RAM sydd ar gael? Os felly, yn dychwelyd bytes hynny i mi gan dychwelyd y cyfeiriad pa un o'r bytes hynny, efallai? Y cyntaf un. 

Felly, yma hefyd - ac mae hyn yn bennaf yn C, unrhyw tro y byddwch chi'n delio gyda chyfeiriadau? Rydych yn bron bob amser yn delio â'r gyfeiriad cyntaf o'r fath, ni waeth pa mor fawr darn o gof ydych yn cael eich drosglwyddo'n ôl, fel petai. 

Felly, gadewch i blymio i mewn yma. Yr wyf yn ceisio dyrannu sut nifer o bytes, yn union? Well. Hyd cyfres o s - gadewch i gwneud yn enghraifft concrid. Os yw helo, H-E-L-L-O, beth yw'r hyd cyfres o s, yn amlwg? Felly mae'n pump. Ond dw i'n gwneud ac 1 ar hynny, pam? Pam ydw i eisiau chwe bytes yn lle pump? Mae cymeriad null. 

Dydw i ddim eisiau gadael oddi ar yr cymeriad null arbennig. Oherwydd os wyf yn gwneud copi o Helo a dim ond gwneud H-E-L-L-O, ond nid wyf yn rhoi bod cymeriad arbennig, y cyfrifiadur Efallai na fydd yn cael, trwy hap a damwain, mae slaes sero yno i mi. Ac felly os Im 'yn ceisio at chyfrif i maes y hyd y copi, efallai y byddwn yn meddwl bod ei fod yn 20 llythyren o hyd, neu filiwn cymeriadau hir os Fi jyst byth yn digwydd i daro sero slaes. 

Felly mae angen chwe bytes i storio H-E-L-L-O, slaes sero. Ac yna mae hyn yn unig i fod yn rhefrol super. Gadewch i ni dybio fy mod yn anghofio'r hyn maint y torgoch yn. Rydym yn dal i ddweud ei fod yn un beit. Ac mae'n fel arfer. Yn ddamcaniaethol, gallai fod yn rhywbeth wahanol, ar Mac wahanol neu gwahanol PC. 

Felly, mae'n troi allan yna weithredwr hwn Gelwir sizeof, os ydych yn ei throsglwyddo i'r enw math ddata - fel torgoch, neu int, neu fflôt - bydd yn dweud wrthych, ddeinamig, faint o bytes golosg yn mynd i fyny ar y cyfrifiadur penodol. 

Felly mae hyn yn effeithiol dim ond fel amserau 1 neu ddweud amseroedd dim byd o gwbl. Ond dw i'n gwneud hynny dim ond i fod rhefrol super, mai dim ond mewn achos golosg yn wahanol ar eich cyfrifiadur yn erbyn fy un i, y ffordd hon y math bob amser yn mynd i atalfa i maes. 

Yn olaf, i lawr fan hyn i wirio ar gyfer null, sydd bob amser yn arfer da - unwaith eto, unrhyw bryd rydym yn delio â awgrymiadau. Os nad malloc yn gallu rhoi mi chwe byes - sy'n annhebygol, ond dim ond yn achos - dychwelyd un ar unwaith. Ac yn awr, mynd yn ei flaen a chopïo y llinyn fel a ganlyn. Ac mae hyn yn cystrawen gyfarwydd, er bod hynny mewn rôl wahanol. 

Rydw i'n mynd i fynd yn ei flaen a chael y llinyn hyd s a'i storio yn n. Yna yr wyf i'n mynd i ailadrodd oddi hafal i sero hyd at ac yn cynnwys n, yn fwy na neu'n hafal i. Fel bod ar bob fersiwn, yr wyf yn rhoi y cymeriad ith o s yn y ith cymeriad t. 

Felly, beth sy'n digwydd mewn gwirionedd o dan y cwfl yma? Wel os yw hyn, er enghraifft, yn s - ac yr wyf wedi teipio yn y gair H-E-L-L-O ac mae 'na sero slaes. Ac eto, mae hyn yn s pwyntio yma. A dyma yn awr yw t. 

Ac mae hyn yn pwyntio awr i copi o gof, dde? Malloc wedi rhoi i mi yn ei gyfanrwydd darn o gof. Nid wyf yn gwybod beth sydd i ddechrau yn unrhyw un o'r lleoliadau hyn. Felly, yr wyf i'n mynd i feddwl am y rhain fel criw cyfan o farciau cwestiwn. 

Ond cyn gynted ag yr wyf yn dechrau dolennu o sero ar i fyny drwy'r hyd s, t braced sero ac t braced 1 - a byddaf yn rhoi'r hyn yn awr ar y uwchben - t braced sero ac s braced sero yn golygu fy mod i'n mynd i gael ei gopïo iteraidd h yma, E-L-L-O. Byd Gwaith, gan fy mod yn gwneud y plws 1, slaes sero. 

Felly, yn awr yn achos gymharu-1.c, yn y pen draw, os wyf yn argraffu'r cyfalafu t, dylem gweld ei fod ef wedi newid. Gadewch i mi fynd yn ei flaen yn awr ac yn gwneud hyn. Felly gwnewch yn copy1. Dot slaes copy1. Rydw i'n mynd i deipio helo, Enter. Ac yn awr sylwi, dim ond y copi wedi cael eu cyfalafu. Gan fy mod yn wirioneddol ddau darnau o gof. 

Yn anffodus, gallwch wneud rhywfaint o 'n bert pethau drwg a 'n bert beryglus yma. Gadewch i mi dynnu i fyny enghraifft yma nawr, sy'n rhoi enghraifft o rai ni linellau gwahanol. Felly, dim ond yn reddfol yma, y ​​llinell gyntaf o god, int seren x, yn datgan newidyn o'r enw x. A beth yw'r math o ddata o'r newidyn? Beth sydd y math data o newidyn hwnnw? Nid dyna oedd y Cliffhanger. 

Y math data yn seren int. Felly, beth mae hynny'n ei olygu? x Bydd storio cyfeiriad o int. Syml â hynny. Y yn mynd i storio'r gyfeiriad o int. Beth yw'r drydedd linell o god wneud yno? Mae'n dyrannu faint o bytes, yn fwyaf tebygol? Pedwar. Oherwydd maint o int yn pedwar yn gyffredinol, malloc o bedwar yn rhoi mi gefnogi'r cyfeiriad y darn o cof, y cyntaf o'i bytes yn storio bellach yn x. 

Nawr rydym yn symud ychydig yn gyflym. Star x yn golygu beth? Mae'n golygu mynd i'r cyfeiriad hwnnw ac yn rhoi pa rif yno? Rhowch y rhif 42 yno. Seren y golygu mynd i beth sydd yn y y a rhowch y rhif 13 yno. 

Ond arhoswch funud. Beth sydd yn y ar hyn o bryd? Pa gyfeiriad yn y storio? Nid ydym yn gwybod, dde? Nid ydym erioed wedi unwaith yn defnyddio'r aseiniad gweithredwr sy'n cynnwys y. Felly, y fel sydd wedi'i ddatgan ar yr ail linell Cod yn unig yw rhywfaint o werth garbage, yn fawr marc cwestiwn fel petai. Gallai fod yn pwyntio ar hap i unrhyw beth yn y cof, a yn gyffredinol wael. 

Felly, cyn gynted ag y byddwn yn cyrraedd y llinell yno, seren y yn hafal i 13, rhywbeth drwg, rhywbeth drwg iawn yn ymwneud â i ddigwydd i Binky. Felly, gadewch i ni weld beth sy'n mynd i roi diwedd ar i fyny digwydd i Binky yma yn y cofnod hwn neu felly edrychwch. 

[VIDEO Playback] 

-Hey, Binky. Wake i fyny. Mae'n amser am hwyl pwyntydd. 

-Beth sy'n bod? Dysgu am awgrymiadau? O, nwyddau. 

-Wel, i ddechrau, mae'n debyg ein bod mynd i angen ychydig o gyngor. 

-OK. Mae'r cod hwn yn clustnodi dau awgrymiadau sy'n gallu pwyntio at gyfanrifau. 

-OK, wel, yr wyf yn gweld y ddau awgrymiadau. Ond nid yw'n ymddangos iddynt fod yn pwyntio at unrhyw beth. 

-Mae hynny'n iawn. I ddechrau, nid yw arwyddion yn cyfeirio at unrhyw beth. Y pethau maent yn cyfeirio at eu galw pointees, a gosod i fyny yn cam ar wahân. 

-O, iawn, iawn. Yr wyf yn gwybod hynny. Mae'r pointees ar wahân. Felly, sut ydych chi'n dyrannu pointee? 

-OK. Wel, y cod yn dyrannu gyfanrifau newydd pointee, ac mae'r rhan hon yn gosod x i dynnu sylw iddo. 

-Hey, sy'n edrych yn well. Felly gwnewch yn ei wneud rhywbeth. 

-OK. 'N annhymerus' dereference y pwyntydd x i storio y rhif 42 yn ei pointee. Am y tric hwn, bydd angen fy hud I ffon o dereferencing. 

-Mae eich ffon hud dereferencing? Uh, mae hynny'n wych. 

-Mae hyn yn beth y cod yn edrych fel. 'N annhymerus' jyst sefydlu nifer, ac - 

-Hey, yn edrych. Yno mae'n mynd. Felly gwneud dereference ar x dilyn y saeth i ddefnyddio ei pointee. Yn yr achos hwn, i storio 42 i mewn 'na. Hey, ceisiwch ddefnyddio i storio nifer y 13 drwy'r pwyntydd arall, y. 

-OK. 'N annhymerus' jyst yn mynd dros yma i y a gael y rhif 13 ei sefydlu. Ac yna cymryd y ffon o dereferencing a dim ond - Whoa! 

-O, hey. Nad oedd yn gweithio. Dweud, Binky, nid wyf yn credu bod y dereferencing y yn syniad da, oherwydd sefydlu'r pointee yn gam ar wahân. Ac nid wyf yn credu ein bod byth yn gwneud hynny. 

-Hmm. Pwynt da. 

-Yeah, dyrannwyd y y pwyntydd. Ond ni fyddwn byth osod i cyfeirio at pointee. 

-Hmm. Sylwgar iawn. 

-Hey, rydych yn chwilio da yno, Binky. Allwch chi drwsio fel bod y pwyntiau i'r un pointee ag x? 

-Cadarn. Byddaf yn defnyddio fy ffon hud aseiniad pwyntydd. 

-A yw hynny'n mynd i fod yn problem fel o'r blaen? 

-Dim. Nid yw hyn yn cyffwrdd y pointees. 'I jyst yn newid un pwyntydd i bwynt at yr un peth ag un arall. 

-O, rwy'n gweld. Nawr y pwyntiau i'r un lle ag x. Felly aros. Yn awr y yn sefydlog. Mae ganddo pointee. Felly, gallwch roi cynnig ar y ffon o dereferencing eto i anfon y 13 drosodd. 

-OK. Yma yn mynd. 

-Hey, edrych ar hynny. Nawr dereferencing gwaith ar y. Ac oherwydd bod y awgrymiadau yn cael eu rhannu bod un pointee, maent yn yn gweld y 13. 

-Yeah. Rhannu. Beth bynnag. Felly, rydym yn mynd lleoedd newid nawr? 

-O, edrych. Rydym yn allan o amser. 

-Ond - 

-Ond cofiwch y tri rheolau pwyntydd. Rhif un, y strwythur sylfaenol yw bod gennych pwyntydd. Ac mae'n tynnu drosodd i pointee. Ond mae'r pwyntydd a pointee ar wahân. Ac mae'r gwall cyffredin yw sefydlu pwyntydd, ond i anghofio rhoi pointee. 

Rhif dau, pwyntydd dereferencing yn dechrau ar y pwyntydd ac yn dilyn ei saeth i ddefnyddio ei pointee. Fel yr ydym i gyd yn gwybod, mae hyn ond yn gweithio os oes yn pointee, sy'n mynd yn ôl i rheol rhif un. 

Rhif tri, aseiniad pwyntydd yn cymryd un pwyntydd a newidiadau i dynnu sylw at yr un pointee fel pwyntydd arall. Felly, ar ôl yr aseiniad, y ddau awgrymiadau yn cyfeirio at yr un pointee. Weithiau, mae hynny'n galw rannu. A dyna i gyd yna iddo, mewn gwirionedd. Bye bye awr. 

[VIDEO END Playback] 

DAVID Malan: Felly mwy ar awgrymiadau, mwy ar Binky yr wythnos nesaf. Byddwn yn eich gweld ar ddydd Llun.