1 00:00:00,000 --> 00:00:06,030 >> [MIZIK jwe] 2 00:00:06,030 --> 00:00:08,390 >> Doug Lloyd: endikasyon, isit la nou yo. 3 00:00:08,390 --> 00:00:11,080 Sa a se pwobableman ale nan gen sijè sa a pi difisil 4 00:00:11,080 --> 00:00:12,840 ke nou pale sou nan CS50. 5 00:00:12,840 --> 00:00:15,060 Men, si ou te li anyen sou endikasyon 6 00:00:15,060 --> 00:00:19,080 anvan ou ta kapab yon ti jan entimidasyon pral antre nan videyo sa a. 7 00:00:19,080 --> 00:00:21,260 Se vre pwent yo pèmèt ou kapasite nan 8 00:00:21,260 --> 00:00:23,740 ki petèt vis moute bèl seryezman lè w ap 9 00:00:23,740 --> 00:00:27,450 travay ak varyab, ak done, ak sa ki lakòz pwogram ou aksidan. 10 00:00:27,450 --> 00:00:30,490 Men, yo ap aktyèlman reyèlman itil epi yo pèmèt nou yon vrèman bon fason 11 00:00:30,490 --> 00:00:33,340 yo pase done retounen lakay yo epi lide ant fonksyon, 12 00:00:33,340 --> 00:00:35,490 ke nou ap otreman kapab fè. 13 00:00:35,490 --> 00:00:37,750 >> Se konsa, sa nou vrèman vle fè isit la se tren 14 00:00:37,750 --> 00:00:41,060 ou gen bon disiplin konsèy, se konsa ke ou ka itilize endikasyon efektivman 15 00:00:41,060 --> 00:00:43,850 fè pwogram ou ki pi bon. 16 00:00:43,850 --> 00:00:48,220 Kòm mwen te di endikasyon ban nou yon diferan fason yo pase done ant fonksyon. 17 00:00:48,220 --> 00:00:50,270 Koulye a, si ou sonje soti nan yon videyo pi bonè, lè 18 00:00:50,270 --> 00:00:53,720 nou te ap pale de sijè ki abòde varyab ★ mwen mansyone 19 00:00:53,720 --> 00:01:00,610 ki tout done a ke nou pase ant fonksyon nan C se te pase pa valè. 20 00:01:00,610 --> 00:01:03,070 Apre sa, mwen pa gen dwa te itilize ki tèm, ki sa mwen vle di gen 21 00:01:03,070 --> 00:01:07,170 te ke nou ap pase kopi done. 22 00:01:07,170 --> 00:01:12,252 Lè nou pase yon varyab nan yon fonksyon, nou ap pa aktyèlman pase varyab la 23 00:01:12,252 --> 00:01:13,210 nan fonksyon an, dwa? 24 00:01:13,210 --> 00:01:17,670 Nou ap pase yon kopi ki done nan fonksyon an. 25 00:01:17,670 --> 00:01:20,760 Fonksyon an fè sa li pral epi li kalkile kèk valè, 26 00:01:20,760 --> 00:01:23,180 e petèt nou itilize ke valè lè li bay l 'tounen. 27 00:01:23,180 --> 00:01:26,700 >> Te gen yon sèl eksepsyon nan règleman sa-a nan pase pa valè, 28 00:01:26,700 --> 00:01:31,210 epi n ap tounen vin jwenn sa ki se yon ti kras pita sou nan videyo sa a. 29 00:01:31,210 --> 00:01:34,880 Si nou itilize endikasyon olye pou pou yo sèvi ak varyab, 30 00:01:34,880 --> 00:01:38,180 oswa olye pou yo lè l sèvi avèk varyab yo tèt yo oswa kopi nan varyab yo, 31 00:01:38,180 --> 00:01:43,790 nou kapab kounye a pase varyab yo alantou ant fonksyon nan yon fason diferan. 32 00:01:43,790 --> 00:01:46,550 Sa vle di ke si nou fè yon chanjman nan yon sèl fonksyon, 33 00:01:46,550 --> 00:01:49,827 ke chanjman pral aktyèlman pran efè nan yon fonksyon diferan. 34 00:01:49,827 --> 00:01:52,160 Yon fwa ankò, sa a se yon bagay ki nou pa t 'kapab fè deja, 35 00:01:52,160 --> 00:01:56,979 epi si ou te janm te eseye swap a valè de de varyab nan yon fonksyon, 36 00:01:56,979 --> 00:01:59,270 ou te remake pwoblèm sa a sòt de trennen sou vant moute, dwa? 37 00:01:59,270 --> 00:02:04,340 >> Si nou vle swap X ak Y, epi nou pase yo nan yon fonksyon rele swap, 38 00:02:04,340 --> 00:02:08,680 andedan nan fonksyon an swap a varyab fè valè echanj. 39 00:02:08,680 --> 00:02:12,600 Youn vin de, de vin yon sèl, men nou pa fè sa aktyèlman 40 00:02:12,600 --> 00:02:16,890 chanje anyen nan orijinal la fonksyon, nan moun kap rele a. 41 00:02:16,890 --> 00:02:19,550 Paske nou pa kapab, nou ap sèlman travay ak kopi nan yo. 42 00:02:19,550 --> 00:02:24,760 Avèk pwent menm si, nou kapab aktyèlman pase X ak Y nan yon fonksyon. 43 00:02:24,760 --> 00:02:26,960 Sa kapab fè fonksyon yon bagay avèk yo. 44 00:02:26,960 --> 00:02:29,250 Ak moun ki varyab valè ka aktyèlman chanje. 45 00:02:29,250 --> 00:02:33,710 Se konsa, sa a, se byen yon chanjman nan kapasite nou yo travay avèk done. 46 00:02:33,710 --> 00:02:36,100 >> Anvan nou plonje nan endikasyon, mwen panse ke li la vo 47 00:02:36,100 --> 00:02:38,580 pran yon kèk minit yo tounen nan Basics isit la. 48 00:02:38,580 --> 00:02:41,000 Epi yo gen yon gade nan ki jan travay òdinatè memwa 49 00:02:41,000 --> 00:02:45,340 paske de matyè sa yo yo ale ki aktyèlman dwe trè relye. 50 00:02:45,340 --> 00:02:48,480 Kòm pwobableman ou konnen, sou sistèm òdinatè w lan 51 00:02:48,480 --> 00:02:51,310 ou gen yon kondwi difisil oswa petèt yon kondwi eta solid, 52 00:02:51,310 --> 00:02:54,430 kèk sòt de kote depo dosye-a. 53 00:02:54,430 --> 00:02:57,950 Li nan anjeneral yon kote nan la katye nan 250 jigokte 54 00:02:57,950 --> 00:02:59,810 petèt yon koup la teraokte kounye a. 55 00:02:59,810 --> 00:03:02,270 Lè li nan kote tout nan ou dosye finalman ap viv la, 56 00:03:02,270 --> 00:03:04,870 menm lè se fèmen òdinatè w lan koupe, ou ka vire l 'tounen sou 57 00:03:04,870 --> 00:03:09,190 epi ou ap jwenn dosye ou ki genyen ankò lè ou rdemare sistèm ou an. 58 00:03:09,190 --> 00:03:14,820 Men, kondui ki gen kapasite, tankou yon kondwi ki gen kapasite difisil, yon HDD, oswa yon kondwi eta solid, yon SSD, 59 00:03:14,820 --> 00:03:16,050 yo se jis espas depo. 60 00:03:16,050 --> 00:03:20,400 >> Nou pa ka aktyèlman fè anyen ak done ki nan ki gen kapasite difisil, 61 00:03:20,400 --> 00:03:22,080 oswa nan yon kondwi eta solid. 62 00:03:22,080 --> 00:03:24,950 Yo nan lòd yo aktyèlman chanje done oswa avanse pou li alantou li, 63 00:03:24,950 --> 00:03:28,800 nou gen pou avanse pou pi li nan RAM, o aza aksè memwa. 64 00:03:28,800 --> 00:03:31,170 Koulye a, RAM, ou gen yon anpil mwens nan nan òdinatè w lan. 65 00:03:31,170 --> 00:03:34,185 Ou ka gen yon kote nan la katye nan 512 megabit 66 00:03:34,185 --> 00:03:38,850 si ou gen yon òdinatè ki pi gran, petèt de, kat, uit, 16, 67 00:03:38,850 --> 00:03:41,820 pètèt menm yon ti kras plis, jigokte nan RAM. 68 00:03:41,820 --> 00:03:46,390 Se konsa, sa a, se pi piti anpil, men sa a kote tout nan done yo temèt egziste. 69 00:03:46,390 --> 00:03:48,270 Sa a kote nou kapab chanje bagay sa yo. 70 00:03:48,270 --> 00:03:53,350 Men, lè nou vire konpitè nou an koupe, tout done yo nan RAM la ap fini. 71 00:03:53,350 --> 00:03:57,150 >> Se konsa, Se poutèt sa nou bezwen gen ki gen kapasite difisil ki kote nan plis pèmanan nan li, 72 00:03:57,150 --> 00:03:59,720 konsa ke li exists- li ta dwe reyèlman move si chak fwa nou 73 00:03:59,720 --> 00:04:03,310 vire konpitè nou an koupe, chak dosye ki nan sistèm nou an te efase. 74 00:04:03,310 --> 00:04:05,600 Se konsa, nou travay andedan nan RAM. 75 00:04:05,600 --> 00:04:09,210 Apre sa, chak fwa n ap pale memwa, bèl anpil, nan CS50, 76 00:04:09,210 --> 00:04:15,080 nou ap pale de RAM, pa ki gen kapasite difisil. 77 00:04:15,080 --> 00:04:18,657 >> Se konsa, lè nou deplase bagay sa yo nan memwa, li pran moute yon sèten kantite espas. 78 00:04:18,657 --> 00:04:20,740 Tout moun nan kalite mouvman yo done ki nou ve yo te ap travay ak 79 00:04:20,740 --> 00:04:23,480 Leve kanpe, pran diferan kantite espas nan RAM. 80 00:04:23,480 --> 00:04:27,600 Se konsa, chak fwa ou kreye yon nonb antye relatif varyab, kat bytes nan memwa 81 00:04:27,600 --> 00:04:30,750 yo mete sou kote nan RAM pou ou ka travay avèk ki nonb antye ki pè. 82 00:04:30,750 --> 00:04:34,260 Ou ka deklare nonb antye relatif la, chanje li, bay li 83 00:04:34,260 --> 00:04:36,700 nan yon valè 10 enkremante pa youn, sou sa ak sou sa. 84 00:04:36,700 --> 00:04:39,440 Tout sa ki bezwen yo rive nan RAM, epi ou jwenn kat bytes 85 00:04:39,440 --> 00:04:42,550 yo travay avèk pou chak nonb antye relatif ke ou kreye. 86 00:04:42,550 --> 00:04:45,410 >> Chak karaktè ou kreye vin youn multiple. 87 00:04:45,410 --> 00:04:48,160 Se jis konbyen lajan espas se bezwen nan magazen yon karaktè. 88 00:04:48,160 --> 00:04:51,310 Chak flote, yon reyèl nimewo, vin kat bytes 89 00:04:51,310 --> 00:04:53,390 sof si li nan yon doub presizyon k ap flote pwen 90 00:04:53,390 --> 00:04:56,510 nimewo, ki pèmèt ou gen plis egzak oswa plis chif 91 00:04:56,510 --> 00:04:59,300 apre pwen an desimal san yo pa pèdi presizyon, 92 00:04:59,300 --> 00:05:01,820 ki Leve kanpe, pran uit bytes nan memwa. 93 00:05:01,820 --> 00:05:06,730 LONGS Long, nonm antye relatif reyèlman gwo, tou pran moute uit bytes nan memwa. 94 00:05:06,730 --> 00:05:09,000 Konbyen bytes nan memwa strings Leve kanpe, pran? 95 00:05:09,000 --> 00:05:12,990 Oke kite a mete yon peny nan kesyon sa a pou kounye a, men nou pwal tounen vin jwenn li. 96 00:05:12,990 --> 00:05:17,350 >> Se konsa, tounen nan ide sa a nan memwa kòm yon gwo etalaj de selil multiple ki menm gwosè ak. 97 00:05:17,350 --> 00:05:20,871 Sa ki nan vrèman tout li se, li la jis yon gwo etalaj de selil, 98 00:05:20,871 --> 00:05:23,370 jis tankou nenpòt ki lòt etalaj ki w ap abitye ak ak wè, 99 00:05:23,370 --> 00:05:26,430 eksepte chak eleman se youn multiple lajè. 100 00:05:26,430 --> 00:05:30,030 Apre sa, jis tankou yon etalaj, chak eleman gen yon adrès. 101 00:05:30,030 --> 00:05:32,120 Chak eleman nan yon etalaj gen yon endèks, epi nou 102 00:05:32,120 --> 00:05:36,302 ka sèvi ak sa endèks yo fè sa yo rele aksè o aza sou etalaj la. 103 00:05:36,302 --> 00:05:38,510 Nou pa gen kòmanse nan nan konmansman an nan etalaj la, 104 00:05:38,510 --> 00:05:40,569 repekte nan chak sèl eleman ladan l ', 105 00:05:40,569 --> 00:05:41,860 jwenn sa nou ap chèche pou. 106 00:05:41,860 --> 00:05:45,790 Nou ka jis di, mwen vle pou li ale nan nan 15 eleman oswa eleman nan 100th. 107 00:05:45,790 --> 00:05:49,930 Epi ou ka jis pase nan nimewo sa epi pou yo jwenn valè nan w ap chèche pou. 108 00:05:49,930 --> 00:05:54,460 >> Menm jan an tou chak kote nan memwa gen yon adrès. 109 00:05:54,460 --> 00:05:57,320 Se konsa, ta ka memwa ou gade yon bagay tankou sa a. 110 00:05:57,320 --> 00:06:01,420 Isit la nan yon piti anpil ti moso nan memwa, sa a se 20 bytes nan memwa. 111 00:06:01,420 --> 00:06:04,060 Premye 20 bytes yo paske mwen adrese gen nan pati anba a 112 00:06:04,060 --> 00:06:08,890 se 0, 1, 2, 3, e konsa sou tout wout la jiska 19. 113 00:06:08,890 --> 00:06:13,190 Lè m 'deklare varyab ak lè m 'kòmanse travay avèk yo, 114 00:06:13,190 --> 00:06:15,470 sistèm nan ki pral mete sou kote kèk espas pou m ' 115 00:06:15,470 --> 00:06:17,595 nan sa a memwa nan travay ak varyab m 'yo. 116 00:06:17,595 --> 00:06:21,610 Se konsa, mwen ta ka di, Char c egal kapital H. Ak sa ki k ap pase yo rive? 117 00:06:21,610 --> 00:06:23,880 Oke sistèm lan ki pral mete sou kote pou m 'yon sèl multiple. 118 00:06:23,880 --> 00:06:27,870 Nan ka sa a li te chwazi nimewo multiple kat, multiple nan nan adrès kat, 119 00:06:27,870 --> 00:06:31,310 epi li k ap pase nan magazen an lèt kapital H nan la pou mwen. 120 00:06:31,310 --> 00:06:34,350 Si m 'Lè sa a, di vitès int limit egal 65, li nan 121 00:06:34,350 --> 00:06:36,806 ale nan mete sou kote kat bytes nan memwa pou mwen. 122 00:06:36,806 --> 00:06:39,180 Epi, se k ap pase nan trete moun kat bytes kòm yon inite sèl 123 00:06:39,180 --> 00:06:41,305 paske sa nou ap travay ak se yon nonb antye relatif isit la. 124 00:06:41,305 --> 00:06:44,350 Epi, se k ap pase nan magazen 65 an la. 125 00:06:44,350 --> 00:06:47,000 >> Koulye a, deja mwen se kalite di ou yon ti jan nan yon manti, 126 00:06:47,000 --> 00:06:50,150 dwa, paske nou konnen ke òdinatè travay nan binè. 127 00:06:50,150 --> 00:06:53,100 Yo pa konprann nesesèman sa yon H kapital la se 128 00:06:53,100 --> 00:06:57,110 oswa ki sa yon 65 se yo, yo sèlman konprann binè, zewo ak inite. 129 00:06:57,110 --> 00:06:59,000 Se konsa, aktyèlman sa nou ap estoke nan la 130 00:06:59,000 --> 00:07:03,450 se pa lèt H la ak nimewo a 65, men pito reprezantasyon yo binè 131 00:07:03,450 --> 00:07:06,980 ladan l ', ki gade yon ti kras yon bagay tankou sa a. 132 00:07:06,980 --> 00:07:10,360 Ak nan patikilye nan la kontèks nan varyab la nonb antye relatif, 133 00:07:10,360 --> 00:07:13,559 li nan pa ale nan jis krache l 'nan, li nan pa ale nan trete li kòm youn kat 134 00:07:13,559 --> 00:07:15,350 multiple moso nesesèman, li nan aktyèlman pral 135 00:07:15,350 --> 00:07:19,570 a trete li kòm kat yon sèl fragman multiple, ki ta sanble yon bagay tankou sa a. 136 00:07:19,570 --> 00:07:22,424 E menm sa a se pa totalman vre swa, 137 00:07:22,424 --> 00:07:24,840 paske yo te yon bagay rele yon endianness, nou ap pa 138 00:07:24,840 --> 00:07:26,965 pral jwenn nan kounye a, men si w ap kirye de, 139 00:07:26,965 --> 00:07:29,030 ou ka li moute sou ti kras ak gwo endianness. 140 00:07:29,030 --> 00:07:31,640 Men, pou dedomajman pou la nan agiman sa a, pou dedomajman pou la videyo sa a, 141 00:07:31,640 --> 00:07:34,860 kite yo jis asime ke se, nan reyalite, ki jan nimewo 65 la ta 142 00:07:34,860 --> 00:07:36,970 dwe reprezante nan memwa sou chak sistèm, 143 00:07:36,970 --> 00:07:38,850 byenke li a pa totalman vre. 144 00:07:38,850 --> 00:07:41,700 >> Men, kite a aktyèlman jis jwenn m de tout binè antyèman, 145 00:07:41,700 --> 00:07:44,460 ak jis panse osijè de kòm H ak 65, li nan yon anpil pi fasil 146 00:07:44,460 --> 00:07:47,900 yo reflechi sou li tankou ke kòm yon moun. 147 00:07:47,900 --> 00:07:51,420 Tout dwa, se konsa li tou sanble petèt yon ti kras o aza ki I've- sistèm m ' 148 00:07:51,420 --> 00:07:55,130 pa t 'ban m' bytes 5, 6, 7, ak 8 nan magazen nonb antye relatif la. 149 00:07:55,130 --> 00:07:58,580 Genyen yon rezon pou sa, tou, ki nou pa pral jwenn nan kounye a, men sifi 150 00:07:58,580 --> 00:08:00,496 li vle di nan ki sa òdinatè ap fè isit la 151 00:08:00,496 --> 00:08:02,810 se pwobableman yon mouvman bon sou pati li yo. 152 00:08:02,810 --> 00:08:06,020 Pou yo pa ban m 'memwa sa a, se nesesèman do nan do. 153 00:08:06,020 --> 00:08:10,490 Malgre ke li k ap pase yo fè li kounye a si mwen vle jwenn yon lòt fisèl, 154 00:08:10,490 --> 00:08:13,080 rele ti non, e mwen vle yo mete Lloyd nan la. 155 00:08:13,080 --> 00:08:18,360 Mwen pral bezwen nan anfòm yon sèl karaktè, chak lèt ​​nan sa a, se 156 00:08:18,360 --> 00:08:21,330 ale nan mande pou yon sèl karaktè, yon sèl multiple nan memwa. 157 00:08:21,330 --> 00:08:26,230 Se konsa, si mwen te kapab mete Lloyd nan etalaj mwen tankou sa a mwen se trè bon yo ale, dwa? 158 00:08:26,230 --> 00:08:28,870 Ki sa ki nan manke? 159 00:08:28,870 --> 00:08:31,840 >> Sonje ke chak fisèl nou travay ak nan C fini ak antislach zewo, 160 00:08:31,840 --> 00:08:33,339 epi nou pa kapab retire okenn pati ke isit la, swa. 161 00:08:33,339 --> 00:08:36,090 Nou bezwen mete sou kote yon sèl multiple nan memwa yo kenbe ki pou nou 162 00:08:36,090 --> 00:08:39,130 konnen lè gen fisèl nou an te fini. 163 00:08:39,130 --> 00:08:41,049 Se konsa, ankò sa a aranjman nan wout bagay sa yo 164 00:08:41,049 --> 00:08:42,799 parèt nan fòs memwa gen yon ti kras o aza, 165 00:08:42,799 --> 00:08:44,870 men li aktyèlman se ki jan pi sistèm yo fèt. 166 00:08:44,870 --> 00:08:48,330 Nan liy yo moute sou miltip nan kat, pou rezon ankò 167 00:08:48,330 --> 00:08:50,080 ke nou pa bezwen jwenn nan kounye a. 168 00:08:50,080 --> 00:08:53,060 Men, sa a, se konsa sufi li vle di ke apre twa liy sa yo nan kòd, 169 00:08:53,060 --> 00:08:54,810 sa a se sa memwa ta ka sanble. 170 00:08:54,810 --> 00:08:58,930 Si mwen bezwen kote memwa 4, 8, ak 12 yo kenbe done m 'yo, 171 00:08:58,930 --> 00:09:01,100 sa a se sa m 'ta ka gade memwa tankou. 172 00:09:01,100 --> 00:09:04,062 >> Epi jis dwe patikilyèman pedant isit la, lè 173 00:09:04,062 --> 00:09:06,020 nou ap pale de memwa adrès anjeneral nou 174 00:09:06,020 --> 00:09:08,390 se konsa lè l sèvi avèk notasyon fè ekzadesimal. 175 00:09:08,390 --> 00:09:12,030 Se konsa, poukisa pa nou konvèti tout moun sa yo soti nan desimal notasyon ekzadesimal 176 00:09:12,030 --> 00:09:15,010 jis paske sa a, se jeneralman ki jan nou al gade nan memwa. 177 00:09:15,010 --> 00:09:17,880 Se konsa, olye pou yo te 0 a 19, sa nou genyen se zewo 178 00:09:17,880 --> 00:09:20,340 x zewo a zewo x1 twa. 179 00:09:20,340 --> 00:09:23,790 Moun sa yo se 20 bytes yo nan memwa ke nou te oswa nou ap chèche a nan imaj sa a 180 00:09:23,790 --> 00:09:25,540 dwa isit la. 181 00:09:25,540 --> 00:09:29,310 >> Se konsa, nan tout sa yo te di, se pou yo etap lwen memwa pou yon dezyèm 182 00:09:29,310 --> 00:09:30,490 ak tounen yo nan endikasyon. 183 00:09:30,490 --> 00:09:32,420 Isit la se pi enpòtan an bagay yo sonje 184 00:09:32,420 --> 00:09:34,070 kòm nou kòmanse travay avèk endikasyon. 185 00:09:34,070 --> 00:09:36,314 Yon konsèy se pa gen anyen plis pase yon adrès. 186 00:09:36,314 --> 00:09:38,230 Mwen pral di l 'ankò paske li nan ki enpòtan, 187 00:09:38,230 --> 00:09:42,730 yon konsèy se pa gen anyen plis pase yon adrès. 188 00:09:42,730 --> 00:09:47,760 Endikasyon yo nan kote adrès nan memwa kote varyab ap viv la. 189 00:09:47,760 --> 00:09:52,590 Lè konnen ke li vin èspere ke yon ti jan ti kras pi fasil yo travay avèk yo. 190 00:09:52,590 --> 00:09:54,550 Yon lòt bagay mwen renmen fè se gen sòt 191 00:09:54,550 --> 00:09:58,510 a dyagram vizyèlman reprezante sa ki nan ap pase ak divès kalite liy nan kòd. 192 00:09:58,510 --> 00:10:00,660 Epitou, n ap fè sa yon koup de fwa nan endikasyon, 193 00:10:00,660 --> 00:10:03,354 ak lè nou pale sou dinamik alokasyon memwa kòm byen. 194 00:10:03,354 --> 00:10:06,020 Paske mwen panse ke sa yo dyagram kapab patikilyèman itil. 195 00:10:06,020 --> 00:10:09,540 >> Se konsa, si mwen di pou egzanp, int k nan kòd m 'yo, sa k ap pase? 196 00:10:09,540 --> 00:10:12,524 Oke sa k ap pase se fondamantalman Mwen ap resevwa memwa mete sou kote pou m ', 197 00:10:12,524 --> 00:10:14,690 men mwen pa menm renmen panse sou li tankou sa, mwen 198 00:10:14,690 --> 00:10:16,300 renmen yo reflechi sou li tankou yon bwat. 199 00:10:16,300 --> 00:10:20,090 Mwen gen yon ti bwat ak li a sifas ki gen koulè vèt paske mwen 200 00:10:20,090 --> 00:10:21,750 ka mete nonm antye relatif nan bwat vèt. 201 00:10:21,750 --> 00:10:23,666 Si li te yon karaktè mwen ta ka gen yon ti bwat ble. 202 00:10:23,666 --> 00:10:27,290 Men, mwen toujou di, si mwen kreye yon bwat ki kapab kenbe nonm antye relatif 203 00:10:27,290 --> 00:10:28,950 se ke ti bwat ki gen koulè pal vèt. 204 00:10:28,950 --> 00:10:33,020 Apre sa, mwen pran yon makè pèmanan ak mwen ekri k sou bò a nan li. 205 00:10:33,020 --> 00:10:37,590 Se konsa, mwen gen yon bwat rele k, nan ki mwen ka mete nonm antye relatif. 206 00:10:37,590 --> 00:10:41,070 Se konsa, lè m 'di Int k, sa a, se sa k ap pase nan tèt mwen. 207 00:10:41,070 --> 00:10:43,140 Si mwen di k egal senk, ki sa mwen ap fè? 208 00:10:43,140 --> 00:10:45,110 Oke, mwen mete senk nan ti bwat la, dwa. 209 00:10:45,110 --> 00:10:48,670 Sa a se trè dwat, si M 'ap di Int k, kreye yon bwat rele k. 210 00:10:48,670 --> 00:10:52,040 Si mwen di k egal 5, mete senk nan bwat la. 211 00:10:52,040 --> 00:10:53,865 Nou swete ke sa a pa twòp nan yon bon. 212 00:10:53,865 --> 00:10:55,990 Isit la nan kote bagay sa yo ale yon ti kras enteresan menm si. 213 00:10:55,990 --> 00:11:02,590 Si mwen di Int * pk, byen menm si mwen pa fè sa konnen ki sa sa a nesesèman vle di, 214 00:11:02,590 --> 00:11:06,150 li nan byen klè gen yon bagay fè ak yon nonb antye relatif. 215 00:11:06,150 --> 00:11:08,211 Se konsa, mwen pral koulè sa a ti bwat vèt-ich, 216 00:11:08,211 --> 00:11:10,210 Mwen konnen li nan te resevwa yon bagay fè ak yon nonb antye relatif, 217 00:11:10,210 --> 00:11:13,400 men li la pa yon nonb antye relatif tèt li, paske li nan yon etwal Int. 218 00:11:13,400 --> 00:11:15,390 Genyen yon bagay yon ti kras diferan sou li. 219 00:11:15,390 --> 00:11:17,620 Se konsa, yon nonb antye relatif patisipe nan, men otreman li nan 220 00:11:17,620 --> 00:11:19,830 pa twò diferan de sa nou te pale de. 221 00:11:19,830 --> 00:11:24,240 Li se yon bwat, li te resevwa yon mete etikèt sou, li nan mete yon pk mete etikèt sou, 222 00:11:24,240 --> 00:11:27,280 ak li a ki kapab kenbe zetwal int, kèlkeswa sa sa yo se. 223 00:11:27,280 --> 00:11:29,894 Yo gen yon bagay fè ak nonm antye relatif, byen klè. 224 00:11:29,894 --> 00:11:31,060 Isit la nan liy ki sot pase menm si. 225 00:11:31,060 --> 00:11:37,650 Si mwen di pk = & k, ola, sa jis rive, dwa? 226 00:11:37,650 --> 00:11:41,820 Se konsa, nimewo o aza sa a, w pèdi o aza nimewo, vin jete nan ti bwat la a. 227 00:11:41,820 --> 00:11:44,930 Tout sa ki, se pk vin adrès ki nan k. 228 00:11:44,930 --> 00:11:52,867 Se konsa, mwen rete soude kote k ap viv nan memwa, adrès li yo, adrès ki nan bytes li yo. 229 00:11:52,867 --> 00:11:55,200 Tout sa mwen ap fè se m ap di ke valè a se sa mwen pral 230 00:11:55,200 --> 00:11:59,430 yo mete andedan nan bwat mwen an rele pk. 231 00:11:59,430 --> 00:12:02,080 Epi paske bagay sa yo se endikasyon, ak paske kap 232 00:12:02,080 --> 00:12:04,955 Yon fisèl tankou zewo x uit zewo c sèt kat uit 233 00:12:04,955 --> 00:12:07,790 de zewo se pwobableman pa trè siyifikatif. 234 00:12:07,790 --> 00:12:12,390 Lè nou jeneralman visualized endikasyon, nou aktyèlman fè se konsa yo endikasyon. 235 00:12:12,390 --> 00:12:17,000 Pk ba nou enfòmasyon ki nou bezwen jwenn k nan memwa. 236 00:12:17,000 --> 00:12:19,120 Se konsa, fondamantalman pk gen yon flèch nan li. 237 00:12:19,120 --> 00:12:21,670 Men, si nou mache longè a nan ki flèch, imajine 238 00:12:21,670 --> 00:12:25,280 li nan yon bagay ou ka mache sou li a, si nou mache sou longè a nan flèch la, 239 00:12:25,280 --> 00:12:29,490 nan pwent la anpil nan ke flèch, nou pral jwenn kote a nan memwa 240 00:12:29,490 --> 00:12:31,390 kote k ap viv. 241 00:12:31,390 --> 00:12:34,360 Epi sa a, vrèman enpòtan paske yon fwa nou konnen ki kote k ap viv, 242 00:12:34,360 --> 00:12:37,870 nou kapab kòmanse yo travay avèk done yo andedan nan ki kote memwa. 243 00:12:37,870 --> 00:12:40,780 Menm si nou ap vin yon minuskul mòde devan yo nan tèt nou pou kounye a. 244 00:12:40,780 --> 00:12:42,240 >> Se konsa, ki sa ki yon konsèy? 245 00:12:42,240 --> 00:12:45,590 Yon konsèy se yon atik ki gen done valè yon adrès memwa. 246 00:12:45,590 --> 00:12:49,740 Sa te ke zewo x uit zewo bagay ale sou, sa ki te yon adrès memwa. 247 00:12:49,740 --> 00:12:52,060 Sa ki te yon kote nan memwa. 248 00:12:52,060 --> 00:12:55,080 Apre sa, ki kalite yon konsèy dekri kalite a 249 00:12:55,080 --> 00:12:56,930 nan done w ap jwenn nan ki adrès memwa. 250 00:12:56,930 --> 00:12:58,810 Se konsa, gen nan dwat a pati zetwal int. 251 00:12:58,810 --> 00:13:03,690 Si m 'swiv ki flèch, li nan ale nan mennen m 'nan yon kote. 252 00:13:03,690 --> 00:13:06,980 Epi sa kote, ki sa mwen ap jwenn gen nan egzanp mwen, 253 00:13:06,980 --> 00:13:08,240 se yon bwat vèt koulè. 254 00:13:08,240 --> 00:13:12,650 Li nan yon nonb antye relatif, se sa ki mwen ap jwenn lè m 'ale nan adrès sa. 255 00:13:12,650 --> 00:13:14,830 Kalite a done nan yon konsèy dekri sa 256 00:13:14,830 --> 00:13:17,936 ou pral jwenn nan ki adrès memwa. 257 00:13:17,936 --> 00:13:19,560 Se konsa, isit la nan bagay la vrèman fre menm si. 258 00:13:19,560 --> 00:13:25,090 Endikasyon pèmèt nou yo pase varyab ant fonksyon. 259 00:13:25,090 --> 00:13:28,520 Ak aktyèlman pase varyab epi yo pa pase kopi nan yo. 260 00:13:28,520 --> 00:13:32,879 Paske si nou konnen egzakteman ki kote nan memwa yo jwenn yon varyab, 261 00:13:32,879 --> 00:13:35,670 nou pa bezwen fè yon kopi li, nou ka jis ale ak sa yo ki kote 262 00:13:35,670 --> 00:13:37,844 ak travay ak sa varyab. 263 00:13:37,844 --> 00:13:40,260 Se konsa, nan sans endikasyon sòt a fè yon anviwònman òdinatè 264 00:13:40,260 --> 00:13:42,360 yon anpil plis tankou mond reyèl la, dwat. 265 00:13:42,360 --> 00:13:44,640 >> Se konsa, isit la nan yon analoji. 266 00:13:44,640 --> 00:13:48,080 Se pou nou di ke mwen gen yon kaye, dwa, ak li nan plen nan nòt. 267 00:13:48,080 --> 00:13:50,230 Apre sa, mwen ta renmen ou mete ajou li. 268 00:13:50,230 --> 00:13:53,960 Ou se yon fonksyon ki dènye nòt, dwat. 269 00:13:53,960 --> 00:13:56,390 Nan fason an nou te k ap travay byen lwen tèlman, ki sa 270 00:13:56,390 --> 00:14:02,370 k ap pase se ou pral pran kaye mwen, ou pral ale nan magazen an kopi, 271 00:14:02,370 --> 00:14:06,410 ou pral fè yon kopi Fotokopye a chak paj nan kaye nòt la. 272 00:14:06,410 --> 00:14:09,790 Ou ap kite Pavilion m 'lan sou biwo mwen lè w ap fè, 273 00:14:09,790 --> 00:14:14,600 ou pral ale ak travèse soti bagay sa yo nan m ' Pavilion ki soti nan dat oswa yon move, 274 00:14:14,600 --> 00:14:19,280 ak Lè sa a ou pral pase tounen nan m 'chemine a nan Fotokopye paj 275 00:14:19,280 --> 00:14:22,850 ki se yon kopi nan kaye mwen ak chanjman sa yo ki ou te fè nan li. 276 00:14:22,850 --> 00:14:27,040 Ak nan pwen sa a, li a jiska m 'menm jan fonksyon an rele, kòm moun kap rele a, 277 00:14:27,040 --> 00:14:30,582 deside pran nòt ou ak entegre yo tounen nan kaye mwen. 278 00:14:30,582 --> 00:14:32,540 Se konsa, gen nan yon anpil nan etap patisipe isit la, dwat. 279 00:14:32,540 --> 00:14:34,850 Fè tankou pa t 'vle li ka pi bon si mwen jis di, hey, ou kapab 280 00:14:34,850 --> 00:14:38,370 aktyalizasyon Pavilion mwen an pou m ', men ou Pavilion mwen, 281 00:14:38,370 --> 00:14:40,440 epi ou pran bagay sa yo ak literalman travèse yo soti 282 00:14:40,440 --> 00:14:42,810 epi mete ajou nòt m 'ki nan kaye mwen. 283 00:14:42,810 --> 00:14:45,140 Lè sa a, ban m 'kaye m' lan. 284 00:14:45,140 --> 00:14:47,320 Sa a kalite ki sa endikasyon pèmèt nou fè, 285 00:14:47,320 --> 00:14:51,320 yo fè anviwonman sa a yon anpil plis tankou ki jan nou opere nan reyalite. 286 00:14:51,320 --> 00:14:54,640 >> Tout dwa konsa se sa ki se yon konsèy, se pou yo pale 287 00:14:54,640 --> 00:14:58,040 sou ki jan endikasyon travay nan C, ak ki jan nou ka kòmanse travay avèk yo. 288 00:14:58,040 --> 00:15:02,550 Se konsa, gen nan yon konsèy trè senp nan C rele konsèy la nil. 289 00:15:02,550 --> 00:15:04,830 Pwen yo konsèy nil pa gen anyen. 290 00:15:04,830 --> 00:15:08,310 Sa a pwobableman sanble tankou li a aktyèlman pa yon bagay trè itil, 291 00:15:08,310 --> 00:15:10,500 men kòm nou pral wè yon ti kras pita sou li a, lefèt 292 00:15:10,500 --> 00:15:15,410 ki konsèy sa a nil egziste aktyèlman reyèlman ka vin an sou la men. 293 00:15:15,410 --> 00:15:19,090 Chak fwa ou kreye yon konsèy, ak ou pa mete immediately- valè li yo 294 00:15:19,090 --> 00:15:21,060 yon egzanp nan mete valè li yo imedyatman 295 00:15:21,060 --> 00:15:25,401 pral gen yon glisad koup tounen kote mwen te di pk egal & k, 296 00:15:25,401 --> 00:15:28,740 pk vin adrès k a, jan nou pral wè ki sa sa vle di, 297 00:15:28,740 --> 00:15:32,990 nou pral wè ki jan nan kòd ki shortly- si nou pa mete valè li yo nan yon bagay 298 00:15:32,990 --> 00:15:35,380 sans imedyatman, ou ta dwe toujou 299 00:15:35,380 --> 00:15:37,480 mete konsèy ou a lonje dwèt sou nil. 300 00:15:37,480 --> 00:15:40,260 Ou ta dwe mete l 'nan pwen nan pa gen anyen. 301 00:15:40,260 --> 00:15:43,614 >> Sa a trè diferan pase jis kite valè a jan li se 302 00:15:43,614 --> 00:15:45,530 ak Lè sa a deklare yon konsèy ak jis asepte 303 00:15:45,530 --> 00:15:48,042 li nan nil paske se sa raman vre. 304 00:15:48,042 --> 00:15:50,000 Se konsa, ou ta dwe toujou mete valè a nan yon konsèy 305 00:15:50,000 --> 00:15:55,690 a nil si ou pa mete valè li yo nan yon bagay ki gen sans imedyatman. 306 00:15:55,690 --> 00:15:59,090 Ou ka tcheke si valè yon konsèy nan se nil lè l sèvi avèk operatè a egalite 307 00:15:59,090 --> 00:16:05,450 (==), Jis tankou ou konpare nonb antye relatif nenpòt valè oswa karaktè valè lè l sèvi avèk (==) 308 00:16:05,450 --> 00:16:06,320 kòm byen. 309 00:16:06,320 --> 00:16:10,994 Li se yon sòt espesyal nan konstan valè ke ou ka itilize li teste. 310 00:16:10,994 --> 00:16:13,160 Se konsa, sa ki te yon trè senp konsèy, konsèy la nil. 311 00:16:13,160 --> 00:16:15,320 Yon lòt fason yo kreye yon konsèy se yo ekstrè 312 00:16:15,320 --> 00:16:18,240 adrès ki nan yon varyab ou te deja kreye, 313 00:16:18,240 --> 00:16:22,330 epi ou fè sa lè l sèvi avèk la & adrès operatè ekstraksyon. 314 00:16:22,330 --> 00:16:26,720 Ki nou te deja wè deja nan premye egzanp lan dyagram mwen te montre. 315 00:16:26,720 --> 00:16:31,450 Se konsa, si x se yon varyab ke nou te deja kreye nan kalite nonb antye relatif, 316 00:16:31,450 --> 00:16:35,110 Lè sa a, & x se yon konsèy nan yon nonb antye relatif. 317 00:16:35,110 --> 00:16:39,810 & x se- sonje, & ki pral ekstrè adrès ki nan bagay la sou bò dwat la. 318 00:16:39,810 --> 00:16:45,350 E depi yon konsèy se jis yon adrès, pase & x se yon konsèy nan yon nonb antye relatif 319 00:16:45,350 --> 00:16:48,560 valè ki gen se kote nan memwa x lavi moun. 320 00:16:48,560 --> 00:16:50,460 Li nan adrès x an. 321 00:16:50,460 --> 00:16:53,296 Se konsa, & x se adrès ki nan x. 322 00:16:53,296 --> 00:16:55,670 Se pou nou pran etap sa a yon sèl plis epi konekte nan yon bagay 323 00:16:55,670 --> 00:16:58,380 Mwen mansyone yo bay nan yon videyo anvan an. 324 00:16:58,380 --> 00:17:06,730 Si ArR se yon etalaj de double, lè sa a & ArR bracket kare m se yon konsèy 325 00:17:06,730 --> 00:17:08,109 nan yon doub. 326 00:17:08,109 --> 00:17:08,970 OK. 327 00:17:08,970 --> 00:17:12,160 vizitè ki s bracket kare m, si ArR se yon etalaj de double, 328 00:17:12,160 --> 00:17:19,069 Lè sa a, vizitè ki s bracket kare mwen se eleman nan m-th nan ki etalaj, 329 00:17:19,069 --> 00:17:29,270 ak vizitè ki s & bracket kare m se kote an memwa eleman nan m-th nan ArR egziste. 330 00:17:29,270 --> 00:17:31,790 >> Se konsa, sa ki nan enplikasyon la isit la? 331 00:17:31,790 --> 00:17:34,570 Yon Non ranje, enplikasyon a nan sa a tout bagay, 332 00:17:34,570 --> 00:17:39,290 se ke non yon etalaj la se aktyèlman tèt li yon konsèy. 333 00:17:39,290 --> 00:17:41,170 Ou te ap travay ak endikasyon tout ansanm 334 00:17:41,170 --> 00:17:45,290 chak fwa ke ou te itilize yon etalaj. 335 00:17:45,290 --> 00:17:49,090 Sonje soti nan egzanp lan sou sijè ki abòde varyab ★ 336 00:17:49,090 --> 00:17:53,420 tou pre fen a nan videyo a mwen prezante yon egzanp kote nou gen yon fonksyon 337 00:17:53,420 --> 00:17:56,890 rele seri int ak yon fonksyon rele seri etalaj. 338 00:17:56,890 --> 00:18:00,490 Ak defi ou a detèmine si wi ou non, oswa sa ki nan 339 00:18:00,490 --> 00:18:03,220 valè ke nou enprime soti nan fen fonksyon an, 340 00:18:03,220 --> 00:18:05,960 nan fen an nan pwogram nan prensipal la. 341 00:18:05,960 --> 00:18:08,740 >> Si ou sonje soti nan ki egzanp oswa si ou te ap gade videyo a, 342 00:18:08,740 --> 00:18:13,080 ou konnen ke lè nou- apèl la seri int efektivman fè pa gen anyen. 343 00:18:13,080 --> 00:18:16,390 Men, apèl la yo mete etalaj fè. 344 00:18:16,390 --> 00:18:19,280 Apre sa, mwen sòt de glossed sou poukisa ki te ka a nan moman an. 345 00:18:19,280 --> 00:18:22,363 Mwen jis di, byen li nan yon etalaj, li nan espesyal, ou konnen, gen nan yon rezon. 346 00:18:22,363 --> 00:18:25,020 Rezon ki fè la se ke yon etalaj la non se vrèman jis yon konsèy, 347 00:18:25,020 --> 00:18:28,740 ak gen nan sa a espesyal kare sentaks bracket ki 348 00:18:28,740 --> 00:18:30,510 fè bagay sa yo yon anpil joli yo travay avèk. 349 00:18:30,510 --> 00:18:34,410 Apre sa, yo fè lide a nan yon konsèy yon anpil mwens entimidasyon, 350 00:18:34,410 --> 00:18:36,800 ak Se poutèt sa yo ap sòt a prezante nan fason sa a. 351 00:18:36,800 --> 00:18:38,600 Men, reyèlman ranje yo se jis pwent. 352 00:18:38,600 --> 00:18:41,580 Epi sa a, poukisa lè nou te fè yon chanjman nan etalaj la, 353 00:18:41,580 --> 00:18:44,880 lè nou te pase yon etalaj kòm yon paramèt nan yon fonksyon oswa kòm yon agiman 354 00:18:44,880 --> 00:18:50,110 nan yon fonksyon, sa ki nan etalaj la aktyèlman chanje nan tou de aple a 355 00:18:50,110 --> 00:18:51,160 ak nan moun kap rele a. 356 00:18:51,160 --> 00:18:55,846 Ki pou tout kalite lòt kote nan varyab nou te wè pa t 'ka a. 357 00:18:55,846 --> 00:18:58,970 Se konsa, sa se sèlman yon bagay yo kenbe nan lide lè w ap travay ak endikasyon, 358 00:18:58,970 --> 00:19:01,610 se ke non an nan yon etalaj aktyèlman yon konsèy 359 00:19:01,610 --> 00:19:04,750 nan eleman nan premye nan ki etalaj. 360 00:19:04,750 --> 00:19:08,930 >> OK konsa koulye a nou gen tout bagay sa yo reyalite, se pou yo kenbe prale, dwa. 361 00:19:08,930 --> 00:19:11,370 Poukisa nou pran swen sou kote yon bagay ap viv. 362 00:19:11,370 --> 00:19:14,120 Oke tankou mwen te di, li a trè itil nan konnen ki kote yon bagay ap viv 363 00:19:14,120 --> 00:19:17,240 konsa ou ka ale la epi chanje li. 364 00:19:17,240 --> 00:19:19,390 Travay ansanm ak li ak aktyèlman gen bagay la ke ou 365 00:19:19,390 --> 00:19:23,710 vle fè ak sa yo ki efè pran varyab ★ epi yo pa pran efè sou kèk kopi li. 366 00:19:23,710 --> 00:19:26,150 Se sa yo rele dereferencing. 367 00:19:26,150 --> 00:19:28,690 Nou ale nan referans a ak nou chanje valè nan a. 368 00:19:28,690 --> 00:19:32,660 Se konsa, si nou gen yon konsèy ak sa yo rele PC, epi li lonje dwèt nan yon karaktè, 369 00:19:32,660 --> 00:19:40,610 Lè sa a, nou ka di * PC ak * PC se nan non sa nou ap jwenn si nou ale 370 00:19:40,610 --> 00:19:42,910 nan adrès PC a. 371 00:19:42,910 --> 00:19:47,860 Ki sa nou ap jwenn gen yon karaktè ak * PC se ki jan nou al gade nan done yo lè sa 372 00:19:47,860 --> 00:19:48,880 kote. 373 00:19:48,880 --> 00:19:54,150 Se konsa, nou te kapab di yon bagay tankou * PC = D oswa yon bagay tankou sa yo, 374 00:19:54,150 --> 00:19:59,280 ak sa vle di ke tou sa te nan adrès memwa PC, 375 00:19:59,280 --> 00:20:07,040 tou sa karaktè te deja la, se kounye a D, si nou di * PC = D. 376 00:20:07,040 --> 00:20:10,090 >> Se konsa, isit la nou ale ankò ak kèk C bagay etranj, dwa. 377 00:20:10,090 --> 00:20:14,560 Se konsa, nou te wè * deja tankou se te yon jan kanmenm yon pati nan kalite la done, 378 00:20:14,560 --> 00:20:17,160 e kounye a, li nan te itilize nan yon kontèks yon ti kras diferan 379 00:20:17,160 --> 00:20:19,605 jwenn aksè nan done yo nan yon kote. 380 00:20:19,605 --> 00:20:22,480 Mwen konnen li nan yon ti kras konfizyon ak sa a, se aktyèlman yon pati nan sa a tout antye 381 00:20:22,480 --> 00:20:25,740 tankou, poukisa endikasyon gen mitoloji sa a bò kote yo kòm yo te tèlman konplèks, 382 00:20:25,740 --> 00:20:28,250 se kalite yon pwoblèm sentaks, onètman. 383 00:20:28,250 --> 00:20:31,810 Men, * ki itilize nan tou de kontèks, tou de kòm yon pati nan non an kalite, 384 00:20:31,810 --> 00:20:34,100 epi nou pral wè yon ti kras pita yon lòt bagay, tou. 385 00:20:34,100 --> 00:20:36,490 E yo gen dwa kounye a se nan dèreferans operatè. 386 00:20:36,490 --> 00:20:38,760 Se konsa, li ale nan referans a, li jwenn aksè done yo 387 00:20:38,760 --> 00:20:43,000 nan kote a nan konsèy la, ak pèmèt ou manipile li nan volonte. 388 00:20:43,000 --> 00:20:45,900 >> Koulye a, sa a se trè menm jan ak vizite frè parèy ou, dwa. 389 00:20:45,900 --> 00:20:48,710 Si ou konnen ki sa ou frè parèy ap viv, w ap 390 00:20:48,710 --> 00:20:50,730 pa pandye soti ak frè parèy nou. 391 00:20:50,730 --> 00:20:53,510 Ou konnen ou rive konnen ki kote y ap viv, 392 00:20:53,510 --> 00:20:56,870 men sa pa vle di ke pa vèti nan gen konesans sa 393 00:20:56,870 --> 00:20:59,170 w ap kominike avèk yo. 394 00:20:59,170 --> 00:21:01,920 Si ou vle kominike avèk yo, ou gen yo ale nan kay yo, 395 00:21:01,920 --> 00:21:03,760 ou gen pou yo ale nan kote yo ap viv la. 396 00:21:03,760 --> 00:21:07,440 Ak yon lòt fwa ou fè sa, lè sa a ou ka kominike 397 00:21:07,440 --> 00:21:09,420 ak yo jis tankou ou ta vle. 398 00:21:09,420 --> 00:21:12,730 Apre sa, Menm jan an tou ak varyab, ou bezwen pou yo ale nan adrès yo 399 00:21:12,730 --> 00:21:15,320 si ou vle kominike yo, ou pa kapab jis konnen adrès la. 400 00:21:15,320 --> 00:21:21,495 Ak wout la ou ale nan adrès la se yo sèvi ak *, operatè a dèreferans. 401 00:21:21,495 --> 00:21:23,620 Ki sa ou panse k ap pase si nou eseye ak dèreferans 402 00:21:23,620 --> 00:21:25,260 yon konsèy ki gen valè null? 403 00:21:25,260 --> 00:21:28,470 Sonje byen, nan nil konsèy lonje dwèt nan pa gen anyen. 404 00:21:28,470 --> 00:21:34,110 Se konsa, si ou eseye epi dèreferans pa gen anyen oswa ale nan adrès yon pa gen anyen, 405 00:21:34,110 --> 00:21:36,800 ki sa ou panse k ap pase? 406 00:21:36,800 --> 00:21:39,630 Oke si ou dvine segmentation fòt, ou ta dwe gen dwa. 407 00:21:39,630 --> 00:21:41,390 Si ou eseye ak dèreferans yon konsèy nil, 408 00:21:41,390 --> 00:21:43,140 w soufri yon segmentation fòt. Men, tann, 409 00:21:43,140 --> 00:21:45,820 pa t ', m'ap di nou, ki si ou pa ap ale 410 00:21:45,820 --> 00:21:49,220 yo mete valè ou a ou konsèy nan yon bagay ki gen sans, 411 00:21:49,220 --> 00:21:51,000 ou ta dwe mete nan nil? 412 00:21:51,000 --> 00:21:55,290 M 'te fè ak aktyèlman segmentation nan fòt se kalite yon bon konpòtman. 413 00:21:55,290 --> 00:21:58,680 >> Èske w te janm deklare yon varyab ak pa asiyen valè li yo imedyatman? 414 00:21:58,680 --> 00:22:02,680 Se konsa, ou jis di Int x; ou pa fè sa aktyèlman bay li nan anyen 415 00:22:02,680 --> 00:22:05,340 ak Lè sa a pita sou nan kòd ou a, ou enprime soti valè a nan x, 416 00:22:05,340 --> 00:22:07,650 gen toujou pa asiyen li nan anyen. 417 00:22:07,650 --> 00:22:10,370 Souvan ou pral jwenn zewo, men pafwa ou 418 00:22:10,370 --> 00:22:15,000 ta ka jwenn kèk nimewo o aza, ak ou pa gen okenn lide kote li te soti nan. 419 00:22:15,000 --> 00:22:16,750 Menm jan an tou kapab bagay rive ak endikasyon. 420 00:22:16,750 --> 00:22:20,110 Lè ou deklare yon konsèy int * pk pou egzanp, 421 00:22:20,110 --> 00:22:23,490 epi ou pa bay li nan yon valè, ou jwenn kat bytes pou memwa. 422 00:22:23,490 --> 00:22:25,950 Kèlkeswa kat bytes nan memwa sistèm lan kapab 423 00:22:25,950 --> 00:22:28,970 jwenn ke gen kèk valè ki gen sans. 424 00:22:28,970 --> 00:22:31,760 Apre sa, ta ka yo te yon bagay deja la ki 425 00:22:31,760 --> 00:22:34,190 se pa nesesè ankò pa yon lòt fonksyon, kidonk, ou jis gen 426 00:22:34,190 --> 00:22:35,900 tou sa done t 'la. 427 00:22:35,900 --> 00:22:40,570 >> E si ou te eseye fè dèreferans kèk adrès ke ou te gen don't- 428 00:22:40,570 --> 00:22:43,410 deja bytes ak enfòmasyon an la, sa a, se kounye a nan konsèy ou yo. 429 00:22:43,410 --> 00:22:47,470 Si ou eseye ak dèreferans ki konsèy, ou ka pitye ak kèk memwa 430 00:22:47,470 --> 00:22:49,390 ke ou pa t 'gen entansyon dezòd ak li tout. 431 00:22:49,390 --> 00:22:51,639 Lè an reyalite ou ta ka fè yon bagay ki reyèlman devastatè, 432 00:22:51,639 --> 00:22:54,880 tankou kraze yon lòt pwogram, oswa kraze yon lòt fonksyon, 433 00:22:54,880 --> 00:22:58,289 oswa fè yon bagay move ki ou pa t 'gen entansyon fè nan tout. 434 00:22:58,289 --> 00:23:00,080 Se konsa, Se poutèt sa li a aktyèlman yon bon lide 435 00:23:00,080 --> 00:23:04,030 yo mete pwent ou a nil si ou pa mete yo nan yon bagay ki gen sans. 436 00:23:04,030 --> 00:23:06,760 Li pwobableman pi bon nan la fen nan jounen an pou pwogram ou an 437 00:23:06,760 --> 00:23:09,840 aksidan lè sa a pou li fè yon bagay ki vis moute 438 00:23:09,840 --> 00:23:12,400 yon lòt pwogram oswa yon lòt fonksyon. 439 00:23:12,400 --> 00:23:15,207 Konpòtman ki se pwobableman menm mwens ideyal pase jis vin tonbe anpàn. 440 00:23:15,207 --> 00:23:17,040 Se konsa, Se poutèt sa li a aktyèlman yon abitid bon 441 00:23:17,040 --> 00:23:20,920 jwenn nan yo mete pwent ou a nil si ou pa mete yo 442 00:23:20,920 --> 00:23:24,540 nan yon valè siyifikatif imedyatman, se yon valè ke ou konnen 443 00:23:24,540 --> 00:23:27,260 e ke ou kapab san danje dèreferans a. 444 00:23:27,260 --> 00:23:32,240 >> Se konsa nou tounen vin kounye a epi pran yon gade a sentaks la an jeneral nan sitiyasyon an. 445 00:23:32,240 --> 00:23:37,400 Si mwen di Int * p ;, kisa m 'jis fè konsa? 446 00:23:37,400 --> 00:23:38,530 Ki sa mwen te fè se sa a. 447 00:23:38,530 --> 00:23:43,290 Mwen konnen valè a nan p se yon adrès paske tout endikasyon yo se jis 448 00:23:43,290 --> 00:23:44,660 adrès. 449 00:23:44,660 --> 00:23:47,750 Mwen kapab dèreferans p lè l sèvi avèk operatè a *. 450 00:23:47,750 --> 00:23:51,250 Nan kontèks sa a isit la, nan anpil nan tèt sonje * a se yon pati nan kalite la. 451 00:23:51,250 --> 00:23:53,510 Int * se tip ki done. 452 00:23:53,510 --> 00:23:56,150 Men, mwen kapab dèreferans p lè l sèvi avèk operatè a *, 453 00:23:56,150 --> 00:24:01,897 ak si mwen fè sa, lè m 'ale nan adrès sa, ki sa ki pral mwen jwenn nan adrès sa? 454 00:24:01,897 --> 00:24:02,855 Mwen pral jwenn yon nonb antye relatif. 455 00:24:02,855 --> 00:24:05,910 Se konsa, int * p se fondamantalman li di yo: p se yon adrès. 456 00:24:05,910 --> 00:24:09,500 Mwen kapab dèreferans p epi si M 'fè, mwen pral jwenn yon nonb antye relatif 457 00:24:09,500 --> 00:24:11,920 nan ki kote memwa. 458 00:24:11,920 --> 00:24:14,260 >> OK Se konsa, mwen te di te gen yon lòt anmèdan bagay ak zetwal 459 00:24:14,260 --> 00:24:17,060 ak isit la a kote ki anmèdan bagay ak zetwal se. 460 00:24:17,060 --> 00:24:21,640 Èske w te janm te eseye deklare miltip varyab nan kalite la menm 461 00:24:21,640 --> 00:24:24,409 sou liy lan menm nan Kòd? 462 00:24:24,409 --> 00:24:27,700 Se konsa, pou yon dezyèm fwa, pretann ke liy lan, kòd a mwen aktyèlman gen gen la nan vèt 463 00:24:27,700 --> 00:24:29,366 se pa la epi li jis di int x, y, z ;. 464 00:24:29,366 --> 00:24:31,634 465 00:24:31,634 --> 00:24:34,550 Ki sa ki ta fè se aktyèlman kreye twa varyab nonb antye relatif pou ou, 466 00:24:34,550 --> 00:24:36,930 yon sèl rele x, yon sèl rele y, ak youn rele z. 467 00:24:36,930 --> 00:24:41,510 Li se yon fason yo fè li san yo pa gen fann sou twa liy yo. 468 00:24:41,510 --> 00:24:43,890 >> Isit la nan kote zetwal jwenn anmèdan ankò menm si, 469 00:24:43,890 --> 00:24:49,200 paske * a se aktyèlman yon pati nan tou de non an kalite ak pati 470 00:24:49,200 --> 00:24:50,320 nan non an varyab. 471 00:24:50,320 --> 00:24:56,430 Se konsa, si mwen di Int * PX, d, PZ, ki sa mwen aktyèlman jwenn se yon konsèy nan yon nonb antye relatif 472 00:24:56,430 --> 00:25:01,650 rele PX ak de nonm antye relatif, d ak PZ. 473 00:25:01,650 --> 00:25:04,950 Epi sa a, pwobableman pa sa nou vle, sa a, se pa bon. 474 00:25:04,950 --> 00:25:09,290 >> Se konsa, si mwen vle kreye miltip endikasyon sou liy lan menm, nan kalite la menm, 475 00:25:09,290 --> 00:25:12,140 ak zetwal, ki sa mwen aktyèlman bezwen fè se di Int * PA, * pb, * PC. 476 00:25:12,140 --> 00:25:17,330 477 00:25:17,330 --> 00:25:20,300 Koulye a, li te gen jis te di ke e kounye a, di ou sa a, 478 00:25:20,300 --> 00:25:22,170 pwobableman ou pa janm ap fè sa. 479 00:25:22,170 --> 00:25:25,170 Apre sa, li la pwobableman yon bon bagay onètman, paske ou ta ka inadvèrtans 480 00:25:25,170 --> 00:25:26,544 retire okenn pati yon etwal, yon bagay tankou sa. 481 00:25:26,544 --> 00:25:29,290 Li pwobableman pi bon yo petèt deklare endikasyon sou liy endividyèl, 482 00:25:29,290 --> 00:25:31,373 men li la jis yon lòt youn nan tout sa yo anmèdan sentaks 483 00:25:31,373 --> 00:25:35,310 bagay sa yo ak zetwal ki fè endikasyon konsa pou sa difisil yo travay avèk. 484 00:25:35,310 --> 00:25:39,480 Paske li nan jis Massachusetts Institute of Technology sa a dezòd ou gen nan travay nan. 485 00:25:39,480 --> 00:25:41,600 Avèk pratik li fè sa reyèlman vin dezyèm nati. 486 00:25:41,600 --> 00:25:45,410 Mwen toujou fè erè ak li toujou apre pwogram pou 10 zan, 487 00:25:45,410 --> 00:25:49,630 Se konsa, pa bezwen pran lapenn yon bagay k ap pase si nou la a, li a trè komen onètman. 488 00:25:49,630 --> 00:25:52,850 Li nan reyèlman kalite yon defo nan sentaks la. 489 00:25:52,850 --> 00:25:54,900 >> OK Se konsa, mwen kalite te pwomèt ke nou ta revize 490 00:25:54,900 --> 00:25:59,370 konsèp nan ki jan gwo se yon fisèl. 491 00:25:59,370 --> 00:26:02,750 Oke si mwen te di nou ke yon fisèl, nou te reyèlman kalite 492 00:26:02,750 --> 00:26:04,140 te kouche ba ou tan nan tout antye. 493 00:26:04,140 --> 00:26:06,181 Gen nan pa gen kalite done yo rele fisèl, ak nan reyalite mwen 494 00:26:06,181 --> 00:26:09,730 mansyone sa a nan youn nan nou an pi bonè videyo sou kalite done, 495 00:26:09,730 --> 00:26:13,820 ki fisèl se te yon kalite done ki te kreye pou ou nan cs50.h. 496 00:26:13,820 --> 00:26:17,050 Ou gen # enkli Cs50.h yo nan lòd yo sèvi ak li. 497 00:26:17,050 --> 00:26:19,250 >> Oke fisèl se reyèlman jis yon alyas pou yon bagay 498 00:26:19,250 --> 00:26:23,600 rele Char * a, yon konsèy nan yon karaktè. 499 00:26:23,600 --> 00:26:26,010 Oke endikasyon, sonje, yo se jis adrese. 500 00:26:26,010 --> 00:26:28,780 Se konsa, sa se gwosè a nan bytes nan yon fisèl? 501 00:26:28,780 --> 00:26:29,796 Oke li nan kat oswa uit. 502 00:26:29,796 --> 00:26:32,170 Ak rezon an mwen di kat oswa uit se paske li aktyèlman 503 00:26:32,170 --> 00:26:36,730 depann sou sistèm nan, Si w ap lè l sèvi avèk CS50 IDE, Char * se gwosè a nan yon Char 504 00:26:36,730 --> 00:26:39,340 * Se uit, li nan yon sistèm 64-ti jan. 505 00:26:39,340 --> 00:26:43,850 Chak adrès nan memwa se 64 Bits lontan. 506 00:26:43,850 --> 00:26:48,270 Si w ap lè l sèvi avèk aparèy CS50 oswa lè l sèvi avèk nenpòt machin 32-ti jan, 507 00:26:48,270 --> 00:26:51,640 epi ou te konn tande ke tèm 32-ti jan machin, ki sa ki yon machin 32-ti jan? 508 00:26:51,640 --> 00:26:56,090 Oke li jis vle di ke chak adrès nan memwa se 32 Bits lontan. 509 00:26:56,090 --> 00:26:59,140 Se konsa, 32 Bits se kat bytes. 510 00:26:59,140 --> 00:27:02,710 Se konsa, yon Char * se kat oswa uit bytes depann sou sistèm ou an. 511 00:27:02,710 --> 00:27:06,100 Ak tout bon nenpòt kalite done, ak yon konsèy nan nenpòt done 512 00:27:06,100 --> 00:27:12,030 tape, depi tout endikasyon yo se jis adrès, yo se kat oswa uit bytes. 513 00:27:12,030 --> 00:27:14,030 Se konsa an n revize sa a dyagram e kite yo konkli 514 00:27:14,030 --> 00:27:18,130 videyo sa a ak yon ti kras fè egzèsis isit la. 515 00:27:18,130 --> 00:27:21,600 Se konsa, isit la nan dyagram nan nou te kite koupe ak nan kòmansman la anpil nan videyo a. 516 00:27:21,600 --> 00:27:23,110 Se konsa, sa k ap pase kounye a si mwen di * pk = 35? 517 00:27:23,110 --> 00:27:26,370 518 00:27:26,370 --> 00:27:30,530 Se konsa, sa sa vle di lè m 'di, * pk = 35? 519 00:27:30,530 --> 00:27:32,420 Pran yon dezyèm fwa. 520 00:27:32,420 --> 00:27:34,990 * pk. 521 00:27:34,990 --> 00:27:39,890 Nan kontèks isit la, * se dèreferans operatè. 522 00:27:39,890 --> 00:27:42,110 Se konsa, lè a dèreferans se operatè itilize, 523 00:27:42,110 --> 00:27:48,520 nou ale nan adrès la pwente nan pa pk, epi nou chanje sa nou jwenn. 524 00:27:48,520 --> 00:27:55,270 Se konsa, * pk = 35 efektivman fè bagay sa a nan foto a. 525 00:27:55,270 --> 00:27:58,110 Se konsa, li fondamantalman syntactically ki idantik ak yo ki te di k = 35. 526 00:27:58,110 --> 00:28:00,740 527 00:28:00,740 --> 00:28:01,930 >> Youn nan pi plis. 528 00:28:01,930 --> 00:28:05,510 Si mwen di Int m, mwen kreye yon varyab rele m nouvo. 529 00:28:05,510 --> 00:28:08,260 Yon nouvo bwat, li nan yon ti bwat vèt paske li k ap pase yo kenbe yon nonb antye relatif, 530 00:28:08,260 --> 00:28:09,840 ak li a ki make m. 531 00:28:09,840 --> 00:28:14,960 Si mwen di m = 4, mwen mete yon nonb antye relatif nan ki bwat. 532 00:28:14,960 --> 00:28:20,290 Si di pk = & m, ki jan fè sa a chanjman dyagram? 533 00:28:20,290 --> 00:28:28,760 Pk = & m, fè ou sonje ki sa a & Operatè fè oswa yo rele? 534 00:28:28,760 --> 00:28:34,430 Sonje ke & kèk Non varyab se adrès ki nan yon non varyab. 535 00:28:34,430 --> 00:28:38,740 Se konsa, sa nou ap di la a se pk vin adrès la nan m. 536 00:28:38,740 --> 00:28:42,010 Se konsa, sa k ap pase nan efektivman dyagram se ke pk pa pwen 537 00:28:42,010 --> 00:28:46,420 k, men pwen nan m. 538 00:28:46,420 --> 00:28:48,470 >> Yon fwa ankò endikasyon yo trè difisil yo travay avèk 539 00:28:48,470 --> 00:28:50,620 epi yo pran yon anpil nan pratik, men paske 540 00:28:50,620 --> 00:28:54,150 a kapasite yo nan pèmèt ou yo pase ant fonksyon done 541 00:28:54,150 --> 00:28:56,945 ak aktyèlman gen sa yo chanjman pran efè, 542 00:28:56,945 --> 00:28:58,820 ap resevwa tèt ou otou se reyèlman enpòtan. 543 00:28:58,820 --> 00:29:02,590 Li pwobableman se pi konplike nan sijè nou diskite nan CS50, 544 00:29:02,590 --> 00:29:05,910 men valè a ke ou soti nan lè l sèvi avèk endikasyon jwenn 545 00:29:05,910 --> 00:29:09,200 byen lwen depas konplikasyon ki ki soti nan aprann yo. 546 00:29:09,200 --> 00:29:12,690 Se konsa, mwen swete w pi bon an nan chans aprann sou endikasyon. 547 00:29:12,690 --> 00:29:15,760 Mwen se Doug Lloyd, sa a se CS50. 548 00:29:15,760 --> 00:29:17,447