1 00:00:00,000 --> 00:00:02,520 [Powered by Google Translate] [Roinn 4 - Níos Compordach] 2 00:00:02,520 --> 00:00:04,850 [Rob Bowden - Ollscoil Harvard] 3 00:00:04,850 --> 00:00:07,370 Is é [seo CS50. - CS50.TV] 4 00:00:08,920 --> 00:00:13,350 Tá amárach tráth na gceist, i gcás nach raibh tú guys fhios sin. 5 00:00:14,810 --> 00:00:20,970 Tá sé go bunúsach ar gach rud d'fhéadfaí tú ag feiceáil sa rang nó ar chóir feicthe sa rang. 6 00:00:20,970 --> 00:00:26,360 Go leideanna san áireamh, cé go bhfuil siad ar ábhar an-le déanaí. 7 00:00:26,360 --> 00:00:29,860 Ba chóir duit ar a laghad tuiscint a fháil ar leibhéil arda acu. 8 00:00:29,860 --> 00:00:34,760 Rud ar bith a bhí imithe go os a chionn sa rang ba chóir duit a thuiscint ar an tráth na gceist. 9 00:00:34,760 --> 00:00:37,320 Mar sin, má tá ceisteanna agat orthu, is féidir leat iad a iarraidh anois. 10 00:00:37,320 --> 00:00:43,280 Ach tá sé seo dul chun bheith ina seisiún an-mac léinn-threoraithe áit a bhfuil tú guys ceisteanna a chur, 11 00:00:43,280 --> 00:00:45,060 sin tá súil againn do dhaoine ceisteanna a bheith acu. 12 00:00:45,060 --> 00:00:48,020 An bhfuil aon duine ceisteanna agat? 13 00:00:49,770 --> 00:00:52,090 Tá. >> [Mac léinn] An féidir leat dul thar leideanna arís? 14 00:00:52,090 --> 00:00:54,350 Feicfidh mé dul thar leideanna. 15 00:00:54,350 --> 00:00:59,180 Gach ceann de do chuid athróg beo gá i gcuimhne, 16 00:00:59,180 --> 00:01:04,450 ach de ghnáth ní gá duit a bheith buartha faoi sin agus a rá leat ach x + 2 agus y + 3 17 00:01:04,450 --> 00:01:07,080 agus beidh an tiomsaitheoir figiúr amach i gcás ina bhfuil na nithe beo ar do shon. 18 00:01:07,080 --> 00:01:12,990 Nuair a bhíonn tú ag déileáil le leideanna, anois tá tú ag baint úsáide as go sainráite na seoltaí cuimhne. 19 00:01:12,990 --> 00:01:19,800 Mar sin, beidh athróg aonair ach amháin beo riamh ag seoladh amháin ag aon am ar leith. 20 00:01:19,800 --> 00:01:24,040 Más mian linn a dhearbhú pointeoir, tá cad é an cineál ag dul chun breathnú cosúil le? 21 00:01:24,040 --> 00:01:26,210 >> Ba mhaith liom a dhearbhú p pointeoir. Cad a dhéanann an cineál cuma mhaith? 22 00:01:26,210 --> 00:01:33,530 [Mac léinn] slánuimhir * p. >> Yeah. Mar sin, o * p. 23 00:01:33,530 --> 00:01:38,030 Agus conas is féidir liom a dhéanamh pointe a x? >> [Mac léinn] COMHARTHA AGUIS. 24 00:01:40,540 --> 00:01:45,300 [Bowden] Dá bhrí sin tá COMHARTHA AGUIS a dtugtar literally an seoladh an oibreora. 25 00:01:45,300 --> 00:01:50,460 Mar sin, nuair a rá liom & x tá sé ag fáil an seoladh chuimhne ar an x ​​athraitheach. 26 00:01:50,460 --> 00:01:56,790 Mar sin, anois tá mé an p pointeoir, agus áit ar bith i mo cód féidir liom a úsáid * p 27 00:01:56,790 --> 00:02:02,960 nó d'fhéadfadh liom a úsáid x agus beidh sé an rud ceannann céanna. 28 00:02:02,960 --> 00:02:09,520 (* P). Cad é seo a dhéanamh? Cad a dhéanann a réalta chiallaíonn? 29 00:02:09,520 --> 00:02:13,120 [Mac léinn] Ciallaíonn sé luach ag an bpointe sin. >> Yeah. 30 00:02:13,120 --> 00:02:17,590 Mar sin, má táimid ar sé, is féidir é a bheith an-úsáideach a tharraingt amach na léaráidí 31 00:02:17,590 --> 00:02:22,230 nuair is bosca beag de chuimhne le haghaidh x, a tharlaíonn go bhfuil an luach 4, 32 00:02:22,230 --> 00:02:25,980 ansin ní mór dúinn bosca beag de chuimhne do p, 33 00:02:25,980 --> 00:02:31,590 agus mar sin de na pointí p x, mar sin againn a tharraingt saighead ó p go dtí x. 34 00:02:31,590 --> 00:02:40,270 Mar sin, nuair a deirimid * p táimid ag rá dul go dtí an bosca go bhfuil p. 35 00:02:40,270 --> 00:02:46,480 Star Is é a leanúint ar an arrow agus ansin a dhéanamh is cuma cad ba mhaith leat leis an bosca ceart ann. 36 00:02:46,480 --> 00:03:01,090 Sin, is féidir liom a rá * p = 7, agus go mbeidh dul go dtí an bosca go bhfuil x agus athrú go dtí 7. 37 00:03:01,090 --> 00:03:13,540 Nó d'fhéadfadh liom a rá slánuimhir z = * p * 2; Sin mearbhall mar tá sé réalta réalta,. 38 00:03:13,540 --> 00:03:19,230 Tá an réalta amháin dereferencing p, tá an réalta eile a iolrú faoi 2. 39 00:03:19,230 --> 00:03:26,780 Fógra raibh mé in ann a bheith díreach chomh maith in áit an p * le x. 40 00:03:26,780 --> 00:03:29,430 Is féidir leat iad a úsáid ar an mbealach céanna. 41 00:03:29,430 --> 00:03:38,000 Agus ansin is féidir ina dhiaidh sin ar dom phointe p a rud nua go hiomlán. 42 00:03:38,000 --> 00:03:42,190 Féidir liom a rá ach p = &z; 43 00:03:42,190 --> 00:03:44,940 Mar sin, p anois aon phointí níos faide x = pointí sé le z. 44 00:03:44,940 --> 00:03:50,510 Agus aon uair is féidir liom * p tá sé mar an gcéanna a dhéanamh z. 45 00:03:50,510 --> 00:03:56,170 Mar sin, is é an rud úsáideach faoi seo nuair a thosaíonn muid ag dul i bhfeidhmeanna. 46 00:03:56,170 --> 00:03:59,790 >> Tá sé de chineál ar useless a dhearbhú pointeoir a dhíríonn ar rud éigin 47 00:03:59,790 --> 00:04:03,140 agus ansin tá tú ag dereferencing díreach tar éis é 48 00:04:03,140 --> 00:04:06,060 nuair a d'fhéadfá a úsáid ar an athróg bunaidh chun tús a chur leis. 49 00:04:06,060 --> 00:04:18,190 Ach nuair a thagann tú i bhfeidhmeanna - mar sin a ligean le rá ní mór dúinn roinnt feidhm, slánuimhir foo, 50 00:04:18,190 --> 00:04:32,810 a thógann pointeoir agus díreach a dhéanann * p = 6; 51 00:04:32,810 --> 00:04:39,990 Cosúil chonaic muid roimh le babhtála, ní féidir leat a dhéanamh ar babhtála éifeachtach agus feidhm ar leith 52 00:04:39,990 --> 00:04:45,180 ag díreach slánuimhreacha a rith toisc go bhfuil gach rud i C rith i gcónaí de réir luacha. 53 00:04:45,180 --> 00:04:48,360 Fiú nuair a bhíonn tú leideanna a rith bhfuil tú ag rith ag luach. 54 00:04:48,360 --> 00:04:51,940 Tharlaíonn sé ach ionas go mbeidh na luachanna seoltaí cuimhne. 55 00:04:51,940 --> 00:05:00,770 Mar sin, nuair a rá liom foo (p); Tá mé ag dul thar an pointeoir ar an fheidhm foo 56 00:05:00,770 --> 00:05:03,910 agus ansin tá foo ag déanamh * p = 6; 57 00:05:03,910 --> 00:05:08,600 Mar sin, taobh istigh na feidhme sin, is é * p fós cothrom le x, 58 00:05:08,600 --> 00:05:12,720 ach ní féidir liom a úsáid x taobh istigh na feidhme sin toisc nach bhfuil sé scoped laistigh den fheidhm. 59 00:05:12,720 --> 00:05:19,510 Mar sin, tá * p = 6 an t-aon bhealach is féidir liom rochtain a fháil ar athróg áitiúil ó eile a chomhlíonadh. 60 00:05:19,510 --> 00:05:23,600 Nó, go maith, go bhfuil leideanna ar an bhealach is féidir liom rochtain a fháil ar athróg áitiúil ó eile a chomhlíonadh. 61 00:05:23,600 --> 00:05:31,600 [Mac léinn] rá Let s a raibh tú a thabhairt ar ais pointeoir. Conas go díreach a dhéanann tú sin a dhéanamh? 62 00:05:31,600 --> 00:05:44,270 [Bowden] Fill ar ais ar pointeoir mar atá i rud éigin cosúil le slánuimhir y = 3; ais & y? >> [Mac léinn] Yeah. 63 00:05:44,270 --> 00:05:48,480 [Bowden] Maith go leor. Ní ba chóir duit é seo a dhéanamh. Tá sé seo dona. 64 00:05:48,480 --> 00:05:59,480 I mo thuairimse, chonaic mé sna sleamhnáin léacht a thosaigh tú ag féachaint ar an léaráid seo go hiomlán de chuimhne 65 00:05:59,480 --> 00:06:02,880 i gcás suas anseo tá tú seoladh cuimhne 0 66 00:06:02,880 --> 00:06:09,550 agus síos anseo tá tú cuimhne seoladh 4 gigs nó 2 a ghabhann leis an 32. 67 00:06:09,550 --> 00:06:15,120 Mar sin, ansin tá tú bhí roinnt rudaí agus roinnt rudaí agus ansin tú do Stack 68 00:06:15,120 --> 00:06:21,780 agus tá tú do carn, a thosaigh tú díreach ag foghlaim faoi, ag fás aníos. 69 00:06:21,780 --> 00:06:24,390 [Mac léinn] Nach bhfuil an gcarn os cionn an chairn? 70 00:06:24,390 --> 00:06:27,760 >> Yeah. Is é an gcarn ar bharr nach bhfuil sé? >> [Mac léinn] Bhuel, chuir sé 0 ar an mbarr. 71 00:06:27,760 --> 00:06:30,320 [Mac léinn] Oh, chuir sé 0 ar an mbarr. >> [Mac léinn] Oh, maith go leor. 72 00:06:30,320 --> 00:06:36,060 Séanadh: Áit ar bith a bhfuil CS50 bhfuil tú ag dul chun é a fheiceáil ar an mbealach seo. >> [Mac léinn] Maith go leor. 73 00:06:36,060 --> 00:06:40,290 Tá sé sin go díreach nuair a bhíonn tú ag féachaint ar an chéad stacks, 74 00:06:40,290 --> 00:06:45,000 Is maith nuair a cheapann tú de chairn a cheapann tú de rudaí cruachta ar bharr a chéile. 75 00:06:45,000 --> 00:06:50,810 Mar sin, claonadh a bhíonn againn le smeach seo timpeall ionas go bhfuil an chairn ag fás suas mar a bheadh ​​de ghnáth Stack 76 00:06:50,810 --> 00:06:55,940 in ionad an chairn crochta síos. >> [Mac léinn] Ná heaps ag fás go teicniúil suas freisin, cé? 77 00:06:55,940 --> 00:07:01,100 Braitheann sé ar cad is ciall agat ag fás suas. 78 00:07:01,100 --> 00:07:04,010 Tá an chairn agus carn ag fás i gcónaí i dtreoracha os coinne. 79 00:07:04,010 --> 00:07:09,420 Tá chairn ag fás suas i gcónaí sa chiall go tá sé ag fás suas 80 00:07:09,420 --> 00:07:12,940 i dtreo go bhfuil seoltaí cuimhne níos airde, agus an gcarn ag fás síos 81 00:07:12,940 --> 00:07:17,260 sa mhéid is go tá sé ag fás i dtreo seoltaí cuimhne níos ísle. 82 00:07:17,260 --> 00:07:20,250 Mar sin, tá an barr 0 agus is é an bun seoltaí cuimhne ard. 83 00:07:20,250 --> 00:07:26,390 Tá siad araon ag fás, ach i dtreonna gcoinne. 84 00:07:26,390 --> 00:07:29,230 [Mac léinn] i gceist agam go díreach mar a dúirt tú tú a chur ar Stack ar bun 85 00:07:29,230 --> 00:07:33,640 mar is cosúil sé níos iomasach toisc chun an chairn chun tús a chur ag barr an gcarn, 86 00:07:33,640 --> 00:07:37,520 gcarn Tá ar bharr féin freisin, mar sin that's - >> Yeah. 87 00:07:37,520 --> 00:07:44,960 Cheapann tú freisin an gcarn mar atá ag fás suas agus níos mó, ach tá an chairn níos mó ná sin. 88 00:07:44,960 --> 00:07:50,280 Mar sin, tá an chairn an ceann go bhfuil muid de chineál ar iarraidh a thaispeáint ag fás aníos. 89 00:07:50,280 --> 00:07:55,390 Ach tá i ngach áit a fhéachann tú ar shlí eile ag dul a thaispeáint seoladh 0 ag barr 90 00:07:55,390 --> 00:07:59,590 agus an seoladh chuimhne is airde ag an mbun, mar sin tá sé seo do thuairim is gnách ar an chuimhne. 91 00:07:59,590 --> 00:08:02,100 >> An bhfuil ceist? 92 00:08:02,100 --> 00:08:04,270 [Mac léinn] An féidir leat insint dúinn níos mó faoi an gcarn? 93 00:08:04,270 --> 00:08:06,180 Yeah. Beidh mé a fháil chun go sa dara. 94 00:08:06,180 --> 00:08:12,220 Is é an chéad, dul ar ais ar cén fáth ar ais agus y droch-rud, 95 00:08:12,220 --> 00:08:18,470 ar an chruach a bhfuil tú a bunch de fhrámaí chairn a léiríonn gach ceann de na feidhmeanna 96 00:08:18,470 --> 00:08:20,460 atá ar a dtugtar. 97 00:08:20,460 --> 00:08:27,990 Mar sin, neamhaird a dhéanamh rudaí roimhe seo, tá an barr do chairn ag dul i gcónaí a bheith ar an phríomhfheidhm 98 00:08:27,990 --> 00:08:33,090 ós rud é go bhfuil an fheidhm sin den chéad uair tá bheith ar a dtugtar. 99 00:08:33,090 --> 00:08:37,130 Agus ansin nuair a ghlaonn tú eile fheidhm, is é an chairn ag dul chun fás síos. 100 00:08:37,130 --> 00:08:41,640 Mar sin, má ghlaonn mé roinnt fheidhm, foo, agus faigheann sé a fráma Stack féin, 101 00:08:41,640 --> 00:08:47,280 is féidir é a glaoch ar roinnt fheidhm, barra; faigheann sé a fráma cruaiche féin. 102 00:08:47,280 --> 00:08:49,840 Agus d'fhéadfadh barra a bheith recursive agus d'fhéadfadh glaoch féin é, 103 00:08:49,840 --> 00:08:54,150 agus mar sin go bhfuil an dara glao chun barra ag dul a fháil a fráma cruaiche féin. 104 00:08:54,150 --> 00:08:58,880 Agus tá sin cad a théann i na frámaí Stack gach ceann de na hathróga áitiúil 105 00:08:58,880 --> 00:09:03,450 agus gach ceann de na hargóintí fheidhm sin - 106 00:09:03,450 --> 00:09:08,730 Aon rudaí a bhfuil go háitiúil scoped chun an fheidhm seo dul i na frámaí chairn. 107 00:09:08,730 --> 00:09:21,520 Mar sin, Ciallaíonn sé sin nuair a dúirt mé go bhfuil rud éigin cosúil le barra a chomhlíonadh, 108 00:09:21,520 --> 00:09:29,270 Tá mé ag dul díreach tar éis a dhearbhú slánuimhir agus ansin pointeoir ar ais go dtí an slánuimhir. 109 00:09:29,270 --> 00:09:33,790 Mar sin, ní i gcás y chónaí? 110 00:09:33,790 --> 00:09:36,900 [Mac léinn] y ina chónaí i bar. >> [Bowden] Yeah. 111 00:09:36,900 --> 00:09:45,010 Áit éigin i an cearnach beag de chuimhne cearnóg littler go bhfuil y ann. 112 00:09:45,010 --> 00:09:53,370 Nuair a bheidh mé ar ais agus y, tá mé ag filleadh ar pointeoir leis an bloc beag de chuimhne. 113 00:09:53,370 --> 00:09:58,400 Ach ansin nuair a tuairisceáin feidhm faigheann, a fráma cruaiche popped as an chairn. 114 00:10:01,050 --> 00:10:03,530 Agus sin an fáth a bhfuil sé ar a dtugtar chairn. 115 00:10:03,530 --> 00:10:06,570 Tá sé cosúil leis an struchtúr sonraí Stack, má tá a fhios agat cad é sin. 116 00:10:06,570 --> 00:10:11,580 Nó fiú cosúil le Stack na tráidirí i gcónaí ar an sampla, 117 00:10:11,580 --> 00:10:16,060 príomh-dul chun dul ar an ngrinneall, tá ansin an chéad fheidhm a ghlaonn tú ag dul chun dul ar a bharr sin, 118 00:10:16,060 --> 00:10:20,400 agus ní féidir leat a fháil ar ais go dtí príomh dtí go mbeidh tú ar ais ó na feidhmeanna go léir a bheith ar a dtugtar 119 00:10:20,400 --> 00:10:22,340 atá curtha ar a bharr. 120 00:10:22,340 --> 00:10:28,650 >> [Mac léinn] Mar sin má rinne tú ar ais an y &, is é sin luach faoi réir a athrú gan fógra. 121 00:10:28,650 --> 00:10:31,290 Sea, it's - >> [mac léinn] fhéadfadh sé a bheith overwritten. >> Yeah. 122 00:10:31,290 --> 00:10:34,660 Tá sé go hiomlán - Má tá tú iarracht agus - 123 00:10:34,660 --> 00:10:38,040 Bheadh ​​sé seo a bheith chomh maith bar * slánuimhir mar tá a sheoladh ar ais le pointeoir, 124 00:10:38,040 --> 00:10:41,310 mar sin tá a chineál ar ais * slánuimhir. 125 00:10:41,310 --> 00:10:46,500 Má tá tú iarracht úsáid a bhaint as an luach ar ais an fheidhm seo, tá sé iompar undefined 126 00:10:46,500 --> 00:10:51,770 toisc go pointí sin pointeoir chun cuimhne dona. >> [Mac léinn] Maith go leor. 127 00:10:51,770 --> 00:11:01,250 Mar sin, cad más rud é, mar shampla, a dhearbhú tú slánuimhir * y = malloc (deachúlach (o))? 128 00:11:01,250 --> 00:11:03,740 Sin níos fearr. Tá. 129 00:11:03,740 --> 00:11:07,730 [Mac léinn] Labhraíomar faoi conas nuair a rudaí a tharraingt chun ár n-athchúrsáil bruscair 130 00:11:07,730 --> 00:11:11,750 nach bhfuil siad ag scriosadh i ndáiríre, táimid chailleann ach a gcuid leideanna. 131 00:11:11,750 --> 00:11:15,550 Mar sin, sa chás seo is féidir linn a scriosadh i ndáiríre an luach nó go bhfuil sé fós ann i gcuimhne? 132 00:11:15,550 --> 00:11:19,130 Don chuid is mó, tá sé ag dul a bheith fós ann. 133 00:11:19,130 --> 00:11:24,220 Ach rá a ligean ar táimid ag tarlú chun glaoch ar roinnt feidhm eile, Baz. 134 00:11:24,220 --> 00:11:28,990 Baz ag dul a fháil ar a fráma cruaiche féin ar anseo. 135 00:11:28,990 --> 00:11:31,470 Tá sé seo ag dul a bheith fhorscríobh go léir an stuif seo, 136 00:11:31,470 --> 00:11:34,180 agus ansin má tá tú iarracht ina dhiaidh sin agus bain úsáid as an pointeoir a fuair tú os comhair, 137 00:11:34,180 --> 00:11:35,570 nach bhfuil sé ag dul a bheith ar an luach céanna. 138 00:11:35,570 --> 00:11:38,150 Tá sé seo ag dul a bhfuil athrú díreach toisc go iarr tú ar an Baz fheidhm. 139 00:11:38,150 --> 00:11:43,080 [Mac léinn] Ach ní raibh againn go mbeadh, ní mór dúinn a fháil fós 3? 140 00:11:43,080 --> 00:11:44,990 [Bowden] I ngach dóchúlacht, a bheadh ​​agat. 141 00:11:44,990 --> 00:11:49,670 Ach ní féidir leat a bheith ag brath ar sin. C deir díreach iompar gan sainmhíniú. 142 00:11:49,670 --> 00:11:51,920 >> [Mac léinn] Oh, a dhéanann sé. Maith go leor. 143 00:11:51,920 --> 00:11:58,190 Mar sin, nuair is mian leat a thabhairt ar ais pointeoir, is é seo nuair a thagann malloc in úsáid. 144 00:12:00,930 --> 00:12:15,960 Tá mé ag scríobh i ndáiríre ar ais go díreach malloc (3 * Is uimhir (o)). 145 00:12:17,360 --> 00:12:24,050 Beidh muid ag dul thar malloc níos mó i an dara, ach tá an smaoineamh malloc gach ceann de do athróg áitiúil 146 00:12:24,050 --> 00:12:26,760 i gcónaí dul ar an chruach. 147 00:12:26,760 --> 00:12:31,570 Théann aon rud a tá malloced ar an gcarn, agus beidh sé go deo agus i gcónaí a bheith ar an gcarn 148 00:12:31,570 --> 00:12:34,490 dtí go mbeidh tú saor in aisce go sainráite é. 149 00:12:34,490 --> 00:12:42,130 Mar sin, ciallaíonn sé seo go nuair malloc tú rud éigin, tá sé ag dul chun maireachtáil tar éis an tuairisceáin fheidhm. 150 00:12:42,130 --> 00:12:46,800 [Mac léinn] An mbeidh sé tar éis maireachtáil stopann an clár ag rith? >> Uimh 151 00:12:46,800 --> 00:12:53,180 Maith go leor, mar sin tá sé ag dul a bheith ann go dtí go bhfuil an clár léir ar an mbealach a rinneadh ag rith. >> Tá. 152 00:12:53,180 --> 00:12:57,510 Is féidir linn dul thar sonraí faoi cad a tharlaíonn nuair a stopann an clár ag rith. 153 00:12:57,510 --> 00:13:02,150 D'fhéadfadh gá duit a chur i gcuimhne dom, ach go bhfuil an rud ar leith go hiomlán. 154 00:13:02,150 --> 00:13:04,190 [Mac léinn] Mar sin Cruthaíonn malloc a pointeoir? >> Yeah. 155 00:13:04,190 --> 00:13:13,030 Malloc - >> [mac léinn] I mo thuairimse, malloc ainmníonn bloc cuimhne gur féidir le pointeoir a úsáid. 156 00:13:15,400 --> 00:13:19,610 [Bowden] Ba mhaith liom go léaráid arís. >> [Mac léinn] Mar sin, oibríonn an fheidhm seo, cé go? 157 00:13:19,610 --> 00:13:26,430 [Mac léinn] Yeah, malloc ainmníonn bloc cuimhne gur féidir leat é a úsáid, 158 00:13:26,430 --> 00:13:30,470 agus ansin filleann sé ar an seoladh an bloc chéad chuimhne sin. 159 00:13:30,470 --> 00:13:36,750 >> [Bowden] Yeah. Mar sin, nuair malloc tú, agus tú ag grabbing roinnt bloc cuimhne 160 00:13:36,750 --> 00:13:38,260 go bhfuil faoi láthair i gcarn. 161 00:13:38,260 --> 00:13:43,040 Má tá an gcarn ró-bheag, tá ansin an gcarn ag dul díreach ag fás, agus fásann sé sa treo seo. 162 00:13:43,040 --> 00:13:44,650 Mar sin a ligean ar rá go bhfuil an gcarn ró-bheag. 163 00:13:44,650 --> 00:13:49,960 Ansin, tá sé faoi ag fás le beagán agus a pointeoir filleadh ar an bloc gur fhás díreach. 164 00:13:49,960 --> 00:13:55,130 Nuair a bheidh tú rudaí saor in aisce, agus tú ag déanamh seomra níos mó ar an gcarn, 165 00:13:55,130 --> 00:14:00,030 Is féidir mar sin ansin glaoch níos déanaí malloc athúsáid go bhfuil cuimhne go raibh freed agat roimhe. 166 00:14:00,030 --> 00:14:09,950 Is é an rud is tábhachtaí faoi malloc agus saor in aisce go dtugann sé tú smacht iomlán 167 00:14:09,950 --> 00:14:12,700 thar shaolré na bloic cuimhne. 168 00:14:12,700 --> 00:14:15,420 Tá athróga domhanda i gcónaí beo. 169 00:14:15,420 --> 00:14:18,500 Tá athróg Áitiúil beo laistigh dá raon feidhme. 170 00:14:18,500 --> 00:14:22,140 Chomh luath agus a théann tú anuas guailleán curly, is iad na hathróga áitiúla marbh. 171 00:14:22,140 --> 00:14:28,890 Tá cuimhne Malloced beo nuair is mian leat é a bheith beo 172 00:14:28,890 --> 00:14:33,480 agus ansin a scaoileadh nuair a dhéanann tú insint é a scaoileadh. 173 00:14:33,480 --> 00:14:38,420 Glacfar iad i ndáiríre an 3 ach cineálacha de chuimhne, i ndáiríre. 174 00:14:38,420 --> 00:14:41,840 Níl bainistíocht cuimhne uathoibríoch, a bhfuil an chairn. 175 00:14:41,840 --> 00:14:43,840 Rudaí a tharlóidh ar do shon go huathoibríoch. 176 00:14:43,840 --> 00:14:46,910 Nuair a rá leat x slánuimhir, tá cuimhne leithdháileadh le haghaidh x slánuimhir. 177 00:14:46,910 --> 00:14:51,630 Nuair a théann x amach raon feidhme, tá cuimhne athghinte le haghaidh x. 178 00:14:51,630 --> 00:14:54,790 Ansin, níl bainistíochta cuimhne dinimiciúil, a bhfuil cad é malloc, 179 00:14:54,790 --> 00:14:56,740 a bhfuil nuair a tá tú rialú. 180 00:14:56,740 --> 00:15:01,290 Tá tú cinneadh a dhéanamh dinimiciúil nuair ba chóir cuimhne nár agus ba chóir a leithdháileadh. 181 00:15:01,290 --> 00:15:05,050 Agus ansin níl statach, rud a chiallaíonn go díreach saol sé go deo, 182 00:15:05,050 --> 00:15:06,610 a bhfuil cad iad na hathróga domhanda. 183 00:15:06,610 --> 00:15:10,240 Tá siad díreach i gcónaí i gcuimhne. 184 00:15:10,960 --> 00:15:12,760 >> Ceisteanna? 185 00:15:14,490 --> 00:15:17,230 [Mac léinn] An féidir leat a shainiú bloc díreach trí úsáid a bhaint braces gcuach 186 00:15:17,230 --> 00:15:21,220 ach nach bhfuil a bheith acu? más rud é ráiteas nó ráiteas fad nó aon rud mar sin 187 00:15:21,220 --> 00:15:29,130 Is féidir leat a shainiú bloc mar atá i bhfeidhm, ach go bhfuil braces gcuach freisin. 188 00:15:29,130 --> 00:15:32,100 [Mac léinn] Mar sin, ní féidir leat a bheith díreach cosúil le péire randamach de na braces gcuach i do chód 189 00:15:32,100 --> 00:15:35,680 go bhfuil athróg áitiúil? >> Is ea, is féidir leat. 190 00:15:35,680 --> 00:15:45,900 Taobh istigh de barra slánuimhir féidir linn a bheith {slánuimhir y = 3;}. 191 00:15:45,900 --> 00:15:48,440 Sin ceaptha a bheith ar dheis anseo. 192 00:15:48,440 --> 00:15:52,450 Ach sainmhíniú go hiomlán ar an raon feidhme slánuimhir y. 193 00:15:52,450 --> 00:15:57,320 Tar éis sin is guailleán curly an dara, ní féidir y a úsáid níos mó. 194 00:15:57,910 --> 00:16:00,630 Tá tú beagnach riamh é sin a dhéanamh, cé. 195 00:16:02,940 --> 00:16:07,370 Dul ar ais go dtí cad a tharlaíonn nuair a thagann deireadh le clár, 196 00:16:07,370 --> 00:16:18,760 níl de chineál a bheidh míthuiscint / leath a thabhairt dúinn d'fhonn a dhéanamh ach rudaí níos éasca. 197 00:16:18,760 --> 00:16:24,410 Insint duit go nuair a leithdháileadh tú cuimhne 198 00:16:24,410 --> 00:16:29,860 bhfuil tú ag leithdháileadh roinnt smután de RAM don athróg. 199 00:16:29,860 --> 00:16:34,190 Ach nach bhfuil tú i ndáiríre touching díreach RAM riamh i do chlár. 200 00:16:34,190 --> 00:16:37,490 Má cheapann tú ar sé, conas a tharraing mé - 201 00:16:37,490 --> 00:16:44,330 Agus i ndáiríre, má théann tú trí i GDB mbainfidh tú a fheiceáil ar an rud céanna. 202 00:16:51,120 --> 00:16:57,590 Beag beann ar cé mhéad uair a ritheann tú do chlár nó cén clár a bhíonn tú ag rith, 203 00:16:57,590 --> 00:16:59,950 Tá an chairn ag dul i gcónaí chun tús a chur - 204 00:16:59,950 --> 00:17:06,510 bhfuil tú ag dul i gcónaí a fheiceáil athróg thart ar rud éigin oxbffff seoladh. 205 00:17:06,510 --> 00:17:09,470 Tá sé de ghnáth áit éigin sa réigiún sin. 206 00:17:09,470 --> 00:17:18,760 Ach conas is féidir a bheith 2 chlár, b'fhéidir, leideanna i gcuimhne céanna? 207 00:17:20,640 --> 00:17:27,650 [Mac léinn] Níl roinnt ainmniú treallach ina bhfuil oxbfff ceaptha a bheith ar an RAM 208 00:17:27,650 --> 00:17:31,320 is féidir a bheith i ndáiríre in áiteanna éagsúla ag brath ar nuair a bhí ar a dtugtar an fheidhm. 209 00:17:31,320 --> 00:17:35,920 Yeah. Is é an téarma cuimhne fhíorúil. 210 00:17:35,920 --> 00:17:42,250 Is é an smaoineamh go bhfuil gach próiseas amháin, gach clár amháin go bhfuil ag rith ar do ríomhaire 211 00:17:42,250 --> 00:17:49,450 Tá a chuid féin - a ligean ar glacadh leis 32 giotán - spás seoladh go hiomlán neamhspleách. 212 00:17:49,450 --> 00:17:51,590 Is é seo an spás seoladh. 213 00:17:51,590 --> 00:17:56,220 Tá sé dá chuid féin go hiomlán neamhspleách 4 ghigibheart a úsáid. 214 00:17:56,220 --> 00:18:02,220 >> Mar sin, má ritheann tú 2 chlár ag an am céanna, feiceann an clár seo 4 ghigibheart dó féin, 215 00:18:02,220 --> 00:18:04,870 Feiceann an clár 4 ghigibheart dó féin, 216 00:18:04,870 --> 00:18:07,720 agus tá sé dodhéanta ar an gclár seo téigh i pointeoir 217 00:18:07,720 --> 00:18:10,920 agus deireadh suas le cuimhne ón gclár seo. 218 00:18:10,920 --> 00:18:18,200 Agus is é an méid atá cuimhne fhíorúil mapáil ó spás seoladh próisis 219 00:18:18,200 --> 00:18:20,470 chun rudaí a iarbhír ar RAM. 220 00:18:20,470 --> 00:18:22,940 Mar sin tá sé suas le do chóras oibriúcháin a fhios go bhfuil, 221 00:18:22,940 --> 00:18:28,080 hug, nuair a Guy seo oxbfff pointeoir dereferences, ciallaíonn sin i ndáiríre 222 00:18:28,080 --> 00:18:31,040 gur mian sé RAM mbeart 1000, 223 00:18:31,040 --> 00:18:38,150 ach más rud é seo oxbfff clár dereferences, is mian sé i ndáiríre RAM beart 10000. 224 00:18:38,150 --> 00:18:41,590 Is féidir leo a bheith treallach i bhfad óna chéile. 225 00:18:41,590 --> 00:18:48,730 Tá sé seo fiú fíor na rudaí taobh istigh de spás seoladh amháin próisis. 226 00:18:48,730 --> 00:18:54,770 Mar sin, cosúil le Feiceann sé gach 4 ghigibheart dó féin, ach ligean le rá - 227 00:18:54,770 --> 00:18:57,290 [Mac léinn] An bhfuil gach próiseas amháin - 228 00:18:57,290 --> 00:19:01,350 Ligean le rá agat ar ríomhaire le amháin 4 ghigibheart de RAM. 229 00:19:01,350 --> 00:19:06,430 An bhfuil gach próiseas amháin a fheiceáil ar fad 4 ghigibheart? >> Tá. 230 00:19:06,430 --> 00:19:13,060 Ach tá an 4 ghigibheart mheasann sé a bheidh. 231 00:19:13,060 --> 00:19:20,460 Tá sé ach cuí tá sé ar fad an chuimhne toisc nach bhfuil sé a fhios bhfuil aon phróiseas eile. 232 00:19:20,460 --> 00:19:28,140 Beidh sé úsáid ach amháin cuimhne an oiread agus is mór é i ndáiríre. 233 00:19:28,140 --> 00:19:32,340 Níl an córas oibriúcháin ag dul RAM a thabhairt don phróiseas 234 00:19:32,340 --> 00:19:35,750 más rud é nach é a úsáid aon chuimhne sa réigiún ar fad. 235 00:19:35,750 --> 00:19:39,300 Níl sé ag dul a thabhairt dó gcuimhne don réigiún. 236 00:19:39,300 --> 00:19:54,780 Ach tá an smaoineamh go - Tá mé ag iarraidh smaoineamh ar - Ní féidir liom smaoineamh ar analaí. 237 00:19:54,780 --> 00:19:56,780 Analogies deacair iad. 238 00:19:57,740 --> 00:20:02,700 Ceann de na saincheisteanna de chuimhne fíorúil nó ar cheann de na rudaí sé ag réiteach 239 00:20:02,700 --> 00:20:06,810 Is é gur chóir go mbeadh próisis a bheith go hiomlán aineolach ar a chéile. 240 00:20:06,810 --> 00:20:12,140 Agus mar sin is féidir leat scríobh aon chlár go dereferences ach aon pointeoir, 241 00:20:12,140 --> 00:20:19,340 díreach cosúil scríobh le clár a deir * (ox1234), 242 00:20:19,340 --> 00:20:22,890 agus go bhfuil seoladh cuimhne dereferencing 1234. 243 00:20:22,890 --> 00:20:28,870 >> Ach tá sé suas go dtí an córas oibriúcháin a aistriú ansin cad 1234 acmhainne. 244 00:20:28,870 --> 00:20:33,960 Mar sin, a tharlaíonn má 1234 a bheith ina ainm na cuimhne bailí ar feadh an phróisis seo, 245 00:20:33,960 --> 00:20:38,800 mar tá sé ar an chruach nó rud éigin, ansin beidh sé seo ar ais luach an seoladh cuimhne 246 00:20:38,800 --> 00:20:41,960 chomh fada agus is eol don phróiseas. 247 00:20:41,960 --> 00:20:47,520 Ach nach bhfuil má tá 1234 le seoladh bailí, mar a tharlaíonn sé i dtír 248 00:20:47,520 --> 00:20:52,910 i roinnt píosa beag de chuimhne anseo go bhfuil níos faide ná an chairn agus thar an gcarn 249 00:20:52,910 --> 00:20:57,200 agus nach bhfuil tú ag úsáid i ndáiríre go bhfuil, ansin go bhfuil nuair a fhaigheann tú rudaí cosúil le segfaults 250 00:20:57,200 --> 00:21:00,260 toisc go bhfuil tú touching gcuimhne nach ba chóir duit a bheith touching. 251 00:21:07,180 --> 00:21:09,340 Tá sé seo fíor freisin - 252 00:21:09,340 --> 00:21:15,440 Tá córas 32-giotán, ciallaíonn 32 giotán a bhfuil tú 32 giotán a shainmhíniú seoladh cuimhne. 253 00:21:15,440 --> 00:21:22,970 Tá sé cén fáth a bhfuil leideanna 8 bytes mar go bhfuil 32 giotán 8 bytes - nó 4 bytes. 254 00:21:22,970 --> 00:21:25,250 Tá leideanna 4 bytes. 255 00:21:25,250 --> 00:21:33,680 Mar sin, nuair a fheiceann tú pointeoir mhaith oxbfffff, is é sin - 256 00:21:33,680 --> 00:21:40,080 Laistigh de aon chlár áirithe is féidir leat a thógáil ach aon pointeoir treallach, 257 00:21:40,080 --> 00:21:46,330 áit ar bith ó ox0 go damh 8 f's - ffffffff. 258 00:21:46,330 --> 00:21:49,180 [Mac léinn] An raibh tú ag rá nach bhfuil siad 4 bytes? >> Yeah. 259 00:21:49,180 --> 00:21:52,730 [Mac léinn] Ansin, beidh gach beart ag - >> [Bowden] heicsidheachúlach. 260 00:21:52,730 --> 00:21:59,360 Heicsidheachúlach - 5, 6, 7, 8. Mar sin, leideanna bhfuil tú ag dul a fheiceáil i gcónaí i heicsidheachúlach. 261 00:21:59,360 --> 00:22:01,710 Tá sé díreach conas leideanna a rangú. 262 00:22:01,710 --> 00:22:05,240 Tá gach 2 dhigit de heicsidheachúlach 1 bheart. 263 00:22:05,240 --> 00:22:09,600 Mar sin, tá go bhfuil dul chun bheith 8 n-uimhir heicsidheachúlach ar feadh 4 bytes. 264 00:22:09,600 --> 00:22:14,190 Dá bhrí sin tá gach pointeoir amháin ar chóras 32-giotán ag dul a bheith 4 bytes, 265 00:22:14,190 --> 00:22:18,550 rud a chiallaíonn go i do phróiseas is féidir leat a thógáil ar bith 4 treallach bytes 266 00:22:18,550 --> 00:22:20,550 agus a dhéanamh pointeoir as é, 267 00:22:20,550 --> 00:22:32,730 rud a chiallaíonn go chomh fada agus is go bhfuil sé ar an eolas, is féidir é a dhíriú 2 ar fad ar an 32 bytes na cuimhne. 268 00:22:32,730 --> 00:22:34,760 Cé nach bhfuil i ndáiríre rochtain ar, 269 00:22:34,760 --> 00:22:40,190 fiú má tá do ríomhaire ach 512 meigibheart, is cuí léi tá sé go bhfuil cuimhne i bhfad. 270 00:22:40,190 --> 00:22:44,930 Agus is é an córas oibriúcháin cliste go leor go mbeidh sé leithdháileadh ach an méid is gá duit i ndáiríre. 271 00:22:44,930 --> 00:22:49,630 Ní chuireann sé dul díreach, ó, próiseas nua: 4 gigs. 272 00:22:49,630 --> 00:22:51,930 >> Yeah. >> [Mac léinn] Cad a dhéanann an damh chiallaíonn? Cén fáth a bhfuil tú ag scríobh é? 273 00:22:51,930 --> 00:22:54,980 Tá sé díreach an tsiombail le haghaidh heicsidheachúlach. 274 00:22:54,980 --> 00:22:59,590 Nuair a fheiceann tú tús roinnt le damh, is iad na rudaí i ndiaidh a heicsidheachúlach. 275 00:23:01,930 --> 00:23:05,760 [Mac léinn] raibh tú ag míniú faoi cad a tharlaíonn nuair a chríochnaíonn clár. >> Tá. 276 00:23:05,760 --> 00:23:09,480 Cad a tharlaíonn nuair a chríochnaíonn clár an córas oibriúcháin 277 00:23:09,480 --> 00:23:13,600 ach erases na mapálacha go bhfuil sé do na seoltaí, agus go bhfuil sé. 278 00:23:13,600 --> 00:23:17,770 Is féidir leis an córas oibriúcháin anois a thabhairt ach go bhfuil cuimhne go clár eile a úsáid. 279 00:23:17,770 --> 00:23:19,490 [Mac léinn] Maith go leor. 280 00:23:19,490 --> 00:23:24,800 Mar sin, nuair a leithdháileadh tú rud éigin ar an gcarn nó na n-athróg chruach nó domhanda nó rud ar bith, 281 00:23:24,800 --> 00:23:27,010 siad go léir thiachóga díreach chomh luath agus deireadh leis an gclár 282 00:23:27,010 --> 00:23:32,120 toisc go bhfuil an córas oibriúcháin anois saor in aisce leis an chuimhne a thabhairt d'aon phróiseas eile. 283 00:23:32,120 --> 00:23:35,150 [Mac léinn] Cé go bhfuil dócha go fóill luachanna scríofa i? >> Yeah. 284 00:23:35,150 --> 00:23:37,740 Is iad na luachanna is dócha fós ann. 285 00:23:37,740 --> 00:23:41,570 Tá sé ach tá sé ag dul a bheith deacair a fháil orthu. 286 00:23:41,570 --> 00:23:45,230 Tá sé i bhfad níos deacra a fháil orthu ná mar atá sé a fháil ar comhad a scriosadh 287 00:23:45,230 --> 00:23:51,450 toisc go suíonn an cineál comhad a scriosadh de ann ar feadh i bhfad agus is é an tiomántán crua a lán níos mó. 288 00:23:51,450 --> 00:23:54,120 Mar sin, dul ar é a forscríobh áiteanna éagsúla de chuimhne 289 00:23:54,120 --> 00:23:58,640 roimh a tharlaíonn sé a scríobh ar an smután de chuimhne go bhfuil comhad a úsáidtear a bheith ag. 290 00:23:58,640 --> 00:24:04,520 Ach chuimhne is mó, RAM, timthriall tú trí a lán níos tapúla, 291 00:24:04,520 --> 00:24:08,040 mar sin tá sé ag dul go han-tapa a bheith overwritten. 292 00:24:10,300 --> 00:24:13,340 Ceisteanna ar seo nó aon rud eile? 293 00:24:13,340 --> 00:24:16,130 [Mac léinn] Tá mé ceisteanna faoi ábhar éagsúla. >> Maith go leor. 294 00:24:16,130 --> 00:24:19,060 An bhfuil aon duine ceist ar an? 295 00:24:20,170 --> 00:24:23,120 >> Maith go leor. Ábhar éagsúla. >> [Mac léinn] Maith go leor. 296 00:24:23,120 --> 00:24:26,550 Bhí mé ag dul trí roinnt de na tástálacha chleachtas, 297 00:24:26,550 --> 00:24:30,480 agus i gceann acu ag caint sé ar tí an deachúlach 298 00:24:30,480 --> 00:24:35,630 agus an luach a tuairisceáin sé nó cineálacha athraitheach éagsúla. >> Tá. 299 00:24:35,630 --> 00:24:45,060 Agus dúirt sé go bhfuil an dá o agus fada araon, ar ais 4, agus mar sin tá siad an dá 4 bytes fada. 300 00:24:45,060 --> 00:24:48,070 An bhfuil aon difríocht idir o agus le fada, nó go bhfuil sé an rud céanna? 301 00:24:48,070 --> 00:24:50,380 Tá, tá difríocht. 302 00:24:50,380 --> 00:24:52,960 An caighdeán C - 303 00:24:52,960 --> 00:24:54,950 Tá mé ag dul is dócha a praiseach suas. 304 00:24:54,950 --> 00:24:58,800 An caighdeán C díreach cosúil le cad é C, an doiciméadú oifigiúil C. 305 00:24:58,800 --> 00:25:00,340 Is é seo a deir sé. 306 00:25:00,340 --> 00:25:08,650 Mar sin, deir an caighdeán C ach go mbeidh Char go deo agus i gcónaí a bheith 1 bheart. 307 00:25:10,470 --> 00:25:19,040 Gach rud ina dhiaidh sin - gearr i gcónaí díreach mar a bheith níos mó ná nó cothrom le Char. 308 00:25:19,040 --> 00:25:23,010 D'fhéadfadh sé seo a bheith docht níos mó ná, ach ní dearfach. 309 00:25:23,010 --> 00:25:31,940 Tá slánuimhir a shainmhínítear díreach mar a bheith níos mó ná nó cothrom le gairid. 310 00:25:31,940 --> 00:25:36,210 Agus is é a fad a shainmhínítear díreach mar a bheith níos mó ná nó cothrom le slánuimhir. 311 00:25:36,210 --> 00:25:41,600 Agus is fada fada níos mó ná nó cothrom le fada. 312 00:25:41,600 --> 00:25:46,610 Mar sin, is é an rud ach an caighdeán C sainmhíniú ar ordú coibhneasta de gach rud. 313 00:25:46,610 --> 00:25:54,880 Is é an méid iarbhír na cuimhne a ghlacadh rudaí ar bun go ginearálta suas go dtí cur i bhfeidhm, 314 00:25:54,880 --> 00:25:57,640 ach tá sé go maith go leor sainmhínithe ag an bpointe seo. >> [Mac léinn] Maith go leor. 315 00:25:57,640 --> 00:26:02,490 Mar sin, tá shorts beagnach i gcónaí ag dul a bheith 2 bytes. 316 00:26:04,920 --> 00:26:09,950 Ints bhfuil beagnach i gcónaí ag dul a bheith 4 bytes. 317 00:26:12,070 --> 00:26:15,340 Longs Long bhfuil beagnach i gcónaí ag dul a bheith 8 bytes. 318 00:26:17,990 --> 00:26:23,160 Agus longs, braitheann sé ar cibé an bhfuil tú ag baint úsáide as 32-giotán nó córas 64-giotán. 319 00:26:23,160 --> 00:26:27,450 Mar sin, tá fada ag dul chun freagairt do chineál córais. 320 00:26:27,450 --> 00:26:31,920 Má tá tú ag baint úsáide as córas 32-giotán cosúil leis an fearas, tá sé ag dul a 4 bytes. 321 00:26:34,530 --> 00:26:42,570 Má tá tú ag baint úsáide as 64-giotán ar nós a lán de ríomhairí le déanaí, tá sé ag dul a bheith 8 bytes. 322 00:26:42,570 --> 00:26:45,230 >> Ints Tá beagnach i gcónaí 4 bytes ag an bpointe seo. 323 00:26:45,230 --> 00:26:47,140 Tá longs Long beagnach i gcónaí 8 bytes. 324 00:26:47,140 --> 00:26:50,300 San am atá caite, a úsáidtear ints a bheith ach 2 bytes. 325 00:26:50,300 --> 00:26:56,840 Ach faoi deara go gcomhlíonann an hiomlán gach ceann de na caidrimh níos mó ná agus cothrom le. 326 00:26:56,840 --> 00:27:01,280 Dá bhrí sin tá fada a cheadaítear breá le bheith ar an méid céanna mar slánuimhir, 327 00:27:01,280 --> 00:27:04,030 agus tá sé ceadaithe chomh maith le bheith ar an méid céanna le fada fada. 328 00:27:04,030 --> 00:27:11,070 Agus a tharlaíonn sé ach ionas go mbeidh go 99.999% de na córais, tá sé ag dul a bheith cothrom le 329 00:27:11,070 --> 00:27:15,800 ceachtar slánuimhir nó le fada fada. Braitheann sé díreach ar giotán 32-nó 64-giotán. >> [Mac léinn] Maith go leor. 330 00:27:15,800 --> 00:27:24,600 I flótaí, conas an pointe deachúil ainmnithe i dtéarmaí giotán? 331 00:27:24,600 --> 00:27:27,160 Cosúil mar dhénártha? >> Yeah. 332 00:27:27,160 --> 00:27:30,570 Ní gá duit a fhios gur le haghaidh CS50. 333 00:27:30,570 --> 00:27:32,960 Ní gá duit a fhoghlaim fiú go 61. 334 00:27:32,960 --> 00:27:37,350 Ní gá duit a fhoghlaim go i ndáiríre in aon chúrsa. 335 00:27:37,350 --> 00:27:42,740 Tá sé ach go mbeidh ionadaíocht. 336 00:27:42,740 --> 00:27:45,440 Mé dearmad ar an cuibhrinn beagán cruinn. 337 00:27:45,440 --> 00:27:53,380 Is é an smaoineamh snámhphointe go leithdháileadh tú ndéanfar líon sonrach de giotán chun ionadaíocht a dhéanamh - 338 00:27:53,380 --> 00:27:56,550 Go bunúsach, tá gach rud i nodaireacht eolaíoch. 339 00:27:56,550 --> 00:28:05,600 Mar sin, leithdháileadh tú ndéanfar líon sonrach de giotán chun ionadaíocht a dhéanamh ar líon féin, cosúil le 1.2345. 340 00:28:05,600 --> 00:28:10,200 Ní féidir liom ionadaíocht a dhéanamh ar roinnt le digití níos mó ná 5. 341 00:28:12,200 --> 00:28:26,300 Ansin leat a leithdháileadh freisin ar roinnt áirithe de na píosaí ionas go bíonn sé a bheith cosúil le 342 00:28:26,300 --> 00:28:32,810 is féidir leat dul ach suas le roinnt áirithe, cosúil le é go bhfuil an easpónant is mó is féidir leat a bheith acu, 343 00:28:32,810 --> 00:28:36,190 agus is féidir leat ach dul síos go dtí easpónant áirithe, 344 00:28:36,190 --> 00:28:38,770 Is maith gur ar an easpónant is lú is féidir leat a bheith. 345 00:28:38,770 --> 00:28:44,410 >> Ní féidir liom cuimhneamh ar na píosaí ar bhealach cruinn a shanntar do gach ceann de na luachanna, 346 00:28:44,410 --> 00:28:47,940 ach tá líon áirithe píosaí atá tiomanta do 1.2345, 347 00:28:47,940 --> 00:28:50,930 eile líon áirithe píosaí atá tiomanta do na easpónant, 348 00:28:50,930 --> 00:28:55,670 agus tá sé ach is féidir go dtabharfaí léiriú ar easpónant de mhéid áirithe. 349 00:28:55,670 --> 00:29:01,100 [Mac léinn] Agus dúbailte? An é sin cosúil le snámh breise fada? >> Yeah. 350 00:29:01,100 --> 00:29:07,940 Tá sé an rud céanna mar snámhphointe ach amháin anois tá tú ag baint úsáide as 8 bytes in ionad 4 bytes. 351 00:29:07,940 --> 00:29:11,960 Anois, beidh tú in ann úsáid a bhaint as 9 dhigit nó 10 dhigit, 352 00:29:11,960 --> 00:29:16,630 agus beidh sé seo a bheith in ann dul suas go dtí 300 in ionad 100. >> [Mac léinn] Maith go leor. 353 00:29:16,630 --> 00:29:21,550 Agus tá floats freisin 4 bytes. >> Tá. 354 00:29:21,550 --> 00:29:27,520 Bhuel, arís, braitheann sé is dócha foriomlán ar chur i bhfeidhm i gcoitinne, 355 00:29:27,520 --> 00:29:30,610 ach tá flótaí 4 bytes, tá doubles 8. 356 00:29:30,610 --> 00:29:33,440 Doubles a dtugtar dúbailte mar go bhfuil siad dhá oiread an méid de na báid. 357 00:29:33,440 --> 00:29:38,380 [Mac léinn] Maith go leor. Agus doubles ann dúbailte? >> Níl. 358 00:29:38,380 --> 00:29:43,660 I mo thuairimse, - >> [mac léinn] Cosúil longs fada? >> Yeah. Ní dóigh liom é. Tá. 359 00:29:43,660 --> 00:29:45,950 [Mac léinn] ar na bliana seo caite tástála bhí ceist mar gheall ar an fheidhm is mó 360 00:29:45,950 --> 00:29:49,490 a bhfuil a bheith mar chuid de do chlár. 361 00:29:49,490 --> 00:29:52,310 An freagra a bhí go nach ndéanann sé a bheith ina chuid de do chlár. 362 00:29:52,310 --> 00:29:55,100 Cén scéal? Sin an méid a chonaic mé. 363 00:29:55,100 --> 00:29:59,090 [Bowden] Dealraíonn sé - >> [mac léinn] Cad scéal? 364 00:29:59,090 --> 00:30:02,880 An bhfuil an fhadhb? >> [Mac léinn] Yeah, is féidir liom a tharraingt cinnte sé suas. 365 00:30:02,880 --> 00:30:07,910 Ní chuireann sé a bheith, go teicniúil, ach go bunúsach tá sé ag dul a bheith. 366 00:30:07,910 --> 00:30:10,030 [Mac léinn] a chonaic mé ar cheann ar na bliana difriúil. 367 00:30:10,030 --> 00:30:16,220 Bhí sé cosúil le Fíor nó Bréagach: A bailí - >> Ó, a c comhad.? 368 00:30:16,220 --> 00:30:18,790 . [Mac léinn] Ní mór aon c comhad a bheith - [araon labhairt ag an am céanna - dothuigthe] 369 00:30:18,790 --> 00:30:21,120 Maith go leor. Mar sin, tá go leith. 370 00:30:21,120 --> 00:30:26,800 >> A. C comhad riachtanais ach a feidhmeanna a bheith iontu. 371 00:30:26,800 --> 00:30:32,400 Is féidir leat a chur le chéile comhad i cód meaisín, dénártha, is cuma cad, 372 00:30:32,400 --> 00:30:36,620 gan é a bheith inrite go fóill. 373 00:30:36,620 --> 00:30:39,420 Ní mór inrite bailí bhfuil feidhm mó. 374 00:30:39,420 --> 00:30:45,460 Is féidir leat scríobh 100 feidhmeanna i 1 comhad ach ní mó 375 00:30:45,460 --> 00:30:48,800 agus le chéile ansin síos go dtí dénártha, 376 00:30:48,800 --> 00:30:54,460 ansin scríobhann tú comhad eile go bhfuil ach is mó ach iarrann sé a bunch de na feidhmeanna 377 00:30:54,460 --> 00:30:56,720 sa chomhad seo dénártha thar anseo. 378 00:30:56,720 --> 00:31:01,240 Agus mar sin nuair a bhíonn tú ag déanamh an inrite, go cad a dhéanann an nascóir 379 00:31:01,240 --> 00:31:05,960 Tá sé le chéile na 2 chomhad dénártha isteach inrite. 380 00:31:05,960 --> 00:31:11,400 Mar sin, nach. C comhad gá go mbeadh feidhm mó ar chor ar bith. 381 00:31:11,400 --> 00:31:19,220 Agus ar bhoinn cód mór go mbainfidh tú a fheiceáil na mílte. Comhaid c agus 1 comhad is mó. 382 00:31:23,960 --> 00:31:26,110 Ceisteanna níos mó? 383 00:31:29,310 --> 00:31:31,940 [Mac léinn] Bhí ceist eile. 384 00:31:31,940 --> 00:31:36,710 Dúirt sé a dhéanamh is tiomsaitheoir. Fíor nó Bréagach? 385 00:31:36,710 --> 00:31:42,030 Agus bhí an freagra bréagach, agus thuig mé cén fáth nach bhfuil sé cosúil le clang. 386 00:31:42,030 --> 00:31:44,770 Ach cad a dhéanann muid glaoch a dhéanamh más rud é nach bhfuil sé? 387 00:31:44,770 --> 00:31:49,990 Déan go bunúsach ach - is féidir liom a fheiceáil go díreach cad iarrann sé é. 388 00:31:49,990 --> 00:31:52,410 Ach ritheann sé ach orduithe. 389 00:31:53,650 --> 00:31:55,650 Déan. 390 00:31:58,240 --> 00:32:00,870 Is féidir liom a tharraingt suas seo. Yeah. 391 00:32:10,110 --> 00:32:13,180 Oh, yeah. Déan dhéanann freisin go. 392 00:32:13,180 --> 00:32:17,170 Deir sé seo is é cuspóir na tréithe déanamh chun a chinneadh go huathoibríoch 393 00:32:17,170 --> 00:32:19,610 nach mór píosaí de chlár mór a recompiled 394 00:32:19,610 --> 00:32:22,350 agus eisiúint na horduithe le recompile leo. 395 00:32:22,350 --> 00:32:27,690 Is féidir leat a dhéanamh a dhéanamh comhaid go bhfuil go hiomlán ollmhór. 396 00:32:27,690 --> 00:32:33,210 Déan bhreathnaíonn ar na stampaí ama de chomhaid agus, mar a dúirt muid roimh, 397 00:32:33,210 --> 00:32:36,930 is féidir leat a chur le chéile comhaid aonair síos, agus nach bhfuil sé go dtí go leat a fháil chun an nascóir 398 00:32:36,930 --> 00:32:39,270 go mbíonn siad a chur le chéile isteach inrite. 399 00:32:39,270 --> 00:32:43,810 Mar sin, má tá tú 10 comhaid éagsúla agus a dhéanann tú athrú ar 1 acu, 400 00:32:43,810 --> 00:32:47,870 ansin cad a dhéanamh ag dul a dhéanamh go díreach recompile go 1 comhad 401 00:32:47,870 --> 00:32:50,640 agus relink ansin gach rud le chéile. 402 00:32:50,640 --> 00:32:53,020 Ach tá sé i bhfad níos dumber ná sin. 403 00:32:53,020 --> 00:32:55,690 Tá sé suas chun tú a shainmhíniú go hiomlán go bhfuil an méid ba chóir é a dhéanamh. 404 00:32:55,690 --> 00:32:59,560 Tá sé de réir réamhshocraithe an cumas seo a aithint stuif stampa ama, 405 00:32:59,560 --> 00:33:03,220 ach is féidir leat scríobh comhad déanamh aon ní a dhéanamh. 406 00:33:03,220 --> 00:33:09,150 Is féidir leat scríobh a dhéanamh comhad ionas gur nuair a scríobhann tú a dhéanamh ach cd ar go ceann eile eolaire. 407 00:33:09,150 --> 00:33:15,560 Bhí mé ag dul frustrated mar gheall ar gach rud a tack mé taobh istigh de mo Fearas 408 00:33:15,560 --> 00:33:21,740 agus ansin mé féachaint ar an PDF ón Mac. 409 00:33:21,740 --> 00:33:30,720 >> Mar sin liom dul go dtí Aimsitheoir agus is féidir liom a dhéanamh Go, Ceangail le Freastalaí, 410 00:33:30,720 --> 00:33:36,950 agus is é an freastalaí ceangal mé le mo fearas, agus ansin mé a oscailt suas an PDF 411 00:33:36,950 --> 00:33:40,190 go bhfaigheann chéile ag LaTeX. 412 00:33:40,190 --> 00:33:49,320 Ach bhí mé ag dul frustrated mar gheall ar gach uair amháin is gá dom a athnuachan an PDF, 413 00:33:49,320 --> 00:33:53,900 Bhí mé chun é a chóipeáil le comhadlann ar leith go bhféadfadh sé teacht ar 414 00:33:53,900 --> 00:33:57,710 agus a bhí ag fáil sé annoying. 415 00:33:57,710 --> 00:34:02,650 Mar sin, ina ionad sin scríobh mé comhad déanamh, a bhfuil tú a chinneadh conas a dhéanann sé rudaí. 416 00:34:02,650 --> 00:34:06,130 Cén chaoi a dhéanann tú i go bhfuil an PDF LaTeX. 417 00:34:06,130 --> 00:34:10,090 Díreach mar aon chomhad eile déanamh - nó buille faoi thuairim mé nach bhfuil feicthe agat na comhaid a déanamh, 418 00:34:10,090 --> 00:34:13,510 ach ní mór dúinn i fearas comhad déanamh domhanda a deir go díreach, 419 00:34:13,510 --> 00:34:16,679 má tá tú ag a thiomsú comhad C, bain úsáid as clang. 420 00:34:16,679 --> 00:34:20,960 Agus mar sin anseo i mo chomhad déanamh a dhéanamh liom a rá liom, 421 00:34:20,960 --> 00:34:25,020 an comhad seo atá tú ag dul go dtí gur mian a chur le chéile leis an PDF LaTeX. 422 00:34:25,020 --> 00:34:27,889 Agus mar sin tá sé LaTeX PDF a tá ag déanamh an tiomsaithe. 423 00:34:27,889 --> 00:34:31,880 Níl Déan thiomsú. Tá sé ag rith go díreach na n-orduithe sa seicheamh atá sonraithe agam. 424 00:34:31,880 --> 00:34:36,110 Mar sin, ritheann sé PDF LaTeX, cóipeanna sé é chuig an eolaire mhaith liom é a chóipeáil, 425 00:34:36,110 --> 00:34:38,270 sé cd chuig an eolaire agus a dhéanann rudaí eile, 426 00:34:38,270 --> 00:34:42,380 ach aitheantas a thabhairt do gach a dhéanann sé nuair a athruithe ar comhad, 427 00:34:42,380 --> 00:34:45,489 agus má athraíonn sé, ansin beidh sé ar siúl an orduithe go bhfuil sé ceaptha a bhainistiú 428 00:34:45,489 --> 00:34:48,760 nuair a athraíonn an comhad. >> [Mac léinn] Maith go leor. 429 00:34:50,510 --> 00:34:54,420 Níl a fhios agam áit a bhfuil na comhaid déanamh domhanda dom a sheiceáil amach. 430 00:34:57,210 --> 00:35:04,290 Ceisteanna eile? Tráth na gceist Rud ar bith ó am atá caite? Aon rud pointeoir? 431 00:35:06,200 --> 00:35:08,730 Tá rudaí subtle le leideanna mar - 432 00:35:08,730 --> 00:35:10,220 Níl mé ag dul a bheith in ann a fháil ar cheist tráth na gceist ar sé - 433 00:35:10,220 --> 00:35:16,250 ach díreach cosúil le an saghas rud. 434 00:35:19,680 --> 00:35:24,060 Déan cinnte go dtuigeann tú go bhfuil nuair a rá liom o * x * y - 435 00:35:24,890 --> 00:35:28,130 Ní hé seo go díreach rud ar bith anseo, buille faoi thuairim mé. 436 00:35:28,130 --> 00:35:32,140 Ach cosúil le * x * y, iad siúd atá 2 athróg atá ar an chairn. 437 00:35:32,140 --> 00:35:37,220 Nuair a rá liom x = malloc (deachúlach (o)), tá x fós athróg ar an chruach, 438 00:35:37,220 --> 00:35:41,180 Is malloc roinnt bloc os a chionn sa gcarn, agus táimid ag a bhfuil x pointe ar an gcarn. 439 00:35:41,180 --> 00:35:43,900 >> Mar sin, rud éigin ar na pointí Stack ar an gcarn. 440 00:35:43,900 --> 00:35:48,100 Aon uair a malloc tú rud ar bith, agus tú ag a stóráil gan dabht, tá sé taobh istigh de pointeoir. 441 00:35:48,100 --> 00:35:55,940 Mar sin, is é sin pointeoir ar an chruach, tá an bloc malloced ar an gcarn. 442 00:35:55,940 --> 00:36:01,240 A lán daoine a fháil ar dhaoine eatarthu agus a rá o * x = malloc = x ar an gcarn. 443 00:36:01,240 --> 00:36:04,100 Tá Uimh Cad iad na pointí x ar an gcarn. 444 00:36:04,100 --> 00:36:08,540 x féin ar an chairn, mura rud é ar chúis ar bith bhfuil tú x a bheith ina athróg domhanda, 445 00:36:08,540 --> 00:36:11,960 agus sa chás sin a tharlaíonn sé a bheith i réigiún eile de chuimhne. 446 00:36:13,450 --> 00:36:20,820 Mar sin, súil a choinneáil, is iad na léaráidí bhosca agus arrow go leor coitianta don cheistiúchán. 447 00:36:20,820 --> 00:36:25,740 Nó más rud é nach bhfuil sé ar tráth na gceist 0, beidh sé ar tráth na gceist 1. 448 00:36:27,570 --> 00:36:31,940 Ba chóir duit a fhios ag gach ceann de na, na céimeanna a thiomsú 449 00:36:31,940 --> 00:36:35,740 ós rud é go raibh tú ceisteanna a fhreagairt ar na. Tá. 450 00:36:35,740 --> 00:36:38,940 [Mac léinn] Níorbh fhéidir linn dul thar na céimeanna - >> Cinnte. 451 00:36:48,340 --> 00:36:58,640 Sula céimeanna agus a thiomsú ní mór dúinn preprocessing, 452 00:36:58,640 --> 00:37:16,750 thiomsú, le chéile, agus nascadh. 453 00:37:16,750 --> 00:37:21,480 Preprocessing. Cad a dhéanann a dhéanamh? 454 00:37:29,720 --> 00:37:32,290 Is é an chéim is éasca i - go maith, ní cosúil le - 455 00:37:32,290 --> 00:37:35,770 ní chiallaíonn ba chóir go mbeadh sé soiléir, ach tá sé an chéim is éasca. 456 00:37:35,770 --> 00:37:38,410 D'fhéadfá guys i bhfeidhm é féin. Yeah. 457 00:37:38,410 --> 00:37:43,410 [Mac léinn] Tóg an méid atá agat i do áireamh mar seo agus cóipeanna é agus ansin freisin sainmhíniú. 458 00:37:43,410 --> 00:37:49,250 Breathnaíonn sé le haghaidh rudaí cosúil # áireamh agus # sainiú a dhéanamh, 459 00:37:49,250 --> 00:37:53,800 agus sé ach cóipeanna agus leafaois cad iad siúd i gceist i ndáiríre. 460 00:37:53,800 --> 00:37:59,240 Mar sin, nuair a deir tú # áireamh cs50.h, tá an réamhphróiseálaí chóipeáil agus a ghreamú cs50.h 461 00:37:59,240 --> 00:38:01,030 isteach sa líne. 462 00:38:01,030 --> 00:38:06,640 Nuair a rá leat # x shainiú a 4, téann an réamhphróiseálaí tríd an gclár ar fad 463 00:38:06,640 --> 00:38:10,400 agus cuireann gach cás de x le 4. 464 00:38:10,400 --> 00:38:17,530 Mar sin, glacann an réamhphróiseálaí comhad C bailí agus aschur bailí C comhad 465 00:38:17,530 --> 00:38:20,300 i gcás rudaí a bhfuil a chóipeáil agus a ghreamú. 466 00:38:20,300 --> 00:38:24,230 Mar sin, le chéile anois. Cad a dhéanann a dhéanamh? 467 00:38:25,940 --> 00:38:28,210 [Mac léinn] Téann sé ó C go dénártha. 468 00:38:28,210 --> 00:38:30,970 >> [Bowden] Ní chuireann sé an bealach ar fad dul go dtí an dénártha. 469 00:38:30,970 --> 00:38:34,220 [Mac léinn] Chun cód meaisín ansin? >> Níl sé cód meaisín. 470 00:38:34,220 --> 00:38:35,700 [Mac léinn] Tionól? >> Tionóil. 471 00:38:35,700 --> 00:38:38,890 Téann sé chun an Tionóil sula dtéann sé go léir ar an mbealach chun cód C, 472 00:38:38,890 --> 00:38:45,010 agus a dhéanann teangacha is mó a rud éigin mar seo. 473 00:38:47,740 --> 00:38:50,590 Pioc aon teanga ardleibhéil, agus má tá tú ag dul a thiomsú dó, 474 00:38:50,590 --> 00:38:52,390 is dócha a thiomsú i gcéimeanna. 475 00:38:52,390 --> 00:38:58,140 An chéad dul ar é a Python thiomsú le C, ansin dul ar é a C thiomsú chun an Tionóil, 476 00:38:58,140 --> 00:39:01,600 agus ansin tá Tionól ag dul a fháil aistrithe go dénártha. 477 00:39:01,600 --> 00:39:07,800 Dá bhrí sin tá a thiomsú ag dul chun é a thabhairt ó C chun an Tionóil. 478 00:39:07,800 --> 00:39:12,130 An focal le chéile de ghnáth ná í a thabhairt ó leibhéal níos airde 479 00:39:12,130 --> 00:39:14,340 le teanga cláir níos ísle leibhéal. 480 00:39:14,340 --> 00:39:19,190 Mar sin, is é seo an chéad chéim ach amháin i thiomsú ina dtosaíonn tú le teanga ardleibhéil 481 00:39:19,190 --> 00:39:23,270 agus deireadh suas i dteanga íseal-leibhéal, agus sin an fáth a bhfuil an chéim ar a dtugtar le chéile. 482 00:39:25,280 --> 00:39:33,370 [Mac léinn] Le linn a thiomsú, a ligean le rá go atá déanta agat # áireamh cs50.h. 483 00:39:33,370 --> 00:39:42,190 An mbeidh an recompile Tiomsaitheoir an cs50.h, ar nós na feidhmeanna atá ann, 484 00:39:42,190 --> 00:39:45,280 agus aistriú go isteach cód Tionól, chomh maith, 485 00:39:45,280 --> 00:39:50,830 Beidh nó é a chóipeáil agus a ghreamú rud le bheith réamh-Tionól? 486 00:39:50,830 --> 00:39:56,910 Beidh cs50.h riamh go leor i bhfad deireadh suas sa Tionól. 487 00:39:59,740 --> 00:40:03,680 Rudaí mar fréamhshamhlacha fheidhm agus rudaí a bhfuil ach le haghaidh duit a bheith cúramach. 488 00:40:03,680 --> 00:40:09,270 Ráthaíonn sé gur féidir leis an tiomsaitheoir rudaí a sheiceáil mar atá tú ag iarraidh feidhmeanna 489 00:40:09,270 --> 00:40:12,910 leis na cineálacha ar ais ceart agus na hargóintí ceart agus rudaí. 490 00:40:12,910 --> 00:40:18,350 >> Mar sin, beidh cs50.h a preprocessed isteach an comhad, agus ansin nuair atá sé ag thiomsú sé 491 00:40:18,350 --> 00:40:22,310 tá sé thrown bunúsach bás tar éis a dhéanann sé cinnte go bhfuil gach rud bheith ar a dtugtar i gceart. 492 00:40:22,310 --> 00:40:29,410 Ach na feidhmeanna a shainmhínítear sa leabharlann CS50, atá ar leithligh ó cs50.h, 493 00:40:29,410 --> 00:40:33,610 ní bheidh na a chur le chéile ar leithligh. 494 00:40:33,610 --> 00:40:37,270 Beidh an teacht i ndáiríre síos sa chéim ag nascadh, mar sin beidh orainn a fháil chun go sa dara. 495 00:40:37,270 --> 00:40:40,100 Ach ar dtús, cad chéile? 496 00:40:41,850 --> 00:40:44,500 [Mac léinn] Tionól dénártha? >> Yeah. 497 00:40:46,300 --> 00:40:48,190 Chéile. 498 00:40:48,190 --> 00:40:54,710 Ní chuirimid glaoch le chéile sé toisc go bhfuil Tionól go leor i bhfad aistriúchán íon de dénártha. 499 00:40:54,710 --> 00:41:00,230 Tá loighic an-beag i dul ó Tionóil dénártha. 500 00:41:00,230 --> 00:41:03,180 Tá sé díreach cosúil ag lorg suas i dtábla, ó, ní mór dúinn an teagasc; 501 00:41:03,180 --> 00:41:06,290 a fhreagraíonn do dénártha 01,110. 502 00:41:10,200 --> 00:41:15,230 Agus mar sin na comhaid go chéile go ginearálta aschur. Comhaid o. 503 00:41:15,230 --> 00:41:19,020 Agus tá. Comhaid o cad a bhí á rá againn roimh, 504 00:41:19,020 --> 00:41:21,570 conas nach bhfuil comhad gá go mbeadh feidhm mó. 505 00:41:21,570 --> 00:41:27,640 Is féidir aon chomhad a thiomsú síos go dtí. Comhad o chomh fada agus tá sé ina bailí C comhaid. 506 00:41:27,640 --> 00:41:30,300 Is féidir é a thiomsú síos go dtí. O. 507 00:41:30,300 --> 00:41:43,030 Anois, tá a nascadh cad a thugann iarbhír a bunch. Comhaid o agus tugann le inrite. 508 00:41:43,030 --> 00:41:51,110 Agus mar sin cad a dhéanann nascadh féidir leat smaoineamh ar an leabharlann CS50 mar chomhad. O. 509 00:41:51,110 --> 00:41:56,980 Is comhad dénártha cheana le chéile. 510 00:41:56,980 --> 00:42:03,530 Agus mar sin nuair a dhéanann tú a thiomsú do chomhad, do hello.c, a glaonna GetString, 511 00:42:03,530 --> 00:42:06,360 hello.c Faigheann chéile síos go dtí hello.o, 512 00:42:06,360 --> 00:42:08,910 hello.o anois i dénártha. 513 00:42:08,910 --> 00:42:12,830 Úsáideann sé GetString, mar sin ní mór é a dul ar aghaidh go dtí cs50.o, 514 00:42:12,830 --> 00:42:16,390 agus smooshes an nascóir le chéile iad agus cóipeanna GetString isteach sa chomhad 515 00:42:16,390 --> 00:42:20,640 agus a thagann amach le inrite go bhfuil gach feidhm ag teastáil uaidh. 516 00:42:20,640 --> 00:42:32,620 Mar sin, nach bhfuil cs50.o iarbhír comhad O, ach tá sé gar go leor nach bhfuil aon difríocht bhunúsach. 517 00:42:32,620 --> 00:42:36,880 Mar sin, tugann nascadh go díreach a bunch de chomhaid le chéile 518 00:42:36,880 --> 00:42:41,390 go bhfuil ar leithligh gach ceann de na feidhmeanna is gá dom a úsáid 519 00:42:41,390 --> 00:42:46,120 agus cruthaíonn an inrite a reáchtáil i ndáiríre. 520 00:42:48,420 --> 00:42:50,780 >> Agus mar sin tá go maith cad a bhí á rá againn roimh 521 00:42:50,780 --> 00:42:55,970 áit ar féidir leat a bheith 1000. comhaid c, tú a thiomsú iad go léir a. comhaid o, 522 00:42:55,970 --> 00:43:00,040 a bheidh ar dócha ar feadh tamaill, ansin athraíonn tú 1. c comhad. 523 00:43:00,040 --> 00:43:05,480 Ní mór duit ach a recompile go 1. C comhad agus ansin relink gach rud eile, 524 00:43:05,480 --> 00:43:07,690 nascadh le gach rud ar ais le chéile. 525 00:43:09,580 --> 00:43:11,430 [Mac léinn] Nuair a bhíonn muid ag nascadh scríobh againn lcs50? 526 00:43:11,430 --> 00:43:20,510 Yeah, mar sin-lcs50. Go comharthaí bratach leis an nascóir gur chóir duit a bheith ag nascadh sa leabharlann. 527 00:43:26,680 --> 00:43:28,910 Ceisteanna? 528 00:43:41,310 --> 00:43:46,860 Go bhfuil siad imithe muid thar dénártha seachas 5 soicind sa chéad léacht? 529 00:43:50,130 --> 00:43:53,010 Ní dóigh liom é. 530 00:43:55,530 --> 00:43:58,820 Ba cheart duit a fhios ag gach ceann de na Os mór go atá againn imithe os a chionn, 531 00:43:58,820 --> 00:44:02,670 agus ba chóir duit a bheith in ann, má thug muid duit a chomhlíonadh, 532 00:44:02,670 --> 00:44:09,410 ba cheart go mbeifeá in ann a rá go bhfuil sé mór O, garbh. Nó go maith, tá mór O garbh. 533 00:44:09,410 --> 00:44:15,300 Mar sin, má fheiceann tú neadaithe do lúba looping thar an líon céanna de rudaí, 534 00:44:15,300 --> 00:44:22,260 cosúil le slánuimhir i, i > [mac léinn] n cearnógach. >> Bíonn sé a bheith n cearnógach. 535 00:44:22,260 --> 00:44:25,280 Má tá tú neadaithe triple, bíonn sé a bheith n chiúbaithe. 536 00:44:25,280 --> 00:44:29,330 Mar sin, gur saghas rud ba chóir duit a bheith in ann a chur in iúl láithreach. 537 00:44:29,330 --> 00:44:33,890 Ní mór duit fios a bheith agat a shórtáil isteach agus sórtáil mboilgeog agus saghas agus gach ceann de na merge. 538 00:44:33,890 --> 00:44:41,420 Tá sé níos éasca a thuiscint cén fáth go bhfuil siad siúd a n cearnógach agus n logáil n agus gach ceann de sin 539 00:44:41,420 --> 00:44:47,810 mar Sílim go raibh tráth na gceist ar aon bhliain amháin nuair a thug muid go bunúsach agat 540 00:44:47,810 --> 00:44:55,050 ar chur i bhfeidhm saghas mboilgeog agus dúirt sé, "Cad é an t-am ag rith an fheidhm seo?" 541 00:44:55,050 --> 00:45:01,020 Mar sin, má aithníonn tú é mar saghas mboilgeog, ansin is féidir leat a rá láithreach n cearnógach. 542 00:45:01,020 --> 00:45:05,470 Ach má fhéachann tú díreach ar sé, ní gá duit fiú a bhaint amach saghas mboilgeog sé; 543 00:45:05,470 --> 00:45:08,990 féidir leat a rá ach tá sé seo é seo a dhéanamh agus tá sé seo. Tá sé seo n cearnógach. 544 00:45:12,350 --> 00:45:14,710 [Mac léinn] An bhfuil aon samplaí diana is féidir leat teacht suas leis, 545 00:45:14,710 --> 00:45:20,370 cosúil le smaoineamh céanna figuring amach? 546 00:45:20,370 --> 00:45:24,450 >> Ní dóigh liom go ba mhaith linn a thabhairt duit aon samplaí diana. 547 00:45:24,450 --> 00:45:30,180 Is é an rud saghas mboilgeog faoi diana mar go mbeadh muid ag dul, 548 00:45:30,180 --> 00:45:36,280 agus fiú go bhfuil, chomh fada agus go dtuigeann tú go bhfuil tú ag iterating thar an eagar 549 00:45:36,280 --> 00:45:41,670 do gach eilimint sa eagar, a bhfuil ag dul a bheith rud éigin go n s cearnógach. 550 00:45:45,370 --> 00:45:49,940 Tá ceisteanna ginearálta, ar nós dheis anseo tá muid - Oh. 551 00:45:55,290 --> 00:45:58,530 Díreach an lá eile, Doug éileamh, "Tá mé invented algartaim is féidir a shórtáil eagar 552 00:45:58,530 --> 00:46:01,780 "Na n-uimhreacha n i O (log n) am!" 553 00:46:01,780 --> 00:46:04,900 Mar sin cén chaoi a fhios againn go bhfuil sé dodhéanta? 554 00:46:04,900 --> 00:46:08,850 [Fhreagra mac léinn inaudible] >> Yeah. 555 00:46:08,850 --> 00:46:13,710 Ar a laghad, tá tú chun teagmháil a dhéanamh gach eilimint sa eagar, 556 00:46:13,710 --> 00:46:16,210 mar sin tá sé dodhéanta a shórtáil le sraith de - 557 00:46:16,210 --> 00:46:20,850 Má tá gach rud in ord neamhshórtáilte, ansin tá tú ag dul a bheith touching gach rud sa eagar, 558 00:46:20,850 --> 00:46:25,320 mar sin tá sé dodhéanta é a dhéanamh i níos lú ná O n. 559 00:46:27,430 --> 00:46:30,340 [Mac léinn] léirigh tú dúinn go bhfuil sampla de a bheith in ann é a dhéanamh i O n 560 00:46:30,340 --> 00:46:33,920 má úsáideann tú a lán de na cuimhne. >> Yeah. 561 00:46:33,920 --> 00:46:37,970 Agus that's - dearmad liom cad that's - An bhfuil comhaireamh sé saghas? 562 00:46:47,360 --> 00:46:51,330 Hmm. Is é sin an algartam sórtáil slánuimhir. 563 00:46:59,850 --> 00:47:05,100 Bhí mé ag lorg an t-ainm speisialta leis seo ná nach raibh mé in ann cuimhneamh ar an tseachtain seo caite. 564 00:47:05,100 --> 00:47:13,000 Yeah. Is iad seo na cineálacha de shaghas gur féidir rudaí a chur i gcrích i mór O n. 565 00:47:13,000 --> 00:47:18,430 Ach tá teorainneacha, mar is féidir leat é a úsáid ach amháin slánuimhreacha suas go dtí líon áirithe. 566 00:47:20,870 --> 00:47:24,560 Plus má tá tú ag iarraidh a shórtáil that's rud éigin - 567 00:47:24,560 --> 00:47:30,750 Má tá do sraith 012, -12, 151, 4 milliún, 568 00:47:30,750 --> 00:47:35,120 ansin tá an eilimint amháin ag dul a ruin go hiomlán a shórtáil ar fad. 569 00:47:42,060 --> 00:47:44,030 >> Ceisteanna? 570 00:47:49,480 --> 00:47:58,870 [Mac léinn] Má tá feidhm athchúrsach agus a dhéanann sé ach na glaonna recursive 571 00:47:58,870 --> 00:48:02,230 laistigh de tuairisceán ráiteas, go bhfuil eireaball athchúrsach, 572 00:48:02,230 --> 00:48:07,360 agus ní bheadh ​​sin a úsáid go bhfuil cuimhne níos mó i rith runtime 573 00:48:07,360 --> 00:48:12,550 nó go mbeadh sé ar a laghad a úsáid cuimhne inchomparáide mar atriallach réiteach? 574 00:48:12,550 --> 00:48:14,530 [Bowden] Tá. 575 00:48:14,530 --> 00:48:19,840 Bheadh ​​sé cosúil beagán níos moille, ach ní i ndáiríre. 576 00:48:19,840 --> 00:48:23,290 Tá eireaball athchúrsach maith go leor. 577 00:48:23,290 --> 00:48:32,640 Breathnú arís ar frámaí chairn, a rá a ligean ar tá príomh- 578 00:48:32,640 --> 00:48:42,920 agus ní mór dúinn barra slánuimhir (slánuimhir x) nó rud éigin. 579 00:48:42,920 --> 00:48:52,310 Ní hé seo an fheidhm foirfe recursive, ach barra ar ais (x - 1). 580 00:48:52,310 --> 00:48:57,620 Mar sin, ar ndóigh, is é seo lochtach. Ní mór duit cásanna bonn agus rudaí. 581 00:48:57,620 --> 00:49:00,360 Ach tá an smaoineamh anseo go bhfuil an eireaball athchúrsach, 582 00:49:00,360 --> 00:49:06,020 rud a chiallaíonn nuair is mó glaonna bar sé ag dul a fháil ar a fráma Stack. 583 00:49:09,550 --> 00:49:12,440 Sa fráma cruaiche tá ann dul chun bheith ina bloc beag de chuimhne 584 00:49:12,440 --> 00:49:17,490 a fhreagraíonn dá x argóint. 585 00:49:17,490 --> 00:49:25,840 Agus mar sin a ligean le rá is mó a tharlaíonn a ghlaoch barra (100); 586 00:49:25,840 --> 00:49:30,050 Dá bhrí sin tá x ag dul chun tús a chur amach mar 100. 587 00:49:30,050 --> 00:49:35,660 Má aithníonn an tiomsaitheoir go bhfuil an fheidhm eireaball recursive, 588 00:49:35,660 --> 00:49:38,540 ansin nuair a dhéanann barra a ghlaoch athchúrsach chun barra, 589 00:49:38,540 --> 00:49:45,490 seachas é a dhéanamh fráma Stack nua, a bhfuil áit a thosaíonn an chairn atá ag fás den chuid is mó, 590 00:49:45,490 --> 00:49:48,220 deireadh thiar beidh sé ar siúl ar an gcarn agus ansin segfaults leat a fháil ar 591 00:49:48,220 --> 00:49:51,590 mar a thosaíonn cuimhne colliding. 592 00:49:51,590 --> 00:49:54,830 >> Mar sin, seachas é a dhéanamh a fráma cruaiche féin, is féidir é a bhaint amach, 593 00:49:54,830 --> 00:49:59,080 hug riamh, tá mé gur gá teacht ar ais chuig an fráma cruaiche, 594 00:49:59,080 --> 00:50:08,040 sin in ionad beidh mé in ionad díreach tar éis an argóint sin le 99 barra agus ansin tús a chur go léir os a chionn. 595 00:50:08,040 --> 00:50:11,810 Agus ansin beidh sé a dhéanamh arís agus beidh teacht ar ais barra é (x - 1), 596 00:50:11,810 --> 00:50:17,320 agus in ionad a dhéanamh fráma Stack nua, tiocfaidh sé in áit go díreach a argóint atá ann faoi láthair le 98 597 00:50:17,320 --> 00:50:20,740 agus léim ansin ar ais go dtí tús an-bar. 598 00:50:23,860 --> 00:50:30,430 Na hoibríochtaí sin, in ionad an luach 1 ar an chruach agus léim ar ais go dtí an tús, 599 00:50:30,430 --> 00:50:32,430 bhfuil go leor éifeachtach. 600 00:50:32,430 --> 00:50:41,500 Mar sin, nach bhfuil ach an úsáid chuimhne chéanna mar fheidhm ar leith a bhfuil atriallach 601 00:50:41,500 --> 00:50:45,390 toisc go bhfuil tú ag baint úsáide as ach 1 fráma cruaiche, ach nach bhfuil tú ag fulaingt na míbhuntáistí 602 00:50:45,390 --> 00:50:47,240 a bhfuil a feidhmeanna a ghlaoch. 603 00:50:47,240 --> 00:50:50,240 Is féidir le feidhmeanna Ag glaoch ar a bheith beagán costasach toisc go bhfuil sé go léir a dhéanamh leis an thus 604 00:50:50,240 --> 00:50:52,470 agus teardown agus go léir stuif seo. 605 00:50:52,470 --> 00:50:58,160 Mar sin, tá an athchúrsáil eireaball maith. 606 00:50:58,160 --> 00:51:01,170 [Mac léinn] Cén fáth nach é a chruthú céimeanna nua? 607 00:51:01,170 --> 00:51:02,980 Toisc go dtuigeann sé nach gá é. 608 00:51:02,980 --> 00:51:07,800 Tá an glaoch chun barra ar ais ach an glao athchúrsach. 609 00:51:07,800 --> 00:51:12,220 Mar sin, nach gá aon rud a dhéanamh leis an luach ar ais. 610 00:51:12,220 --> 00:51:15,120 Tá sé seo ag dul díreach a thabhairt ar ais láithreach é. 611 00:51:15,120 --> 00:51:20,530 Mar sin, tá sé ag dul ach a chur in ionad a argóint féin agus tús a chur os a chionn. 612 00:51:20,530 --> 00:51:25,780 Agus freisin, más rud é nach bhfuil tú ag an leagan eireaball recursive, 613 00:51:25,780 --> 00:51:31,460 ansin tú a fháil ar fad na barraí ina bhfilleann nuair bheár seo 614 00:51:31,460 --> 00:51:36,010 tá sé ar a luach ar ais chuig an gceann seo, ansin go bhfilleann an barra díreach 615 00:51:36,010 --> 00:51:39,620 agus tuairisceáin sé a luach leis an gceann seo, ansin tá sé ag dul díreach a thabhairt ar ais láithreach 616 00:51:39,620 --> 00:51:41,350 agus a luach ar ais go dtí an gceann seo. 617 00:51:41,350 --> 00:51:45,350 Mar sin, tá tú ag coigilt seo popping gach ceann de na rudaí as an chairn 618 00:51:45,350 --> 00:51:48,730 ós rud é go bhfuil an luach ar ais ag dul díreach a chur ar aghaidh ar an mbealach ar ais suas ar aon nós. 619 00:51:48,730 --> 00:51:55,400 Ní sin an fáth a ionad ach ar ár argóint leis an argóint suas chun dáta agus tús a chur os cionn? 620 00:51:57,460 --> 00:52:01,150 Mura bhfuil an fheidhm eireaball athchúrsach, má dhéanann tú rud éigin cosúil le - 621 00:52:01,150 --> 00:52:07,530 [Mac léinn] má bar (x + 1). >> Yeah. 622 00:52:07,530 --> 00:52:11,770 >> Mar sin, má chuir tú é i riocht, ansin tá tú ag déanamh rud éigin leis an luach ar ais. 623 00:52:11,770 --> 00:52:16,260 Nó fiú má dhéanann tú díreach ar ais 2 * bar (x - 1). 624 00:52:16,260 --> 00:52:23,560 Riachtanais - (1 x) a thabhairt ar ais d'fhonn é a ríomh 2 uair an luach, Mar sin, barra anois 625 00:52:23,560 --> 00:52:26,140 mar sin anois gá é a fráma cruaiche féin ar leithligh, 626 00:52:26,140 --> 00:52:31,180 agus anois, is cuma cé chomh deacair iarracht tú, agus tú ag dul go mór chun - 627 00:52:31,180 --> 00:52:34,410 Ní hé seo an eireaball athchúrsach. 628 00:52:34,410 --> 00:52:37,590 [Mac léinn] Ar mhaith liom iarracht a thabhairt athchúrsáil a d'aidhm le haghaidh athchúrsáil eireaball - 629 00:52:37,590 --> 00:52:41,450 [Bowden] I saol idéalach, ach i CS50 ní gá duit a. 630 00:52:43,780 --> 00:52:49,280 D'fhonn a fháil cuardach ar eireaball, go ginearálta, bhunaíonn tú argóint bhreise 631 00:52:49,280 --> 00:52:53,550 áit a mbeidh barra a chur x int i y 632 00:52:53,550 --> 00:52:56,990 , agus freagraíonn y an rud deiridh ba mhaith leat a thabhairt ar ais. 633 00:52:56,990 --> 00:53:03,650 Mar sin, ansin é seo a bhíonn tú ag dul a bheith ag filleadh bar (x - 1), 2 * y. 634 00:53:03,650 --> 00:53:09,810 Mar sin, go díreach ar ard-leibhéal conas a athrú rudaí a bheith eireaball athchúrsach. 635 00:53:09,810 --> 00:53:13,790 Ach an argóint breise - 636 00:53:13,790 --> 00:53:17,410 Agus ansin sa deireadh nuair a shroicheann tú do chás bonn, tá tú ar ais ach y 637 00:53:17,410 --> 00:53:22,740 mar atá tú ag carnadh an t-am ar fad an luach ar ais gur mian leat. 638 00:53:22,740 --> 00:53:27,280 Tá tú de chineál ar a bhí sé a dhéanamh ach úsáid a bhaint iteratively glaonna recursive. 639 00:53:32,510 --> 00:53:34,900 Ceisteanna? 640 00:53:34,900 --> 00:53:39,890 [Mac léinn] B'fhéidir faoi uimhríochtúil pointeoir, cosúil le teaghráin á úsáid. >> Cinnte. 641 00:53:39,890 --> 00:53:43,610 Uimhríochtúil phointeora. 642 00:53:43,610 --> 00:53:48,440 Nuair a bheidh ag baint úsáide as téada tá sé éasca mar go bhfuil teaghráin réaltaí Char, 643 00:53:48,440 --> 00:53:51,860 carachtair go deo agus i gcónaí beart amháin, 644 00:53:51,860 --> 00:53:57,540 agus mar sin uimhríochtúil pointeoir comhionann le uimhríocht rialta nuair a bhíonn tú ag déileáil le teaghráin. 645 00:53:57,540 --> 00:54:08,790 Ligean le rá ach ruabhric * s = "hello". 646 00:54:08,790 --> 00:54:11,430 Mar sin, ní mór dúinn a bloc i gcuimhne. 647 00:54:19,490 --> 00:54:22,380 Riachtanais sé 6 bytes mar is gá duit i gcónaí ar an Críochnaitheoir null. 648 00:54:22,380 --> 00:54:28,620 Agus is é ruabhric * s ag dul a chur in iúl go tús an eagar. 649 00:54:28,620 --> 00:54:32,830 Mar sin, deir s ann. 650 00:54:32,830 --> 00:54:36,710 Anois, tá sé seo go bunúsach conas a oibríonn aon eagar, 651 00:54:36,710 --> 00:54:40,780 beag beann ar cibé an raibh sé ar ais le malloc nó cibé an bhfuil sé ar an chruach. 652 00:54:40,780 --> 00:54:47,110 Tá aon sraith bunúsach pointeoir go dtí tús an eagar, 653 00:54:47,110 --> 00:54:53,640 agus tá sé ansin aon oibríocht eagar, aon innéacsú, ag dul go díreach isteach sa sraith áirithe a fhritháireamh. 654 00:54:53,640 --> 00:55:05,360 >> Mar sin, nuair a rá liom rud éigin cosúil le s [3]; tá sé seo ag dul go dtí s agus comhaireamh 3 chars isteach 655 00:55:05,360 --> 00:55:12,490 Mar sin, s [3], ní mór dúinn 0, 1, 2, 3, agus mar sin s [3] ag dul a tharchur chuig an l. 656 00:55:12,490 --> 00:55:20,460 [Mac léinn] Agus d'fhéadfadh muid a bheith ag an luach céanna ag déanamh s + 3 agus ansin lúibíní réalta? 657 00:55:20,460 --> 00:55:22,570 Tá. 658 00:55:22,570 --> 00:55:26,010 Is ionann sin * (s + 3); 659 00:55:26,010 --> 00:55:31,240 agus is é sin go deo agus i gcónaí comhionann is cuma cad a dhéanann tú. 660 00:55:31,240 --> 00:55:34,070 Tú riamh a bhaint as an chomhréir lúibín. 661 00:55:34,070 --> 00:55:37,770 Is féidir leat úsáid i gcónaí * (s + 3) chomhréir. 662 00:55:37,770 --> 00:55:40,180 Daoine claonadh a bhíonn le cosúil leis an error lúibín, cé. 663 00:55:40,180 --> 00:55:43,860 [Mac léinn] Mar sin, tá gach arrays ndáiríre ach leideanna. 664 00:55:43,860 --> 00:55:53,630 Tá idirdhealú beag nuair a rá liom slánuimhir x [4]; >> [mac léinn] An bhfuil a chruthú go bhfuil an chuimhne? 665 00:55:53,630 --> 00:56:03,320 [Bowden] Is é sin an dul a chruthú 4 ints ar an chruach, mar sin 16 bytes iomlán. 666 00:56:03,320 --> 00:56:05,700 Tá sé seo ag dul a chruthú 16 bytes ar an chruach. 667 00:56:05,700 --> 00:56:09,190 Ní x stóráil in áit ar bith. 668 00:56:09,190 --> 00:56:13,420 Tá sé ach siombail a thagraíonn do thús an rud. 669 00:56:13,420 --> 00:56:17,680 Mar gheall ar dhearbhú tú an sraith taobh istigh na feidhme seo, 670 00:56:17,680 --> 00:56:22,340 cad é an tiomsaitheoir ag dul a dhéanamh ná a athsholáthar ach gach cás de na x athróg 671 00:56:22,340 --> 00:56:26,400 leis an áit a tharla sé a roghnú a chur ar na 16 beart. 672 00:56:26,400 --> 00:56:30,040 Ní féidir é sin a dhéanamh le ruabhric * s toisc go bhfuil s pointeoir iarbhír. 673 00:56:30,040 --> 00:56:32,380 Tá sé saor in aisce a chur in iúl ansin chun rudaí eile. 674 00:56:32,380 --> 00:56:36,140 Is é x tairiseach. Ní féidir leat a bheith pointe sé le raon éagsúil. >> [Mac léinn] Maith go leor. 675 00:56:36,140 --> 00:56:43,420 Ach tá an smaoineamh seo, an innéacsú, mar an gcéanna is cuma cé acu tá sé ina eagar traidisiúnta 676 00:56:43,420 --> 00:56:48,230 nó má tá sé ina pointeoir chun rud éigin nó má tá sé ina pointeoir ar raon malloced. 677 00:56:48,230 --> 00:56:59,770 Agus i ndáiríre, go bhfuil sé chomh coibhéiseach ar fáil go bhfuil freisin an rud céanna. 678 00:56:59,770 --> 00:57:05,440 Sé i ndáiríre aistríonn go díreach cad atá taobh istigh de na lúibíní agus cad atá fágtha de na lúibíní, 679 00:57:05,440 --> 00:57:07,970 Cuireann siad le chéile, agus dereferences. 680 00:57:07,970 --> 00:57:14,710 Mar sin, tá sé seo ach bailí chomh * (s + 3) nó s [3]. 681 00:57:16,210 --> 00:57:22,090 [Mac léinn] An féidir leat a bheith leideanna dírithe ar 2-tríthoiseach arrays? 682 00:57:22,090 --> 00:57:27,380 >> Tá sé níos deacra. Go traidisiúnta, uimh. 683 00:57:27,380 --> 00:57:34,720 Tá sraith 2-tríthoiseach ach sraith 1-tríthoiseach le roinnt error áisiúil 684 00:57:34,720 --> 00:57:54,110 mar nuair a rá liom slánuimhir x [3] [3], tá sé seo i ndáiríre ach 1 sraith le 9 luachanna. 685 00:57:55,500 --> 00:58:03,000 Agus mar sin nuair a innéacs a fhios, an tiomsaitheoir cad is ciall agam. 686 00:58:03,000 --> 00:58:13,090 Má rá liom x [1] [2], a fhios sé Ba mhaith liom dul go dtí an dara sraith, mar sin tá sé ag dul a skip an chéad 3, 687 00:58:13,090 --> 00:58:17,460 agus ansin is mian leis an dara rud sa mhéid is go, mar sin tá sé ag dul a fháil ar an gceann seo. 688 00:58:17,460 --> 00:58:20,480 Ach tá sé fós ach sraith amháin-tríthoiseach. 689 00:58:20,480 --> 00:58:23,660 Agus mar sin má bhí mé le pointeoir a shannadh chuig an eagar, 690 00:58:23,660 --> 00:58:29,770 Ba mhaith liom a rá o * p = x; 691 00:58:29,770 --> 00:58:33,220 Is é an cineál x díreach - 692 00:58:33,220 --> 00:58:38,280 Tá sé cineál rá garbh x ós rud é go bhfuil sé ach siombail agus nach bhfuil sé athróg iarbhír, 693 00:58:38,280 --> 00:58:40,140 ach tá sé ach * slánuimhir. 694 00:58:40,140 --> 00:58:44,840 x bhfuil ach pointeoir chuig an tús an. >> [Mac léinn] Maith go leor. 695 00:58:44,840 --> 00:58:52,560 Agus mar sin ní bheidh mé in ann teacht [1] [2]. 696 00:58:52,560 --> 00:58:58,370 Sílim go bhfuil comhréir speisialta do dhearbhú pointeoir, 697 00:58:58,370 --> 00:59:12,480 rud éigin cosúil le ridiculous slánuimhir (* p [-. rud éigin go hiomlán ridiculous Níl a fhios agam fiú. 698 00:59:12,480 --> 00:59:17,090 Ach tá error do dhearbhú leideanna cosúil le lúibíní agus rudaí. 699 00:59:17,090 --> 00:59:22,960 Ní fhéadfadh sé in iúl go fiú a dhéanann tú sin. 700 00:59:22,960 --> 00:59:26,640 Raibh mé in ann breathnú siar ar rud éigin a bheadh ​​a insint dom an fhírinne. 701 00:59:26,640 --> 00:59:34,160 Beidh mé ag lorg dó ina dhiaidh sin, má tá comhréir le haghaidh pointe. Ach ní bheidh tú é a fheiceáil. 702 00:59:34,160 --> 00:59:39,670 Agus is fiú an chomhréir sin ársa go má úsáideann tú é, beidh daoine a baffled. 703 00:59:39,670 --> 00:59:43,540 Tá arrays iltoiseacha deas annamh mar atá sé. 704 00:59:43,540 --> 00:59:44,630 Tá tú go leor i bhfad - 705 00:59:44,630 --> 00:59:48,490 Bhuel, má tá tú ag déanamh rudaí maitrís nach bhfuil sé ag dul a bheith gann, 706 00:59:48,490 --> 00:59:56,730 ach i C bhfuil tú ag dul annamh a bheith ag baint úsáide as arrays iltoiseacha. 707 00:59:57,630 --> 01:00:00,470 Yeah. >> [Mac léinn] Ligean le rá agat eagar i ndáiríre fada. 708 01:00:00,470 --> 01:00:03,900 >> Mar sin, i gcuimhne fíorúil mbeadh sé dealraitheach a bheith ar gach as a chéile, 709 01:00:03,900 --> 01:00:05,640 cosúil leis na heilimintí ceart aice le gach eile, 710 01:00:05,640 --> 01:00:08,770 ach i gcuimhne fhisiceach a bheadh, go mbeadh sé indéanta chun a bheith roinnte suas? >> Tá. 711 01:00:08,770 --> 01:00:16,860 Conas fíorúil Tá oibreacha cuimhne scarann ​​sé ach - 712 01:00:19,220 --> 01:00:24,860 Is é an t-aonad leithdháileadh ar an leathanach, a bhfuil claonadh a 4 cilibheart, 713 01:00:24,860 --> 01:00:29,680 agus mar sin nuair a deir próiseas, hug, ba mhaith liom seo a úsáid chuimhne, 714 01:00:29,680 --> 01:00:35,970 Is é an córas oibriúcháin ag dul a leithdháileadh ann 4 cilibheart don bloc beag de chuimhne. 715 01:00:35,970 --> 01:00:39,100 Fiú má úsáideann tú ach beart amháin beag sa bhloc iomlán na cuimhne, 716 01:00:39,100 --> 01:00:42,850 Is é an córas oibriúcháin ag dul a thabhairt dó an 4 iomlán cilibheart. 717 01:00:42,850 --> 01:00:49,410 Mar sin, cad é ciallaíonn sé seo go raibh mé in ann - ligean le rá é seo mo chairn. 718 01:00:49,410 --> 01:00:53,180 D'fhéadfaí an chairn a bheith scartha. D'fhéadfadh a bheith Mo Stack meigibheart agus meigibheart. 719 01:00:53,180 --> 01:00:55,020 D'fhéadfadh Mo chairn a bheith ollmhór. 720 01:00:55,020 --> 01:01:00,220 Ach tá an chairn féin a dheighilt i leathanaigh aonair, 721 01:01:00,220 --> 01:01:09,010 agus má táimid ag os cionn anseo ligean le rá é seo ár RAM, 722 01:01:09,010 --> 01:01:16,600 má tá mé 2 ghigibheart de RAM, is é seo 0 seoladh iarbhír cosúil leis an beart 0 mo RAM, 723 01:01:16,600 --> 01:01:22,210 agus tá sé seo 2 ghigibheart léir ar an mbealach síos anseo. 724 01:01:22,210 --> 01:01:27,230 Mar sin, d'fhéadfadh an leathanach seo freagairt do bloc seo thar anseo. 725 01:01:27,230 --> 01:01:29,400 D'fhéadfadh an leathanach seo freagairt do bloc seo thar anseo. 726 01:01:29,400 --> 01:01:31,560 D'fhéadfadh sé seo ar cheann a fhreagraíonn leis an gceann seo thar anseo. 727 01:01:31,560 --> 01:01:35,540 Mar sin, tá an córas oibriúcháin saor in aisce a shannadh cuimhne fhisiceach 728 01:01:35,540 --> 01:01:39,320 d'aon leathanach ar leith treallach. 729 01:01:39,320 --> 01:01:46,180 Agus ciallaíonn sé sin go má tharlaíonn sé seo teorainn a gabhalscartha eagar, 730 01:01:46,180 --> 01:01:50,070 tharlaíonn le sraith a bheith fágtha ar an agus ceart chun an t-ordú de leathanach, 731 01:01:50,070 --> 01:01:54,460 ansin go bhfuil eagar ag dul a bheith roinnte i gcuimhne fisiciúil. 732 01:01:54,460 --> 01:01:59,280 Agus ansin nuair a scor tú an clár, nuair a thagann deireadh leis an bpróiseas, 733 01:01:59,280 --> 01:02:05,690 a fháil ar na mapálacha scriosadh agus ansin tá sé saor in aisce chun úsáid na bloic beag le haghaidh rudaí eile. 734 01:02:14,730 --> 01:02:17,410 Ceisteanna níos mó? 735 01:02:17,410 --> 01:02:19,960 [Mac léinn] An uimhríochtúil pointeoir. >> Oh yeah. 736 01:02:19,960 --> 01:02:28,410 Teaghrán bhí níos éasca, ach ag féachaint ar rud éigin cosúil le ints, 737 01:02:28,410 --> 01:02:35,000 mar sin ar ais go dtí slánuimhir x [4]; 738 01:02:35,000 --> 01:02:41,810 Cibé tá sé seo le sraith nó bíodh sé ina pointeoir le sraith malloced de 4 slánuimhreacha, 739 01:02:41,810 --> 01:02:47,060 tá sé ag dul a bheidh le háireamh ar an mbealach céanna. 740 01:02:50,590 --> 01:02:53,340 [Mac léinn] Mar sin, tá arrays ar an gcarn? 741 01:03:01,400 --> 01:03:05,270 Nach bhfuil [Bowden] eagair ar an gcarn. >> [Mac léinn] Oh. 742 01:03:05,270 --> 01:03:08,320 >> [Bowden] Nós an cineál seo eagar a bheith ar an chruach 743 01:03:08,320 --> 01:03:12,220 mura dhearbhú tú é ar - neamhaird athróg domhanda. Ná húsáid athróga domhanda. 744 01:03:12,220 --> 01:03:16,280 Taobh istigh de feidhm a rá liom slánuimhir x [4]; 745 01:03:16,280 --> 01:03:22,520 Tá sé seo ag dul a chruthú bloc 4-slánuimhir ar an chruach le haghaidh an eagar. 746 01:03:22,520 --> 01:03:26,960 Ach an malloc (4 * Is uimhir (o)); ag dul chun dul ar an gcarn. 747 01:03:26,960 --> 01:03:31,870 Ach tar éis an bpointe seo is féidir liom a úsáid x agus p i go leor i bhfad ar na bealaí céanna, 748 01:03:31,870 --> 01:03:36,140 seachas na heisceachtaí a dúirt mé cheana faoi is féidir leat a athshannadh lch. 749 01:03:36,140 --> 01:03:40,960 Go teicniúil, go bhfuil a gcuid méideanna beagán éagsúil, ach sin go hiomlán nach mbaineann le hábhar. 750 01:03:40,960 --> 01:03:43,310 Tú riamh a úsáid iarbhír a n-mhéideanna. 751 01:03:48,020 --> 01:03:56,810 An p raibh mé in ann a rá p [3] = 2; nó x [3] = 2; 752 01:03:56,810 --> 01:03:59,680 Is féidir leat iad a úsáid i díreach ar na bealaí céanna. 753 01:03:59,680 --> 01:04:01,570 Uimhríochtúil pointeoir Mar sin, anois - Tá. 754 01:04:01,570 --> 01:04:07,390 [Mac léinn] Ná bhfuil tú a dhéanamh p * má tá tú na lúibíní? 755 01:04:07,390 --> 01:04:11,720 Is iad na lúibíní ar téigh i intuigthe. >> Maith go leor. 756 01:04:11,720 --> 01:04:20,200 I ndáiríre, freisin, cad is féidir go bhfuil tú ag rá leis an leat a fháil arrays iltoiseacha 757 01:04:20,200 --> 01:05:02,650 le leideanna, cad is féidir leat a dhéanamh rud éigin cosúil le, ligean le rá, o ** pp = malloc (Is uimhir (o *) * 5); 758 01:05:02,650 --> 01:05:06,900 Scríobhfaidh mé díreach tar éis go léir amach ar dtús. 759 01:05:37,880 --> 01:05:41,020 Ní raibh mé ag iarraidh go bhfuil ceann. 760 01:05:41,020 --> 01:05:42,550 Maith go leor. 761 01:05:42,550 --> 01:05:48,910 Cad a rinne mé anseo tá - Ba chóir go dtarlódh sé sin pp [i]. 762 01:05:48,910 --> 01:05:53,680 Dá bhrí sin tá pp a pointeoir le pointeoir. 763 01:05:53,680 --> 01:06:02,420 Tá tú ag mallocing pp a chur in iúl le sraith de 5 réiltín slánuimhir. 764 01:06:02,420 --> 01:06:10,950 Mar sin, i gcuimhne go bhfuil tú ar an lgh Stack 765 01:06:10,950 --> 01:06:20,150 Tá sé seo ag dul a chur in iúl le sraith de 5 bloic a bhfuil gach féin leideanna. 766 01:06:20,150 --> 01:06:28,210 Agus ansin nuair a malloc mé síos anseo, malloc go gach ceann de na leideanna aonair 767 01:06:28,210 --> 01:06:32,080 Ba chóir go pointe bloc ar leith de 4 bytes ar an gcarn. 768 01:06:32,080 --> 01:06:35,870 Mar sin, seo pointí 4 bytes. 769 01:06:37,940 --> 01:06:40,660 Agus an ceann seo a pointí le 4 éagsúil beart. 770 01:06:40,660 --> 01:06:43,200 >> Agus pointe ar fad iad a gcuid féin 4 bytes. 771 01:06:43,200 --> 01:06:49,080 Tugann sé seo dom ar bhealach a dhéanamh rudaí iltoiseacha. 772 01:06:49,080 --> 01:06:58,030 Raibh mé in ann a rá pp [3] [4], ach anois nach bhfuil sé seo an rud céanna mar arrays iltoiseacha 773 01:06:58,030 --> 01:07:05,390 mar gheall ar arrays iltoiseacha aistrithe ann [3] [4] a iompú ina amháin a fhritháireamh i sraith x. 774 01:07:05,390 --> 01:07:14,790 An p dereferences bhfuil teacht, an t-innéacs tríú, ansin dereferences go 775 01:07:14,790 --> 01:07:20,790 agus rochtain - Bheadh ​​4 neamhbhailí - an t-innéacs dara. 776 01:07:24,770 --> 01:07:31,430 De bharr an méid nuair a bhí againn o 'x [3] [4] roimh mar eagar iltoiseach 777 01:07:31,430 --> 01:07:35,740 agus nuair a dhéanann tú dúbailte scriosaidh tá sé i ndáiríre ach téigh i amháin, 778 01:07:35,740 --> 01:07:40,490 tú tar éis pointeoir amháin agus ansin fhritháireamh, 779 01:07:40,490 --> 01:07:42,850 tá sé seo i ndáiríre tagairtí 2D. 780 01:07:42,850 --> 01:07:45,840 Leanann tú 2 leideanna ar leith. 781 01:07:45,840 --> 01:07:50,420 Mar sin, ceadaíonn sé seo freisin go teicniúil duit a bheith arrays iltoiseacha 782 01:07:50,420 --> 01:07:53,550 nuair atá gach sraith aonair mhéideanna éagsúla. 783 01:07:53,550 --> 01:07:58,000 Mar sin, I mo thuairimse, arrays iltoiseacha garbh cad tá sé ar a dtugtar 784 01:07:58,000 --> 01:08:01,870 ós rud é gur féidir an chéad rud pointe rud éigin go bhfuil 10 eilimintí, 785 01:08:01,870 --> 01:08:05,540 d'fhéadfadh an dara rud pointe rud éigin go bhfuil 100 heilimintí sin. 786 01:08:05,540 --> 01:08:10,790 [Mac léinn] An bhfuil aon teorainn le líon na leideanna féidir leat a bheith 787 01:08:10,790 --> 01:08:14,290 dírithe ar leideanna eile? >> Uimh 788 01:08:14,290 --> 01:08:17,010 Is féidir leat slánuimhir ***** lch. 789 01:08:18,050 --> 01:08:23,760 Ar ais go uimhríochtúil pointeoir - >> [mac léinn] Oh. >> Yeah. 790 01:08:23,760 --> 01:08:35,649 [Mac léinn] Má tá mé o *** p agus ansin is féidir liom a dereferencing agus a rá liom go bhfuil p * comhionann leis an luach, 791 01:08:35,649 --> 01:08:39,560 tá sé ag dul ach a dhéanamh 1 leibhéal dereferencing? >> Tá. 792 01:08:39,560 --> 01:08:43,340 Mar sin, más mian liom rochtain a fháil ar an rud go bhfuil an pointeoir deireanach atá dírithe ar - 793 01:08:43,340 --> 01:08:46,210 Ansin a dhéanann tú p ***. >> Maith go leor. 794 01:08:46,210 --> 01:08:54,080 Mar sin, is é seo pointí p go dtí an 1 bloc, pointí eile bloc, pointí eile bloc. 795 01:08:54,080 --> 01:09:02,010 Ansin, má dhéanann tú * p = rud éigin eile, ansin tá tú ag athrú seo a 796 01:09:02,010 --> 01:09:13,640 a chur in iúl anois do bloc éagsúla. >> Maith go leor. 797 01:09:13,640 --> 01:09:17,649 >> [Bowden] Agus má bhí malloced seo, ansin caithfidh tú leaked anois cuimhne 798 01:09:17,649 --> 01:09:20,430 ach amháin má tharlaíonn tú go bhfuil tagairtí éagsúla de na 799 01:09:20,430 --> 01:09:25,270 ós rud é nach féidir leat a fháil ar ais chuig na cinn a chaith tú díreach ar shiúl. 800 01:09:25,270 --> 01:09:29,550 Uimhríochtúil phointeora. 801 01:09:29,550 --> 01:09:36,310 slánuimhir x [4]; tá sé ag dul a leithdháileadh le sraith de 4 slánuimhreacha 802 01:09:36,310 --> 01:09:40,670 áit a bhfuil x ag dul a chur in iúl go tús an eagar. 803 01:09:40,670 --> 01:09:50,420 Mar sin, nuair a rá liom rud éigin cosúil le x [1]; Ba mhaith liom é a chiallaíonn dul go dtí an tslánuimhir is dara eagar, 804 01:09:50,420 --> 01:09:53,319 bheadh ​​ina gceann seo. 805 01:09:53,319 --> 01:10:04,190 Ach i ndáiríre, go bhfuil 4 bytes isteach sa réimse ó ghlacann an slánuimhir suas 4 bytes. 806 01:10:04,190 --> 01:10:08,470 Mar sin, ciallaíonn fhritháireamh de 1 ndáiríre fhritháireamh de 1 807 01:10:08,470 --> 01:10:12,030 huaire an méid de is cuma cad é an cineál an eagar. 808 01:10:12,030 --> 01:10:17,170 Is é seo le sraith de slánuimhreacha, mar sin a fhios sé a dhéanamh 1 uair méid slánuimhir nuair is mian sé a fhritháireamh. 809 01:10:17,170 --> 01:10:25,260 An error eile. Cuimhnigh go bhfuil sé seo comhionann le * (x + 1); 810 01:10:25,260 --> 01:10:35,250 Nuair a rá liom pointeoir + 1, cad go tuairisceáin is é an seoladh go bhfuil an pointeoir a stóráil 811 01:10:35,250 --> 01:10:40,360 móide 1 uair an méid de na cineál an pointeoir. 812 01:10:40,360 --> 01:10:59,510 Mar sin, má x = ox100, ansin x + 1 = ox104. 813 01:10:59,510 --> 01:11:19,750 Agus is féidir leat a mí-úsáid seo agus rud éigin a rá cosúil le ruabhric * c = (ruabhric *) x; 814 01:11:19,750 --> 01:11:23,050 agus anois tá c dul go dtí an seoladh céanna x. 815 01:11:23,050 --> 01:11:26,040 c ag dul a bheith cothrom le ox100, 816 01:11:26,040 --> 01:11:31,490 ach c mar + 1 ag dul a bheith cothrom le ox101 817 01:11:31,490 --> 01:11:38,030 ós rud é ag brath uimhríochtúil pointeoir ar an gcineál an pointeoir go bhfuil tú ag cur le. 818 01:11:38,030 --> 01:11:45,390 Mar sin, c + 1, féachann sé ar c, tá sé ina pointeoir ruabhric, mar sin tá sé ag dul a chur 1 uair méid na ruabhric, 819 01:11:45,390 --> 01:11:48,110 atá ag dul i gcónaí a bheith 1, sin a gheobhaidh tú 101, 820 01:11:48,110 --> 01:11:54,890 ach má dhéanann mé x, a bhfuil freisin fós 100, tá x + 1 ag dul a bheith 104. 821 01:11:56,660 --> 01:12:06,340 [Mac léinn] An féidir leat é a úsáid c + + d'fhonn a chur chun cinn do phointeoir faoin 1? 822 01:12:06,340 --> 01:12:09,810 Sea, is féidir leat. 823 01:12:09,810 --> 01:12:16,180 Ní féidir leat é sin a dhéanamh leis an x ​​toisc go bhfuil x ach siombail, tá sé i gcónaí; ní féidir leat athrú x. 824 01:12:16,180 --> 01:12:22,610 >> Ach a tharlaíonn c chun a bheith díreach pointeoir, mar sin c + + Is breá bailí agus beidh sé bhreisiú faoi 1. 825 01:12:22,610 --> 01:12:32,440 Má bhí c ach * slánuimhir, ansin c + + mbeadh a 104. 826 01:12:32,440 --> 01:12:41,250 + + Uimhríocht dhéanann pointeoir díreach mar a bheadh ​​c + 1 a bheith déanta uimhríochtúil pointeoir. 827 01:12:43,000 --> 01:12:48,870 Tá sé seo i ndáiríre conas a lán de rudaí cosúil le sórtáil merge - 828 01:12:49,670 --> 01:12:55,710 In ionad a chruthú cóipeanna de rudaí, is féidir leat pas a fháil in ionad - 829 01:12:55,710 --> 01:13:02,400 Cosúil má bhí mé a pas a fháil seo leath den eagar - lig sé ag scriosadh cuid de seo. 830 01:13:04,770 --> 01:13:10,520 Ligean le rá theastaigh uaim chun pas a fháil an taobh seo den sraith ina feidhm. 831 01:13:10,520 --> 01:13:12,700 Cad mé pas leis an bhfeidhm? 832 01:13:12,700 --> 01:13:17,050 Má éiríonn liom x, tá mé ag rith an seoladh seo. 833 01:13:17,050 --> 01:13:23,780 Ach ba mhaith liom a pas a fháil an seoladh seo go háirithe. Mar sin, cad ba chóir dom pas a fháil? 834 01:13:23,780 --> 01:13:26,590 [Mac léinn] phointeora + 2? 835 01:13:26,590 --> 01:13:29,350 [Bowden] Mar sin x + 2. Tá. 836 01:13:29,350 --> 01:13:31,620 Sin ag dul a bheith an seoladh seo. 837 01:13:31,620 --> 01:13:42,810 Feicfidh tú freisin an-minic a fheiceáil mar x [2] agus ansin an seoladh sin. 838 01:13:42,810 --> 01:13:47,850 Mar sin, is gá duit a chur ar an seoladh sé toisc go bhfuil na scriosaidh ar téigh i intuigthe. 839 01:13:47,850 --> 01:13:53,250 x [2] Tagraíonn an luach atá sa bhosca seo, agus ansin ba mhaith leat an seoladh an bosca, 840 01:13:53,250 --> 01:13:56,850 mar sin deir tú & x [2]. 841 01:13:56,850 --> 01:14:02,880 Mar sin, go conas rud éigin i saghas merge áit ar mhaith leat go dtí leath an liosta ar aghaidh chuig rud éigin 842 01:14:02,880 --> 01:14:08,790 tú i ndáiríre pas díreach & x [2], agus anois chomh fada agus is é an glao athchúrsach lena mbaineann, 843 01:14:08,790 --> 01:14:12,510 Tosaíonn mo sraith nua ann. 844 01:14:12,510 --> 01:14:15,130 Ceisteanna nóiméad deireanach. 845 01:14:15,130 --> 01:14:20,050 [Mac léinn] Más rud é nach bhfuil muid a chur ar COMHARTHA AGUIS nó - cad é sin ar a dtugtar? >> Star? 846 01:14:20,050 --> 01:14:23,200 [Mac léinn] Star. >> Go teicniúil, oibreoir téigh, ach - >> [mac léinn] P leis na roghanna. 847 01:14:23,200 --> 01:14:29,310 >> Más rud é nach bhfuil muid a chur ar réalta nó COMHARTHA AGUIS, cad a tharlaíonn má rá liom ach y = x x agus is pointeoir? 848 01:14:29,310 --> 01:14:34,620 Cad é an cineál y? >> [Mac léinn] beidh mé a rá ach tá sé pointeoir 2. 849 01:14:34,620 --> 01:14:38,270 Mar sin, má deir tú díreach y = x, x agus y anois pointe ar an rud céanna. >> [Mac léinn] Pointe ar an rud céanna. 850 01:14:38,270 --> 01:14:45,180 Agus má tá x ina pointeoir o? >> Bheadh ​​sé gearán a dhéanamh toisc nach féidir leat leideanna a shannadh. 851 01:14:45,180 --> 01:14:46,540 [Mac léinn] Maith go leor. 852 01:14:46,540 --> 01:14:51,860 Cuimhnigh go bhfuil leideanna, cé linn a tharraingt orthu mar saighde, 853 01:14:51,860 --> 01:15:02,010 i ndáiríre gach siopa siad - i ndáiríre tá gach x stóráil rud éigin cosúil le ox100, Pharlaim - * x 854 01:15:02,010 --> 01:15:06,490 a tharlaíonn againn chun ionadaíocht a dhéanamh mar atá dírithe ar an mbloc stóráilte ag 100. 855 01:15:06,490 --> 01:15:19,660 Mar sin, nuair a rá liom o * y = x; Tá mé ag cóipeáil ach ox100 isteach y, 856 01:15:19,660 --> 01:15:24,630 a táimid ag dul díreach chun ionadaíocht a dhéanamh mar y, freisin, dírithe ar ox100. 857 01:15:24,630 --> 01:15:39,810 Agus má rá liom slánuimhir i = (o) x; ansin ag dul i a stóráil cuma cad é an luach ox100 858 01:15:39,810 --> 01:15:45,100 taobh istigh de sé, ach anois tá sé ag dul a léirmhíniú mar slánuimhir seachas pointeoir. 859 01:15:45,100 --> 01:15:49,310 Ach is gá duit a caitheadh ​​nó eile beidh sé gearán a dhéanamh. 860 01:15:49,310 --> 01:15:53,300 [Mac léinn] Mar sin atá i gceist agat a chaitheamh - 861 01:15:53,300 --> 01:16:00,290 An bhfuil sé ag dul a bheith réitigh slánuimhir de slánuimhir x nó vóta réitigh y? 862 01:16:00,290 --> 01:16:03,700 [Bowden] Cad é? 863 01:16:03,700 --> 01:16:07,690 [Mac léinn] Maith go leor. Tar éis na lúibíní tá dul chun bheith ina x nó ay ann? 864 01:16:07,690 --> 01:16:11,500 >> [Bowden] Ceachtar. x agus y coibhéiseach. >> [Mac léinn] Maith go leor. 865 01:16:11,500 --> 01:16:14,390 Toisc go mbíonn siad an dá threo. >> Yeah. 866 01:16:14,390 --> 01:16:21,050 [Mac léinn] Mar sin, bheadh ​​sé a stóráil an 100 heicsidheachúlach i bhfoirm slánuimhir? >> [Bowden] Yeah. 867 01:16:21,050 --> 01:16:23,620 Ach nach bhfuil an luach is cuma cad pointí sé le. 868 01:16:23,620 --> 01:16:29,940 [Bowden] Yeah. >> [Mac léinn] Mar sin, ach an seoladh i bhfoirm slánuimhir. Maith go leor. 869 01:16:29,940 --> 01:16:34,720 [Bowden] Má bhí tú ar chúis éigin aisteach, 870 01:16:34,720 --> 01:16:38,900 d'fhéadfaí tú déileáil go heisiach le leideanna agus ní déileáil le slánuimhreacha 871 01:16:38,900 --> 01:16:49,240 agus a bheith díreach cosúil le slánuimhir * x = 0. 872 01:16:49,240 --> 01:16:53,000 Ansin tá tú ag dul a fháil ar dhaoine eatarthu i ndáiríre nuair a thosaíonn uimhríochtúil pointeoir ag tarlú. 873 01:16:53,000 --> 01:16:56,570 Mar sin, tá na huimhreacha go stórálann siad meaningless. 874 01:16:56,570 --> 01:16:58,940 Tá sé díreach conas a deireadh tú suas a léirmhíniú orthu. 875 01:16:58,940 --> 01:17:02,920 Mar sin, tá mé saor in aisce a chóipeáil ox100 ó * slánuimhir le slánuimhir, 876 01:17:02,920 --> 01:17:07,790 agus tá mé saor in aisce a shannadh - you're is dócha ag dul a fháil yelled ag ar feadh tréimhse nach réitigh - 877 01:17:07,790 --> 01:17:18,160 Tá mé saor in aisce rud éigin a shannadh cosúil le (o *) ox1234 isteach sa * slánuimhir treallach. 878 01:17:18,160 --> 01:17:25,480 Dá bhrí sin tá ox123 díreach mar atá bailí le seoladh chuimhne mar & y. 879 01:17:25,480 --> 01:17:32,060 & A tharlaíonn y thabhairt ar ais go bhfuil rud éigin go leor i bhfad ox123. 880 01:17:32,060 --> 01:17:35,430 [Mac léinn] Ar mhaith a bheith go bhealach i ndáiríre cool chun dul ó heicsidheachúlach go foirm dheachúlach, 881 01:17:35,430 --> 01:17:39,230 Is maith má tá tú pointeoir agus chaith tú é mar slánuimhir? 882 01:17:39,230 --> 01:17:44,860 [Bowden] Is féidir leat i ndáiríre ach a phriontáil ag baint úsáide as cosúil le printf. 883 01:17:44,860 --> 01:17:50,300 Ligean le rá go bhfuil mé slánuimhir y = 100. 884 01:17:50,300 --> 01:18:02,700 Mar sin, printf (% d \ n - mar ba chóir a fhios agat cheana féin - chló sin mar slánuimhir x%,. 885 01:18:02,700 --> 01:18:05,190 Beidh muid a phriontáil ach é mar heicsidheachúlach. 886 01:18:05,190 --> 01:18:10,760 Mar sin, nach bhfuil pointeoir stóráil mar heicsidheachúlach, 887 01:18:10,760 --> 01:18:12,960 agus nach slánuimhir a stóráil mar deachúlach. 888 01:18:12,960 --> 01:18:14,700 Tá gach rud a stóráil mar dhénártha. 889 01:18:14,700 --> 01:18:17,950 Tá sé sin go díreach claonadh a bhíonn againn chun a thaispeáint leideanna mar heicsidheachúlach 890 01:18:17,950 --> 01:18:23,260 mar a cheapann muid na rudaí sna bloic 4-ú beart, 891 01:18:23,260 --> 01:18:25,390 agus an claonadh a seoltaí cuimhne a bheith eolach ar. 892 01:18:25,390 --> 01:18:28,890 Táimid cosúil le, má thosaíonn sé le BF, ansin a tharlaíonn sé a bheith ar an chairn. 893 01:18:28,890 --> 01:18:35,560 Mar sin, tá sé ach ar ár léiriú leideanna mar heicsidheachúlach. 894 01:18:35,560 --> 01:18:39,200 Maith go leor. Ceisteanna ar bith caite? 895 01:18:39,200 --> 01:18:41,700 >> Beidh mé anseo le beagán tar éis má tá tú aon rud eile. 896 01:18:41,700 --> 01:18:46,070 Agus sin deireadh na. 897 01:18:46,070 --> 01:18:48,360 >> [Mac léinn] Yay! [Bualadh bos] 898 01:18:51,440 --> 01:18:53,000 >> [CS50.TV]