1 00:00:00,000 --> 00:00:00,960 2 00:00:00,960 --> 00:00:03,360 >> [MUSIC Playing] 3 00:00:03,360 --> 00:00:11,050 4 00:00:11,050 --> 00:00:12,065 >> Davin: Në rregull, djema. 5 00:00:12,065 --> 00:00:13,642 6 00:00:13,642 --> 00:00:15,350 Pra, kjo është përmbledhje për quiz e parë. 7 00:00:15,350 --> 00:00:17,751 Është e të gjithë të gatshëm për të quiz të mërkurën? 8 00:00:17,751 --> 00:00:18,292 ALLISON: Woo! 9 00:00:18,292 --> 00:00:18,743 STUDENT: Woo! 10 00:00:18,743 --> 00:00:19,242 Davin: Po. 11 00:00:19,242 --> 00:00:19,920 ALLISON: Po! 12 00:00:19,920 --> 00:00:20,920 Davin: Ky djalë është gati. 13 00:00:20,920 --> 00:00:22,200 Ky djalë, dy duart, e bukur. 14 00:00:22,200 --> 00:00:23,234 15 00:00:23,234 --> 00:00:25,900 Pra shqyrtim quiz sot, kjo do të jetë rreth një orë e gjysmë. 16 00:00:25,900 --> 00:00:27,940 Ne jemi duke shkuar për të shkuar mbi të gjitha i madh konceptet që ju duhet të dini për quiz. 17 00:00:27,940 --> 00:00:31,434 Ne jemi duke shkuar për të shkuar mbi disa kodim nga shembuj dore, të cilat janë në çdo quiz. 18 00:00:31,434 --> 00:00:34,350 Dhe në qoftë se ju keni pyetje, mos ngurroni për të ngritur dorën tuaj dhe çdo gjë 19 00:00:34,350 --> 00:00:34,945 si kjo. 20 00:00:34,945 --> 00:00:36,695 E pra, logjistikës për quiz online. 21 00:00:36,695 --> 00:00:38,450 Pra, ne jemi duke shkuar për të ndarë njerëzit deri në dhoma të ndryshme. 22 00:00:38,450 --> 00:00:39,491 Është e bazuar në emrin e tyre. 23 00:00:39,491 --> 00:00:43,630 Pra, nëse ju keni ndonjë pyetje në lidhje me ku për të shkuar ose në lidhje me çfarë materiali është, si, 24 00:00:43,630 --> 00:00:46,810 fjalë zyrtare mbi atë që po ndodh të jetë në quiz, kontrolloni online. 25 00:00:46,810 --> 00:00:48,420 Dhe kjo është e gjitha deri tani. 26 00:00:48,420 --> 00:00:51,280 Pra, nëse nuk ka pyetje për të fillojë me të, ne jemi duke shkuar për të filluar. 27 00:00:51,280 --> 00:00:52,790 28 00:00:52,790 --> 00:00:53,710 Dhe këtu është Allison. 29 00:00:53,710 --> 00:00:56,060 30 00:00:56,060 --> 00:00:57,000 >> [Rreh] 31 00:00:57,000 --> 00:00:59,300 >> ALLISON: OK, faleminderit, Rob. 32 00:00:59,300 --> 00:01:00,280 Appreciate it. 33 00:01:00,280 --> 00:01:01,350 34 00:01:01,350 --> 00:01:03,050 Davin duhej kthyer për këtë. 35 00:01:03,050 --> 00:01:07,240 Kjo është lista jo e plotë e Temat, si gjithmonë, sa Davin thënë vetëm. 36 00:01:07,240 --> 00:01:10,860 Konsultoni dokumentacionin në internet në lidhje quiz zero. 37 00:01:10,860 --> 00:01:13,680 Por kjo është shumë e much-- kjo është në planin mësimor 38 00:01:13,680 --> 00:01:15,550 është çdo gjë që ne kemi shkuar mbi deri tani. 39 00:01:15,550 --> 00:01:18,290 Çdo gjë këtu është lojë të ndershme, si dhe çdo gjë tjetër 40 00:01:18,290 --> 00:01:21,380 që mund të ketë qenë i përmendur në leksion. 41 00:01:21,380 --> 00:01:25,070 >> Seksioni im, këtu, është vetëm një shumë e shqyrtimit. 42 00:01:25,070 --> 00:01:27,775 Ka ushtrime çift se ju djema mund të punojnë në. 43 00:01:27,775 --> 00:01:30,650 Por, për pjesën më të madhe, me të vërtetë doni të merrni në Davin me ato kodin 44 00:01:30,650 --> 00:01:31,710 me ushtrime dore. 45 00:01:31,710 --> 00:01:33,940 >> Kështu që unë jam duke shkuar për të fluturojnë me këtë. 46 00:01:33,940 --> 00:01:36,330 Nëse keni ndonjë pyetje, të ndaluar mua. 47 00:01:36,330 --> 00:01:37,270 Ngritja dorën tuaj. 48 00:01:37,270 --> 00:01:39,250 Unë premtoj unë ndoshta do të shihemi. 49 00:01:39,250 --> 00:01:41,042 Nëse jo, vetëm të tundë atë rreth. 50 00:01:41,042 --> 00:01:42,250 Unë jam duke shkuar për të folur të shpejtë. 51 00:01:42,250 --> 00:01:43,950 Unë shpresoj se gjithkush është në rregull me këtë. 52 00:01:43,950 --> 00:01:48,020 >> OK, fjalë të veçantë, Davin natyrisht harruar të shfletoj nëpër këto slides. 53 00:01:48,020 --> 00:01:51,880 [Qesh] Ju jeni në telashe, njeri. 54 00:01:51,880 --> 00:01:55,770 Pra, këshilla për quiz zero, praktikë coding në letër. 55 00:01:55,770 --> 00:01:58,950 Ju djema do të merrni disa praktikë me atë tani me Davin, 56 00:01:58,950 --> 00:02:00,655 kështu që ju nuk do të jetë plotësisht me veten. 57 00:02:00,655 --> 00:02:03,030 Unë mendoj se ne jemi në të vërtetë duke shkuar përmes këtyre dy funksioneve. 58 00:02:03,030 --> 00:02:04,500 Pra, ju do të jenë të përgatitur mirë atje. 59 00:02:04,500 --> 00:02:05,958 >> Të jenë të njohur me grupe tuaj problem. 60 00:02:05,958 --> 00:02:08,150 Ka pasur pyetje në kuize e mëparshme 61 00:02:08,150 --> 00:02:12,680 që do të ju pyes, për shembull, për kodin up diçka shumë të ngjashme me Mario. 62 00:02:12,680 --> 00:02:15,060 Pra, është shumë i njohur me problemi juaj përcakton, si edhe 63 00:02:15,060 --> 00:02:17,827 si pyetje ne ju kërkojmë në fillim në formë 64 00:02:17,827 --> 00:02:19,660 që ju të plotësoni, do të t'ju shërbejnë shumë mirë. 65 00:02:19,660 --> 00:02:20,940 66 00:02:20,940 --> 00:02:23,380 >> Bëni një quiz mëparshme nën kufizimet kohore. 67 00:02:23,380 --> 00:02:25,430 Këto kuize janë të gjata. 68 00:02:25,430 --> 00:02:26,850 Koha kalon me të vërtetë të shpejtë. 69 00:02:26,850 --> 00:02:30,480 Dhe shpesh, ju nuk e kuptojnë se si shpejt ajo shkon deri në ju në të vërtetë 70 00:02:30,480 --> 00:02:32,180 vënë veten nën këto kufizime. 71 00:02:32,180 --> 00:02:36,500 Pra, nëse ju vetëm mund të ndërtoj, ju e dini, 75 minuta, ose sonte ose nesër 72 00:02:36,500 --> 00:02:41,020 për të marrë një nga këto kuize nën që, ju do të jetë në formë shumë më të mirë. 73 00:02:41,020 --> 00:02:43,060 >> Dhe gjithashtu, duke krijuar fletë tuaj të referencës. 74 00:02:43,060 --> 00:02:45,290 Mos harroni, ju merrni një të tillë Faqja e para dhe mbrapa 75 00:02:45,290 --> 00:02:47,040 si referencë për quiz tuaj mërkurën. 76 00:02:47,040 --> 00:02:49,074 Krijimi kjo është një mënyrë e madhe për të studiuar. 77 00:02:49,074 --> 00:02:51,990 Çdo gjë që ju jeni të paturit probleme me ju dëshironi që të përfshijë në atje. 78 00:02:51,990 --> 00:02:55,627 Çdo gjë që NGP tuaj kanë qenë, si, kjo është me të vërtetë e rëndësishme. 79 00:02:55,627 --> 00:02:57,960 Ju duhet të dini këtë, janë ndoshta gjërat që ju keni në atje 80 00:02:57,960 --> 00:02:59,931 në qoftë se ju nuk keni ta memorizuar. 81 00:02:59,931 --> 00:03:02,680 Edhe në qoftë se ju e dini ata me të vërtetë mirë, nganjëherë duke pasur atë në atje 82 00:03:02,680 --> 00:03:07,030 është lloj i vetëm rehati për ju, të cilën unë e di kuize janë stresues. 83 00:03:07,030 --> 00:03:09,260 Pra, çdo rehati që ju merrni mund të ndihmoni. 84 00:03:09,260 --> 00:03:13,072 Të gjithë të drejtë, gjithashtu, të merrni fle dhe hani dhe si gjërat normale 85 00:03:13,072 --> 00:03:14,280 që ne të ju them për kuize. 86 00:03:14,280 --> 00:03:16,320 87 00:03:16,320 --> 00:03:18,890 >> Pra, duke filluar off lehtë, tipet e te dhenave dhe madhësive. 88 00:03:18,890 --> 00:03:22,720 Siç e thashë, kjo është vetëm duke shkuar që do të më hedhur një shumë të gjëra 89 00:03:22,720 --> 00:03:24,320 deri këtu që ju duhet të dini. 90 00:03:24,320 --> 00:03:27,600 Pra, ne kemi chars tona që janë një bajt, ints 91 00:03:27,600 --> 00:03:30,390 se katër bytes, e gjatë të gjatë, të cilat janë tetë bytes. 92 00:03:30,390 --> 00:03:33,280 Në thelb, kjo është vetëm ju duan të mbajnë integers mëdha. 93 00:03:33,280 --> 00:03:35,490 Gjithandej, të cilat janë katër, dyshe, të cilat janë tetë. 94 00:03:35,490 --> 00:03:38,150 Përsëri, vetëm ju jep më shumë hapësirë ​​për gjithandej tuaj. 95 00:03:38,150 --> 00:03:41,290 Dhe pastaj shtypni yll, kështu që çdo treguesin mbi një makinë 32-bit, 96 00:03:41,290 --> 00:03:44,650 e cila është e gjitha që ju djema kanë nevojë të di, është katër bytes. 97 00:03:44,650 --> 00:03:46,542 >> Pra, të gjitha gjërat që ju duhet e di, ndoshta gjërat 98 00:03:46,542 --> 00:03:48,250 ju dëshironi të keni në fletë tuaj reference. 99 00:03:48,250 --> 00:03:50,350 100 00:03:50,350 --> 00:03:53,520 OK, konvertimit binar në binar, konvertimit 101 00:03:53,520 --> 00:03:56,860 në heksadecimal, mbrapa dhe me radhë, të gjitha gjërat që ju duhet të dini. 102 00:03:56,860 --> 00:03:59,480 Pra, nga binar në decimal. 103 00:03:59,480 --> 00:04:03,309 Ju djema duan të marrin një minutë të shpejtë dhe të përpiqen dhe të kuptoj se secili prej tyre 104 00:04:03,309 --> 00:04:04,600 dhe pastaj më thoni se çfarë janë? 105 00:04:04,600 --> 00:04:06,500 106 00:04:06,500 --> 00:04:10,240 >> Unë gjithashtu kanë karamele në çantën time, kështu që kushdo që përgjigjet merr karamele, nga rruga. 107 00:04:10,240 --> 00:04:13,560 108 00:04:13,560 --> 00:04:14,480 Dhe unë kam shumë prej tij. 109 00:04:14,480 --> 00:04:15,760 110 00:04:15,760 --> 00:04:16,870 Më lejoni të rrëmbyer këtë. 111 00:04:16,870 --> 00:04:18,480 Unë jam duke shkuar për të dhënë këtë për Gabe. 112 00:04:18,480 --> 00:04:21,829 Kështu që ju mund të dorë nga karamele kushdo që është e bukur dhe bashkëpunuese. 113 00:04:21,829 --> 00:04:23,490 >> OK, unë pashë një dorë aty në shpinë. 114 00:04:23,490 --> 00:04:26,418 115 00:04:26,418 --> 00:04:28,370 >> STUDENT: Po, e para është 42. 116 00:04:28,370 --> 00:04:30,280 >> ALLISON: Po, e para është 42, e saktë. 117 00:04:30,280 --> 00:04:31,163 118 00:04:31,163 --> 00:04:32,038 STUDENT: [padëgjueshme]. 119 00:04:32,038 --> 00:04:34,810 [Qeshura] 120 00:04:34,810 --> 00:04:37,030 ALLISON: dyti një, atje mbrapa në të verdhë? 121 00:04:37,030 --> 00:04:38,910 STUDENT: 110.010. 122 00:04:38,910 --> 00:04:43,410 ALLISON: Saktë, dhe kjo e fundit, këtu poshtë në pjesën e poshtme? 123 00:04:43,410 --> 00:04:44,570 Gjithashtu, vërtet, ju e dini dëshironi? 124 00:04:44,570 --> 00:04:45,550 Vetëm hedhje out karamele. 125 00:04:45,550 --> 00:04:46,483 Si për karamele për të gjithë? 126 00:04:46,483 --> 00:04:47,510 >> STUDENT: [padëgjueshme], kur ne jemi duke bërë. 127 00:04:47,510 --> 00:04:48,051 >> ALLISON: Shh. 128 00:04:48,051 --> 00:04:49,380 129 00:04:49,380 --> 00:04:50,910 Dhe pastaj ai i fundit. 130 00:04:50,910 --> 00:04:52,000 Kush dëshiron të përgjigjesh? 131 00:04:52,000 --> 00:04:52,744 Të drejtë atje. 132 00:04:52,744 --> 00:04:54,480 >> STUDENT: 11.100. 133 00:04:54,480 --> 00:04:56,820 >> ALLISON: 11.100, shikoni në atë. 134 00:04:56,820 --> 00:04:58,790 Urime, punë e madhe, të gjithë. 135 00:04:58,790 --> 00:05:03,370 OK, të gjithë llojet e kuptojnë Procesi për të bërë këtë? 136 00:05:03,370 --> 00:05:08,700 Ju keni, duke shkuar nga binar në decimal mënyrë unë priren për të bërë atë, është shkruar nga 137 00:05:08,700 --> 00:05:09,920 fuqitë e 2. 138 00:05:09,920 --> 00:05:18,350 Kështu që unë them, OK, 0 herë 2-0, kështu që që është 0, 1 herë 2 të parë, 139 00:05:18,350 --> 00:05:21,400 është 2 shkon më tutje në këtë mënyrë. 140 00:05:21,400 --> 00:05:25,790 A ka dikush doni mua për të në mënyrë të qartë të kalojnë nëpër një shembull i binar? 141 00:05:25,790 --> 00:05:26,840 142 00:05:26,840 --> 00:05:28,140 OK, cool. 143 00:05:28,140 --> 00:05:30,390 >> Dhjeta në binar është shumë i ngjashëm. 144 00:05:30,390 --> 00:05:31,550 145 00:05:31,550 --> 00:05:33,630 Unë priren për të shkruar nga fuqitë e 2. 146 00:05:33,630 --> 00:05:38,660 Filloni me atë që është më i madhi, por nuk do të kaloj dhjetore 147 00:05:38,660 --> 00:05:39,710 që ju jeni duke kërkuar për. 148 00:05:39,710 --> 00:05:42,870 Dhe pastaj lloj të punojnë në rrugën tuaj prapa duke shtuar gjëra të nevojshme. 149 00:05:42,870 --> 00:05:45,200 >> Dhe pastaj me tepër, kjo është ashtu si tepër normale. 150 00:05:45,200 --> 00:05:51,110 Nëse ndonjëherë keni rastin kur ju jeni duke shtuar dy 1s, ai padyshim bëhet 2. 151 00:05:51,110 --> 00:05:56,875 2 në binar tani është 1 0 kështu që ju duhet për të kryer 1 tuaj në kolonën e ardhshëm. 152 00:05:56,875 --> 00:05:57,375 Ftohtë. 153 00:05:57,375 --> 00:05:59,220 154 00:05:59,220 --> 00:06:03,240 >> Heksadecimal, kjo mund të jetë diçka që është pak më pak të njohur. 155 00:06:03,240 --> 00:06:06,600 Pra, si Rob ishte vetëm duke u thënë mua paraprakisht, trick tij për këtë 156 00:06:06,600 --> 00:06:10,210 është vetëm për të ndarë atë në katër chunks byte, OK? 157 00:06:10,210 --> 00:06:11,050 Bits, sorry. 158 00:06:11,050 --> 00:06:11,720 Shih? 159 00:06:11,720 --> 00:06:12,220 Faleminderit Rob. 160 00:06:12,220 --> 00:06:15,874 Kjo është arsyeja pse ju jeni këtu. [ZHURMA] OK, kështu që ne vetëm të prishur atë 161 00:06:15,874 --> 00:06:16,790 në katër bit chunks. 162 00:06:16,790 --> 00:06:21,570 Pra, me binare në heksadecimal, ne shikojmë në të parë 4, 163 00:06:21,570 --> 00:06:25,573 e cila është në qoftë se ne kemi katër 1s në a rresht, çfarë numri bën që simbolizon? 164 00:06:25,573 --> 00:06:26,540 >> STUDENT: F. 165 00:06:26,540 --> 00:06:32,751 >> ALLISON: Pra, në këtë rast, çfarë është 11111111 or-- po? 166 00:06:32,751 --> 00:06:33,250 STUDENT: FF. 167 00:06:33,250 --> 00:06:34,600 ALLISON: Perfect, FF. 168 00:06:34,600 --> 00:06:36,900 Aq e madhe, karamele për ju. 169 00:06:36,900 --> 00:06:41,100 Tani, për sa hexadecimal të Binary, ne vetëm mendoj për këtë lloj në të kundërt. 170 00:06:41,100 --> 00:06:46,420 Për çdo numër apo letër atë ne kemi në heksadecimal tonë, 171 00:06:46,420 --> 00:06:53,930 vetëm për të kthyer atë në katër bit e saj [Qesh] për konvertimin e katër bit. 172 00:06:53,930 --> 00:06:58,696 Kështu 5, në këtë rast, ajo është 5 nëse ne jemi përfaqësuar me katër bit? 173 00:06:58,696 --> 00:06:59,608 >> STUDENT: 010? 174 00:06:59,608 --> 00:07:00,520 Mm-HM. 175 00:07:00,520 --> 00:07:03,605 Dhe pastaj A, e cila është në të vërtetë 10, do të jetë? 176 00:07:03,605 --> 00:07:06,230 177 00:07:06,230 --> 00:07:08,040 1010. 178 00:07:08,040 --> 00:07:09,670 Pra, ne kemi atë, këtu. 179 00:07:09,670 --> 00:07:13,990 Pra, konvertimin në mes heksadecimal dhe binar të vërtetë nuk është edhe aq keq. 180 00:07:13,990 --> 00:07:16,565 Nëse ju shikoni në atë në katër bit chunks, do të jetë e artë. 181 00:07:16,565 --> 00:07:18,330 182 00:07:18,330 --> 00:07:19,300 Everyone-- po? 183 00:07:19,300 --> 00:07:21,903 >> Rob: Kjo është pa kuptim, por unë gjithmonë kujtohet 184 00:07:21,903 --> 00:07:23,500 A, pasi A është menduar të jetë 10. 185 00:07:23,500 --> 00:07:26,230 Dhe binar është vetëm 10 10, so-- 186 00:07:26,230 --> 00:07:27,310 >> ALLISON: Ah, atje ne do të shkojmë. 187 00:07:27,310 --> 00:07:28,615 >> Rob: Hey. 188 00:07:28,615 --> 00:07:30,020 >> ALLISON: Hey, karamele për Rob. 189 00:07:30,020 --> 00:07:31,707 190 00:07:31,707 --> 00:07:33,290 Ka gjëra jo-çokollatë në atje. 191 00:07:33,290 --> 00:07:34,180 Kështu që ju mund të ketë disa. 192 00:07:34,180 --> 00:07:35,790 193 00:07:35,790 --> 00:07:36,760 Math kështu ASCII. 194 00:07:36,760 --> 00:07:38,206 195 00:07:38,206 --> 00:07:38,705 Sillen. 196 00:07:38,705 --> 00:07:40,630 197 00:07:40,630 --> 00:07:44,720 Pra ASCII matematikës, si ju djema ndoshta edhe mos harroni 198 00:07:44,720 --> 00:07:48,480 p vendosur 2 me Visioneer dhe Cezari, keni bërë shumë për këtë. 199 00:07:48,480 --> 00:07:49,610 200 00:07:49,610 --> 00:07:51,980 Mos harroni, personazhet janë rrënjësisht vetëm numra. 201 00:07:51,980 --> 00:07:54,780 Pra, ne mund të bëjmë matematikë me ta, ashtu si ne bëjmë matematikë me ints. 202 00:07:54,780 --> 00:07:58,090 >> Pra, ne kemi vetëm pak gjë e thjeshtë këtu. 203 00:07:58,090 --> 00:08:00,940 Ne kemi disa në një që është e nisur në 65. 204 00:08:00,940 --> 00:08:07,440 Dhe B barabartë me vlerën ASCII të A plus 1, char C barabartë me D minus 1, 205 00:08:07,440 --> 00:08:09,060 dhe char D barabartë me 68. 206 00:08:09,060 --> 00:08:13,130 Pra, atëherë ne do të shtypura të gjithë ata, si ne shohim këtu. 207 00:08:13,130 --> 00:08:15,650 Dhe dikush mund të më thoni Çfarë kjo do të shtypura nga? 208 00:08:15,650 --> 00:08:17,335 209 00:08:17,335 --> 00:08:18,210 STUDENT: [padëgjueshme]. 210 00:08:18,210 --> 00:08:20,540 ALLISON: Pikërisht, kështu një gjë në njoftim është i 211 00:08:20,540 --> 00:08:22,900 se ne jemi të shtypjes nga karaktere çdo kohë, këtu. 212 00:08:22,900 --> 00:08:28,290 Ne jemi përcaktimin edhe pse A dhe B janë ints kur deklaroi ato më lart. 213 00:08:28,290 --> 00:08:32,870 Ne jemi shtypjen e tyre si karaktere nga qind C dhe deklarata jonë printf, 214 00:08:32,870 --> 00:08:34,610 në mënyrë që ata të gjithë do të shtypura si karaktere. 215 00:08:34,610 --> 00:08:40,730 Dhe sigurisht, vlera ASCII 65 vullneti shtypura si A. Vlera ASCII e një plus 1 216 00:08:40,730 --> 00:08:43,669 do të jetë 66, e cila do të krenar për B. Pra, në fakt, ne kemi 217 00:08:43,669 --> 00:08:49,107 merrni A B C D Të gjithë të mirë atje? 218 00:08:49,107 --> 00:08:49,690 Ndonjë pyetje? 219 00:08:49,690 --> 00:08:50,721 220 00:08:50,721 --> 00:08:51,220 Awesome. 221 00:08:51,220 --> 00:08:52,500 222 00:08:52,500 --> 00:08:53,455 >> OK, fushëveprimi. 223 00:08:53,455 --> 00:08:55,090 224 00:08:55,090 --> 00:08:59,950 Pra Shtrirja është padyshim një shumë Gjëja më e rëndësishme për të kuptuar, këtu. 225 00:08:59,950 --> 00:09:03,250 Një shumë prej jush, në qoftë se ju kanë gabime hartimin, 226 00:09:03,250 --> 00:09:06,085 dhe ai thotë se ju nuk keni qasje në disa variable, 227 00:09:06,085 --> 00:09:08,540 kjo është ndoshta për shkak se ju përkufizohet brenda një lak 228 00:09:08,540 --> 00:09:12,210 dhe pastaj u përpoq për të hyrë në të nga ajo, ose anasjelltas. 229 00:09:12,210 --> 00:09:16,410 >> Pra Shtrirja në thelbin e vet, ai thjesht përcakton se ku 230 00:09:16,410 --> 00:09:20,800 themi një variabël ekziston, ku ne mund të ndryshojë atë, ku ne mund të përdorni atë. 231 00:09:20,800 --> 00:09:24,550 Është vetëm lloj i thënë se këto janë të vetmet vende ku ju keni qasje 232 00:09:24,550 --> 00:09:26,060 për këtë variabël. 233 00:09:26,060 --> 00:09:30,080 >> Kështu dy qëllimeve që ne flasim për Gjatë klasës janë globale dhe lokale. 234 00:09:30,080 --> 00:09:35,080 Variablat globale Pra, ne flasim për kur ju jeni duke përcaktuar ato më lart kryesore. 235 00:09:35,080 --> 00:09:38,390 Kjo do të thotë që të gjithë tuaj Programi ka qasje në të, 236 00:09:38,390 --> 00:09:42,090 dhe kjo ekziston për aq kohë si programit shkon, OK? 237 00:09:42,090 --> 00:09:45,100 Lokale do të thotë se është e më i mbyllur në një rajon. 238 00:09:45,100 --> 00:09:50,520 Pra, sa herë që ju keni funksione të veçanta si shkëmbim, ne gjithmonë flasim për. 239 00:09:50,520 --> 00:09:54,380 Ne gjithmonë flasim për shkëmbim me A dhe B. A dhe B ekzistojnë brenda këtij funksioni. 240 00:09:54,380 --> 00:09:55,690 Ata nuk ekzistojnë askund tjetër. 241 00:09:55,690 --> 00:09:56,860 242 00:09:56,860 --> 00:10:00,610 >> Si edhe, kur ju keni nëse deklarata apo për sythe. 243 00:10:00,610 --> 00:10:04,670 Kurdo që ne kemi, për shembull, në një për lak kemi int I barabartë me 0. 244 00:10:04,670 --> 00:10:06,630 Ne kemi disa kushte dhe update it. 245 00:10:06,630 --> 00:10:10,270 Unë vetëm ekziston brenda formatimin e teksteve e se për lak. 246 00:10:10,270 --> 00:10:13,270 Nëse ju provoni për të hyrë në atë diku tjetër, compiler juaj do të bërtasin në ju. 247 00:10:13,270 --> 00:10:14,560 Ajo do të jetë si, çfarë jeni duke u përpjekur për të bërë? 248 00:10:14,560 --> 00:10:15,400 Kjo nuk ekziston. 249 00:10:15,400 --> 00:10:16,644 250 00:10:16,644 --> 00:10:18,435 Pra, kjo është dy lloje të ndryshme të fushës. 251 00:10:18,435 --> 00:10:19,486 252 00:10:19,486 --> 00:10:20,860 Ka që e bëjnë kuptim për të gjithë? 253 00:10:20,860 --> 00:10:23,870 254 00:10:23,870 --> 00:10:27,890 >> Kështu për shembull këtu, kjo është vetëm një program i thjeshtë. 255 00:10:27,890 --> 00:10:29,120 256 00:10:29,120 --> 00:10:32,890 Çfarë mendoni ju djema mendoni se është do të ndodhë në çdo moment 257 00:10:32,890 --> 00:10:34,210 që ne të përpiqemi për të shkruar? 258 00:10:34,210 --> 00:10:40,150 Pra, kjo këtu, se çfarë do të ndodhë? 259 00:10:40,150 --> 00:10:43,047 260 00:10:43,047 --> 00:10:44,255 STUDENT: Ajo do të shtypura tre. 261 00:10:44,255 --> 00:10:44,880 ALLISON: E drejta. 262 00:10:44,880 --> 00:10:45,930 Ajo do të shtypura tre. 263 00:10:45,930 --> 00:10:47,272 Po në lidhje këtu? 264 00:10:47,272 --> 00:10:48,230 STUDENT: Kjo nuk do të funksionojë. 265 00:10:48,230 --> 00:10:48,910 ALLISON: Kjo nuk do të funksionojë. 266 00:10:48,910 --> 00:10:50,290 Ju jeni jashtë fushës, e drejtë? 267 00:10:50,290 --> 00:10:55,160 Variabël lokale nuk ekziston jashtë këtyre formatimin e teksteve, të gjithë të drejtë? 268 00:10:55,160 --> 00:10:56,462 Dhe pastaj çfarë lidhje këtu? 269 00:10:56,462 --> 00:10:57,850 >> STUDENT: [padëgjueshme]. 270 00:10:57,850 --> 00:10:59,210 >> ALLISON: Çfarë? 271 00:10:59,210 --> 00:10:59,900 Rob, shko. 272 00:10:59,900 --> 00:11:00,854 >> Rob: Unë vetëm tha. 273 00:11:00,854 --> 00:11:04,200 Variablat globale duhet të jetë variabël globale nënvizojnë. 274 00:11:04,200 --> 00:11:05,660 >> ALLISON: Ah, po, sorry. 275 00:11:05,660 --> 00:11:06,200 Thanks, Rob. 276 00:11:06,200 --> 00:11:07,480 277 00:11:07,480 --> 00:11:10,170 Rob-së si përpilues tonë banor. 278 00:11:10,170 --> 00:11:12,684 Ai do të bërtas vetëm në ne, kur ne kanë nevojë për atë. [Qesh] Po, se 279 00:11:12,684 --> 00:11:14,225 duhet të jenë të ndryshueshme theksojnë globale. 280 00:11:14,225 --> 00:11:15,760 281 00:11:15,760 --> 00:11:18,430 Kështu duke supozuar se kjo ishte nënvizojnë globale 282 00:11:18,430 --> 00:11:20,260 ndryshueshme, çfarë do të ndodhë këtu? 283 00:11:20,260 --> 00:11:21,260 STUDENT: Kjo do të punojnë. 284 00:11:21,260 --> 00:11:22,093 ALLISON: Ajo do të punojë. 285 00:11:22,093 --> 00:11:24,655 Pra, kjo do të shtypura, kështu që vetëm një shembull shumë të thjeshtë. 286 00:11:24,655 --> 00:11:27,650 287 00:11:27,650 --> 00:11:29,870 OK, prototipa. 288 00:11:29,870 --> 00:11:33,680 Pra natyrisht, ne me të vërtetë theksoj për ju djema 289 00:11:33,680 --> 00:11:36,460 për të bërë funksionet nëse ajo kuptim në programet tuaja. 290 00:11:36,460 --> 00:11:38,460 Por sigurisht, kur ju bëjnë funksionet tuaja, 291 00:11:38,460 --> 00:11:40,930 zakonisht ju do të përcaktojë ato pas kryesor. 292 00:11:40,930 --> 00:11:42,430 Dhe ju do të përpiqet për të thirrur ata në kryesore. 293 00:11:42,430 --> 00:11:46,030 Dhe në qoftë se ju nuk e përdorni një prototip, përpilues juaj do të bërtasin në ju. 294 00:11:46,030 --> 00:11:49,590 >> Prototype është në thelb vetëm duke u thënë përpiluesit tuaj 295 00:11:49,590 --> 00:11:52,400 që kam këtë funksion më poshtë kryesor. 296 00:11:52,400 --> 00:11:54,970 Unë jam duke shkuar për të thirrur atë para se unë të përcaktuar atë. 297 00:11:54,970 --> 00:11:56,360 Vetëm të mbajë në. 298 00:11:56,360 --> 00:12:00,660 Unë premtoj se kjo është e përcaktuar, dhe ju do të keni gjithçka që ju nevojitet. 299 00:12:00,660 --> 00:12:05,900 >> Pra, mënyra që ne bëjmë atë është vetëm kthimi juaj llojin, emrin tuaj funksioni, input tuaj 300 00:12:05,900 --> 00:12:06,400 lista. 301 00:12:06,400 --> 00:12:09,760 Kjo është në thelb rreshtin e parë e deklaratës suaj funksionit. 302 00:12:09,760 --> 00:12:11,510 Kjo është me të vërtetë të gjitha ajo është. 303 00:12:11,510 --> 00:12:14,440 Por kjo është vetëm një lloj i përgjithshëm i formatit. 304 00:12:14,440 --> 00:12:17,220 >> Kështu në shembullin tonë këtu, Cili ju djema duhet 305 00:12:17,220 --> 00:12:19,700 kemi parë në seksionin në një pikë, ne kemi 306 00:12:19,700 --> 00:12:23,220 disa kubike int se merr një int të input. 307 00:12:23,220 --> 00:12:25,870 Dhe ne kemi kryesore ynë funksion, i cili e quan kubike. 308 00:12:25,870 --> 00:12:28,670 Dhe kubike është përcaktuar pas faktit. 309 00:12:28,670 --> 00:12:34,450 >> Pra, nëse ne nuk kemi të dhëna int kubike në krye, kur kemi quajtur kubike 310 00:12:34,450 --> 00:12:36,620 në kryesore, përpilues tonë do të merrni çmendur në ne. 311 00:12:36,620 --> 00:12:38,890 Ajo do të jetë si, çfarë jeni duke folur për? 312 00:12:38,890 --> 00:12:40,360 Cube nuk ekziston. 313 00:12:40,360 --> 00:12:41,910 Unë nuk e di se çfarë ju jeni duke kërkuar për të. 314 00:12:41,910 --> 00:12:43,490 Dhe unë jam vetëm duke shkuar ndaluar. 315 00:12:43,490 --> 00:12:47,330 >> Por sepse ne e bëmë prototip tonë në krye, kemi thënë, 316 00:12:47,330 --> 00:12:49,800 ju e dini, kur ju shihni kubike, mos u bëni merak për këtë. 317 00:12:49,800 --> 00:12:51,990 Unë premtoj se është e përcaktuar më vonë. 318 00:12:51,990 --> 00:12:53,750 Dhe kjo do të ju lejojnë të bëni atë që ju dëshironi. 319 00:12:53,750 --> 00:12:57,750 Pra, nëse ju ndonjëherë kanë një funksion që është deklaruar, pasi ju e quani atë 320 00:12:57,750 --> 00:13:00,570 për herë të parë, ju keni nevojë për të kanë atë prototip në krye. 321 00:13:00,570 --> 00:13:01,640 322 00:13:01,640 --> 00:13:02,720 >> Po? 323 00:13:02,720 --> 00:13:04,412 >> Rob: Është katror, ​​jo cubing. 324 00:13:04,412 --> 00:13:05,855 >> ALLISON: Oh, Perëndia im. 325 00:13:05,855 --> 00:13:09,435 Unë nuk have-- Gabe, mendova keni qenë lektor tonë. 326 00:13:09,435 --> 00:13:10,740 327 00:13:10,740 --> 00:13:12,760 Djema OK, të kesh durim me mua, këtu. 328 00:13:12,760 --> 00:13:14,440 Unë shpresoj se gjithkush është duke u idenë. 329 00:13:14,440 --> 00:13:15,560 330 00:13:15,560 --> 00:13:20,380 OK, kështu që kjo duhet të ketë është katror, ​​jo kub. 331 00:13:20,380 --> 00:13:22,700 Por ideja mbetet e njëjtë. 332 00:13:22,700 --> 00:13:23,702 333 00:13:23,702 --> 00:13:26,660 Çdo funksion që ne jemi duke bërë thirrje pas fakt duhet të ketë një prototip. 334 00:13:26,660 --> 00:13:27,730 335 00:13:27,730 --> 00:13:28,970 Gjithkush e mirë me atë? 336 00:13:28,970 --> 00:13:30,730 337 00:13:30,730 --> 00:13:32,310 Çdo gabime shkrimi të tjera? 338 00:13:32,310 --> 00:13:32,810 OK. 339 00:13:32,810 --> 00:13:34,730 340 00:13:34,730 --> 00:13:36,230 Çdo gabime shkrimi këtu para se të fillojmë, Rob? 341 00:13:36,230 --> 00:13:37,356 342 00:13:37,356 --> 00:13:42,380 [Qesh] OK, kështu structs. 343 00:13:42,380 --> 00:13:45,040 Në thelb, structs t'ju lejojë për të krijuar llojin tuaj të të dhënave. 344 00:13:45,040 --> 00:13:49,264 Pra, më shumë si një int ose char apo a noton, kjo është vetëm një tjetër lloj. 345 00:13:49,264 --> 00:13:51,680 Më pëlqen të mendoj se si, si, krijuar vet lloji juaj të dhënave. 346 00:13:51,680 --> 00:13:53,740 Ju kështu që lejon të bëjë atë. 347 00:13:53,740 --> 00:13:56,160 Dhe kjo ka lloje të ndryshme të të dhënave. 348 00:13:56,160 --> 00:14:01,030 >> Pra, nëse ju kujtohet, në një rrjet, ne mund të mbajë vetëm gjërat e llojit të njëjtë. 349 00:14:01,030 --> 00:14:04,660 Structs të na lejojë të mbajë të shumta gjërat e llojeve të ndryshme. 350 00:14:04,660 --> 00:14:08,944 Pra, në këtë rast këtu, ne kanë strukturë të quajtur Student, 351 00:14:08,944 --> 00:14:10,650 quajtur këtu në fund. 352 00:14:10,650 --> 00:14:13,540 Dhe ne kemi disa id int dhe disa emrin string. 353 00:14:13,540 --> 00:14:14,620 354 00:14:14,620 --> 00:14:17,300 Pra, kjo është vetëm një lloj të dhënave. 355 00:14:17,300 --> 00:14:18,950 Ne tani kemi një lloj të dhënave të quajtur Student. 356 00:14:18,950 --> 00:14:20,330 357 00:14:20,330 --> 00:14:24,750 >> Pra, për shkak që ne mund të mendojmë për atë si vetëm një lloj tjetër të të dhënave, 358 00:14:24,750 --> 00:14:27,760 ne mund të deklarojmë variablat si ne do të ndonjë tjetër. 359 00:14:27,760 --> 00:14:32,680 Pra, në vend të vetëm duke pasur, si, një int student, ne vetëm kemi një student, 360 00:14:32,680 --> 00:14:33,390 studenti 1. 361 00:14:33,390 --> 00:14:33,560 Oh, shikoni. 362 00:14:33,560 --> 00:14:34,059 Është Rob. 363 00:14:34,059 --> 00:14:35,750 364 00:14:35,750 --> 00:14:38,880 Pra, këtu ne jemi deklaruar strukturë, ose një variable 365 00:14:38,880 --> 00:14:40,940 quajtur studenti 1 e studentit tipit. 366 00:14:40,940 --> 00:14:45,370 Pra, kjo do të ketë id dhe emri i lidhur me të. 367 00:14:45,370 --> 00:14:48,430 >> Dhe mënyra se si hyni në këto elemente brenda strukturën tonë 368 00:14:48,430 --> 00:14:50,100 është me dot operatorin, këtu. 369 00:14:50,100 --> 00:14:51,910 370 00:14:51,910 --> 00:14:54,660 Pra, në këtë rast, ne deklaroi një studenti 1. 371 00:14:54,660 --> 00:14:57,080 Ne caktuar ID të jenë 1. 372 00:14:57,080 --> 00:14:58,840 Dhe ne caktuar emrin e të Rob. 373 00:14:58,840 --> 00:15:03,010 374 00:15:03,010 --> 00:15:04,960 OK, të gjithë mirë me këtë? 375 00:15:04,960 --> 00:15:06,787 Përdorni vetëm like-- po? 376 00:15:06,787 --> 00:15:09,530 >> STUDENT: Po, typedef-- kur nuk kemi nevojë të përdorim typedef? 377 00:15:09,530 --> 00:15:13,190 >> ALLISON: Pra typedef vetëm thotë that-- Rob, ju 378 00:15:13,190 --> 00:15:16,990 mund të korrigjuar mua në këtë, nëse unë jam i wrong-- por typedef është vetëm të vërtetë shpallja 379 00:15:16,990 --> 00:15:19,330 atë si një lloj që ju mund të përdorni, e drejtë? 380 00:15:19,330 --> 00:15:22,550 >> Rob: Po, kjo është në thelb, kështu që kjo është vetëm krijimin e 381 00:15:22,550 --> 00:15:24,215 një alias, ose një pseudonim për një lloj. 382 00:15:24,215 --> 00:15:25,590 Kështu që ju mund të shtypni atë [e padëgjueshme]. 383 00:15:25,590 --> 00:15:27,140 384 00:15:27,140 --> 00:15:30,350 Pra, [e padëgjueshme] ekziston, dhe tani ne vetëm duhet 385 00:15:30,350 --> 00:15:32,090 [Padëgjueshme] mjete saktësisht e njëjta gjë. 386 00:15:32,090 --> 00:15:37,210 Dhe kështu që këtu, ne jemi të shtypur, unë mendoj, disa lloj struct 2 [padëgjueshme]. 387 00:15:37,210 --> 00:15:40,680 Pra, kjo është vetëm një pseudonim për një lloj të caktuar. 388 00:15:40,680 --> 00:15:44,344 >> STUDENT: String [padëgjueshme] bibliotekë u typed up si yll char. 389 00:15:44,344 --> 00:15:51,380 390 00:15:51,380 --> 00:15:54,390 >> ALLISON: Për qëllimet tona këtu, në qoftë se ju jeni duke deklaruar një e strukturës, 391 00:15:54,390 --> 00:15:55,600 vetëm të bëjë typedef e strukturës. 392 00:15:55,600 --> 00:15:57,680 393 00:15:57,680 --> 00:16:04,490 OK, kështu që më parë, kjo është vetëm një variabël normale këtu. 394 00:16:04,490 --> 00:16:06,390 Ne e përdorni atë me një pikë. 395 00:16:06,390 --> 00:16:08,580 në qoftë se ne kemi një tregues për një struct, ne mund të vërtetë 396 00:16:08,580 --> 00:16:10,700 përdorni një shigjetë, e cila është pretty cool. 397 00:16:10,700 --> 00:16:17,130 >> Pra, në këtë rast, ne kemi një tregues për një student 1 qe eshte i studentëve tipit. 398 00:16:17,130 --> 00:16:19,020 Mos harroni, me tuaj ndërtimit akrep, 399 00:16:19,020 --> 00:16:23,710 ju doni çdo gjë që shkruani treguesin tuaj është treguar të jetë në fillim. 400 00:16:23,710 --> 00:16:25,960 Pra, ne kemi disa nxënës 1, këtu. 401 00:16:25,960 --> 00:16:27,370 402 00:16:27,370 --> 00:16:31,050 Dhe që nga ky nxënës 1 tani është një vuri, 403 00:16:31,050 --> 00:16:36,520 ne fakt mund të shkojë studenti 1 shigjetë emrin në vend të pikë, sepse kjo është një tregues, 404 00:16:36,520 --> 00:16:37,640 dhe të caktojë Rob. 405 00:16:37,640 --> 00:16:40,720 Dhe tani, nëse ne duam të ndryshojë Rob me Davin, 406 00:16:40,720 --> 00:16:43,570 kjo është vetëm ju tregon se një mënyrë të ndryshme për të bërë atë. 407 00:16:43,570 --> 00:16:48,850 >> Pra, në vend të përdorimit shigjeta, ju mund also-- Unë do ta përfundojë këtë dhe pastaj 408 00:16:48,850 --> 00:16:52,860 marrë që question-- ju mund të gjithashtu të bëjë studenti referimi 1. 409 00:16:52,860 --> 00:16:56,170 Kjo është thënë se si të shkojnë në çdo gjë që është në studenti 1, e cila 410 00:16:56,170 --> 00:16:58,840 do të jetë struct tonë studentore. 411 00:16:58,840 --> 00:17:03,910 Përdorni atë me një pikë dhe elementi që ju dëshironi, dhe pastaj të reassign atë. 412 00:17:03,910 --> 00:17:05,326 Nuk ishte një pyetje. 413 00:17:05,326 --> 00:17:08,034 STUDENT: Po, kështu që si të vijnë që ju keni për të përdorur [padëgjueshme] kur ju jeni 414 00:17:08,034 --> 00:17:10,367 bërë yll nxënësve pa [Padëgjueshme] studenti? 415 00:17:10,367 --> 00:17:12,200 ALLISON: Për shkak se ky është krijuar një akrep. 416 00:17:12,200 --> 00:17:13,616 Rob: Ne jemi duke shkuar për të folur për këtë. 417 00:17:13,616 --> 00:17:16,119 ALLISON: Ne jemi duke shkuar për të folur në lidhje me atë më vonë në shqyrtim. 418 00:17:16,119 --> 00:17:17,660 Pra, vetëm të mbajë mbi këtë mendim. 419 00:17:17,660 --> 00:17:20,560 Nëse ende ju pengon në fundi, vijnë bisedoni me njëri prej nesh. 420 00:17:20,560 --> 00:17:23,380 >> Pra, këto bëjnë pikërisht të njëjtën gjë. 421 00:17:23,380 --> 00:17:25,579 Ne jemi vetëm duke ju shfaqur dy mënyra të ndryshme për të bërë atë. 422 00:17:25,579 --> 00:17:29,470 Student 1 është tani një akrep, kështu ju mund të hyni Emri elementin 423 00:17:29,470 --> 00:17:30,960 në strukturën me një shigjetë. 424 00:17:30,960 --> 00:17:36,440 Ose ju mund të dereference treguesin tuaj, dhe pastaj të përdorni atë si ju normalisht do. 425 00:17:36,440 --> 00:17:38,430 A që e bën kuptim për çdo një? 426 00:17:38,430 --> 00:17:39,480 427 00:17:39,480 --> 00:17:43,890 Nëse gjithë gjërat akrep janë pak konfuze, Gabe do të flasim për këtë, 428 00:17:43,890 --> 00:17:45,740 dhe atëherë ndoshta kjo do të bëjë më shumë kuptim. 429 00:17:45,740 --> 00:17:46,240 Po? 430 00:17:46,240 --> 00:17:48,387 >> STUDENT: Po, si mund të jetë ky i ndryshëm nga? 431 00:17:48,387 --> 00:17:49,470 ALLISON: ai i mëparshmi? 432 00:17:49,470 --> 00:17:52,330 Pra studenti 1 në këtë rast nuk është një akrep. 433 00:17:52,330 --> 00:17:54,380 Është vetëm struct tuaj aktuale. 434 00:17:54,380 --> 00:17:55,400 >> STUDENT: OK. 435 00:17:55,400 --> 00:17:57,645 >> ALLISON: Ndërsa këtë është një tregues për një strukturë. 436 00:17:57,645 --> 00:17:58,910 437 00:17:58,910 --> 00:18:02,060 >> STUDENT: OK, por e bën këtë lloj të deri në fund duke punuar në të njëjtën [e padëgjueshme]. 438 00:18:02,060 --> 00:18:03,310 >> ALLISON: Ai në fakt punon njëjtë. 439 00:18:03,310 --> 00:18:04,560 Sintaksa juaj është vetëm të ndryshme. 440 00:18:04,560 --> 00:18:05,185 STUDENT: OK. 441 00:18:05,185 --> 00:18:07,600 >> ALLISON: Po, ata janë të efektive njëjtë. 442 00:18:07,600 --> 00:18:11,321 Ajo është vetëm në varësi të kontekstit, ju mund të dëshironi një lidhje të tjera. 443 00:18:11,321 --> 00:18:11,820 Po? 444 00:18:11,820 --> 00:18:13,956 >> STUDENT: Kur ju bëni referenca për 1-- 445 00:18:13,956 --> 00:18:14,580 ALLISON: Mm-hm? 446 00:18:14,580 --> 00:18:16,880 STUDENT: Pse ju kanë kllapa? 447 00:18:16,880 --> 00:18:19,575 ALLISON: Sepse studenti 1 është tregues. 448 00:18:19,575 --> 00:18:22,200 Kështu që ju duhet të bëni të sigurtë që ju jeni vetëm dereferencing akrep. 449 00:18:22,200 --> 00:18:23,380 >> STUDENT: OK. 450 00:18:23,380 --> 00:18:26,700 >> ALLISON: Pra, në këtë rast këtu, të kllapa rreth tij 451 00:18:26,700 --> 00:18:29,875 do të thotë që ju jeni duke dereferencing studenti 1. 452 00:18:29,875 --> 00:18:35,390 Pra, ju jeni duke shkuar për të, ku studenti 1 pikë, e cila është struct tuaj. 453 00:18:35,390 --> 00:18:38,010 Deri tani ju mund të mendoni se si asaj strukturën, 454 00:18:38,010 --> 00:18:39,785 kështu që ne mund të përdorni tonë normale dot operacion. 455 00:18:39,785 --> 00:18:42,752 456 00:18:42,752 --> 00:18:43,585 Çdo pyetje të tjera? 457 00:18:43,585 --> 00:18:45,840 458 00:18:45,840 --> 00:18:48,120 Cool, awesome. 459 00:18:48,120 --> 00:18:51,359 >> Pra gjëja e fundit, unë mendoj është rrëshqitje ime e fundit, përpiqem të fitoj! 460 00:18:51,359 --> 00:18:52,775 OK, kështu që lundrues pikë pasaktësi. 461 00:18:52,775 --> 00:18:54,090 462 00:18:54,090 --> 00:18:56,820 Ne biseduam shkurtimisht rreth këtë gjatë leksionit. 463 00:18:56,820 --> 00:19:00,030 Në thelb, ne kemi pafundësisht shumë numra reale. 464 00:19:00,030 --> 00:19:02,237 Dhe në qoftë se ndonjë nga ju djema dashuri matematikë, nuk ka 465 00:19:02,237 --> 00:19:03,570 të gjitha llojet e stuff cool me ne. 466 00:19:03,570 --> 00:19:05,010 467 00:19:05,010 --> 00:19:07,190 >> Por ka pafundësisht shumë të numrave reale. 468 00:19:07,190 --> 00:19:09,850 Por ata janë vetëm të fundme shumë bit që ne kemi. 469 00:19:09,850 --> 00:19:13,240 Pra, ju jeni gjithmonë do të kanë pasaktësi, është e gjitha. 470 00:19:13,240 --> 00:19:16,269 Dhe kjo është se është vetëm lloj i si diçka që ju duhet të dini. 471 00:19:16,269 --> 00:19:19,060 Kjo si ne mund të ju pyes pse nuk pika lundrues pasaktësitë ekzistojnë? 472 00:19:19,060 --> 00:19:20,004 473 00:19:20,004 --> 00:19:21,420 Pra, vetëm diçka që ju duhet të dini. 474 00:19:21,420 --> 00:19:23,770 Dhe me këtë, unë jam kthyer ajo mbi të Pointers. 475 00:19:23,770 --> 00:19:27,720 476 00:19:27,720 --> 00:19:28,520 >> Binky: Përshëndetje, djema. 477 00:19:28,520 --> 00:19:29,616 Emri im është Binky. 478 00:19:29,616 --> 00:19:30,990 Unë jam duke shkuar për të folur në lidhje me pointers. 479 00:19:30,990 --> 00:19:33,247 480 00:19:33,247 --> 00:19:35,830 Yeah, kështu pointers është në të vërtetë pjesa ime e preferuar në këtë kurs. 481 00:19:35,830 --> 00:19:39,740 Pra, vetëm për të bërë të qartë se çfarë Allison ishte duke folur për këtu, kështu arsyen 482 00:19:39,740 --> 00:19:43,810 why-- i vetmi ndryshim këtu, ndryshim i madh ishte mënyra 483 00:19:43,810 --> 00:19:44,760 ne deklaroj gjërat. 484 00:19:44,760 --> 00:19:47,560 Pra, kjo do të thotë yll studenti është një tregues për një student. 485 00:19:47,560 --> 00:19:52,960 Ndërsa rrëshqitje përpara, student është një struct aktuale, si një student i vërtetë, 486 00:19:52,960 --> 00:19:54,400 përmbajnë ndonjë nga ato gjëra. 487 00:19:54,400 --> 00:19:57,050 >> Dhe arsyeja pse ne duan to-- po, Davin? 488 00:19:57,050 --> 00:19:58,630 >> Davin: Çfarë do të thotë shigjeta? 489 00:19:58,630 --> 00:20:04,240 >> Binky: shigjeta Mjetet pikërisht njëjtë si kjo. 490 00:20:04,240 --> 00:20:06,150 Pra, ju nuk duhet të vërtetë arrow. 491 00:20:06,150 --> 00:20:11,060 Si, në qoftë se ju jeni vetëm në program në C, ju mund të përdorni vetëm këtë. 492 00:20:11,060 --> 00:20:12,850 Na vjen keq, unë nuk se çfarë është. 493 00:20:12,850 --> 00:20:14,920 Ju mund të përdorni vetëm këtë sintaksë. 494 00:20:14,920 --> 00:20:17,430 >> Por disa njerëz, kur ata ishin projektim C, 495 00:20:17,430 --> 00:20:19,870 ata i realizuar artistikisht se njerëzit përdorur këtë sintaksë aq shumë, 496 00:20:19,870 --> 00:20:23,970 se ata do të donte të vijnë vetëm deri me një strukturë sintakse për të. 497 00:20:23,970 --> 00:20:26,820 Dhe kjo ndodhi në Forma e kësaj shigjetës. 498 00:20:26,820 --> 00:20:29,210 Dhe kjo është me të vërtetë e bukur, sepse ajo simbolizon diçka 499 00:20:29,210 --> 00:20:33,670 si ne jemi në të vërtetë në vijim kjo shigjetë, kjo akrep, 500 00:20:33,670 --> 00:20:35,300 drejt një hapësirë ​​në memorie. 501 00:20:35,300 --> 00:20:40,410 Dhe kur ne të merrni atje, ne duam të shikoni me emrin e atij studentit, 502 00:20:40,410 --> 00:20:42,150 nëse kjo ka kuptim. 503 00:20:42,150 --> 00:20:43,000 OK? 504 00:20:43,000 --> 00:20:44,290 >> Pra, kjo është saktësisht e njëjtë. 505 00:20:44,290 --> 00:20:46,310 Kjo është pikërisht e njëjta gjë si kjo. 506 00:20:46,310 --> 00:20:48,130 Ata marrin hartuar saktësisht njëjtë, OK? 507 00:20:48,130 --> 00:20:50,100 508 00:20:50,100 --> 00:20:55,580 Dhe arsyeja pse ne këtu malloc diçka, është për shkak se në këtë rast, 509 00:20:55,580 --> 00:20:59,120 ndryshueshme ynë është në të vërtetë vetëm një variabël akrep. 510 00:20:59,120 --> 00:21:02,900 Pra, ne vetëm kemi disa hapësirë ​​në kujtesës që është mbajtja e një akrep. 511 00:21:02,900 --> 00:21:06,570 Ne të vërtetë nuk kanë asnjë hapësirë që mban e strukturës aktuale. 512 00:21:06,570 --> 00:21:08,660 >> Pra, kjo duhet të bëhet në dy hapa. 513 00:21:08,660 --> 00:21:11,545 Ne kemi për të krijuar memorie për të vënë në e strukturës. 514 00:21:11,545 --> 00:21:14,445 Dhe ne duhet të krijojmë memorie për të vënë në treguesin. 515 00:21:14,445 --> 00:21:16,570 Pra, ata janë në thelb dy variabla të ndryshme, këtu. 516 00:21:16,570 --> 00:21:19,730 Një prej tyre është i studentit tipit, me përjashtim të nuk ka të vërtetë kanë një emër. 517 00:21:19,730 --> 00:21:21,900 Dhe tjetra është e yllit të tipit të studentëve. 518 00:21:21,900 --> 00:21:24,900 Dhe pastaj studentore 1 pikë atje, në qoftë se që e bëjnë kuptim. 519 00:21:24,900 --> 00:21:25,871 520 00:21:25,871 --> 00:21:26,370 OK? 521 00:21:26,370 --> 00:21:28,160 522 00:21:28,160 --> 00:21:31,860 >> Pra, arsyeja pse ne përdorim pointers është për shkak se çdo gjë 523 00:21:31,860 --> 00:21:35,510 në një kompjuter, çdo variabël në një kompjuter ka dy gjëra. 524 00:21:35,510 --> 00:21:36,580 Ajo ka vlerën e saj. 525 00:21:36,580 --> 00:21:38,420 Dhe ai e ka adresën e saj. 526 00:21:38,420 --> 00:21:41,390 Dhe një mënyrë e mirë për të konceptuar kjo ka 527 00:21:41,390 --> 00:21:44,230 shumë probleme kur ju përpiqen për të përdorur funksione. 528 00:21:44,230 --> 00:21:47,200 Dhe ne jemi duke shkuar për të përpiqen për të shikoni në një nga ato. 529 00:21:47,200 --> 00:21:50,370 Domethënë, ajo do të mendoj se e kujtesës si kuti. 530 00:21:50,370 --> 00:21:52,810 >> Ju gjithmonë menduar të variablave kur ju thonë se na është e barabartë me 5. 531 00:21:52,810 --> 00:21:54,430 Ju mendoni se i vënë 5 në një kuti. 532 00:21:54,430 --> 00:21:55,520 533 00:21:55,520 --> 00:22:00,030 Pra, çfarë nëse ju doni të kalojë se int në një funksion? 534 00:22:00,030 --> 00:22:03,230 Ju thjesht pass-- unë nuk bëj know-- x në një funksion. 535 00:22:03,230 --> 00:22:06,090 Por çfarë ndodh është normalisht si njerëzit, ju 536 00:22:06,090 --> 00:22:09,050 do të mendojnë diçka si unë jam kalimin kutinë tek një person. 537 00:22:09,050 --> 00:22:12,070 Dhe kjo nuk ka të vërtetë ndodhin në kompjuter. 538 00:22:12,070 --> 00:22:17,770 Çfarë ndodh është që ju të kopjoni vlerën nga kutia në kuti e personit. 539 00:22:17,770 --> 00:22:22,440 >> Pra, ajo që unë jam duke u përpjekur të them është se në qoftë se ju keni një function-- sorry-- këtu, 540 00:22:22,440 --> 00:22:27,700 në qoftë se ne kemi një funksion si për pesë deri atje, nëse ju përpiqeni të kalojë një ndryshore, 541 00:22:27,700 --> 00:22:29,450 ajo është vetëm do të kopje. 542 00:22:29,450 --> 00:22:35,771 Nëse një nx nisja e barabartë me 3, kjo do për të kopjuar këtë vlerë deri ndryshueshme në a 543 00:22:35,771 --> 00:22:36,270 deri atje. 544 00:22:36,270 --> 00:22:37,005 545 00:22:37,005 --> 00:22:39,630 OK, dhe kjo është lloj i arsyes pse ne duam që të përdorim pointers. 546 00:22:39,630 --> 00:22:42,550 Sepse në vend të duke i dhënë vetëm vlerën, 547 00:22:42,550 --> 00:22:44,850 në vend të vetëm duke kaluar vetëm vlera në një funksion, 548 00:22:44,850 --> 00:22:46,530 ne duam të kalojë duke iu referuar. 549 00:22:46,530 --> 00:22:50,630 Ajo që ne e quajmë të kalojë duke iu referuar është lloj të dhënë kuti të funksionit, 550 00:22:50,630 --> 00:22:53,890 kështu që funksioni mund gjithashtu ndryshoni vlerat në atë kuti. 551 00:22:53,890 --> 00:22:57,280 >> OK, kështu që vetëm disa tregues bazë stuff është për të krijuar pointers, 552 00:22:57,280 --> 00:23:00,300 ju vetëm të deklarojë atë një lloj, dhe ju vënë një yll të drejtë pas tij. 553 00:23:00,300 --> 00:23:02,307 Dhe lloji është vetëm atë që ju jeni duke treguar. 554 00:23:02,307 --> 00:23:04,390 Pra, në qoftë se ajo është një yll int, ju jeni duke treguar në një int. 555 00:23:04,390 --> 00:23:05,940 Në qoftë se kjo është një yll char, ju jeni vënë në një tabelë. 556 00:23:05,940 --> 00:23:07,790 Dhe në qoftë se ajo është një yll student, ju jeni duke treguar në një studenti. 557 00:23:07,790 --> 00:23:08,770 OK? 558 00:23:08,770 --> 00:23:10,510 >> Dhe ata janë të gjithë 4 bytes të gjatë. 559 00:23:10,510 --> 00:23:13,010 Sepse ky variabël ajo nuk ka të vërtetë 560 00:23:13,010 --> 00:23:15,380 duhet të mbajë një char, një int, apo një student. 561 00:23:15,380 --> 00:23:16,890 Ajo vetëm ka nevojë për të mbajtur një fjalim. 562 00:23:16,890 --> 00:23:21,390 Kjo është arsyeja pse ata janë të gjithë 4 bytes gjatë në një makinë normale 32-bit. 563 00:23:21,390 --> 00:23:21,890 OK? 564 00:23:21,890 --> 00:23:25,600 Kështu që këtu, x është një ndryshore që tregon për një int. pikë y në një char. Pikat z 565 00:23:25,600 --> 00:23:26,580 në një noton. 566 00:23:26,580 --> 00:23:27,480 Ndonjë pyetje këtu? 567 00:23:27,480 --> 00:23:29,841 568 00:23:29,841 --> 00:23:30,340 Ftohtë. 569 00:23:30,340 --> 00:23:32,550 Dhe ka dy simbole të ndryshme që ata kanë 570 00:23:32,550 --> 00:23:34,341 për të mbajtur në mendje kur vijnë në treguesin. 571 00:23:34,341 --> 00:23:36,540 Pra, referenca dhe dereferencing janë ato të mëdha. 572 00:23:36,540 --> 00:23:38,100 573 00:23:38,100 --> 00:23:41,602 Pra, me simbolin komercial të Emri ndryshueshme ju jep? 574 00:23:41,602 --> 00:23:42,310 STUDENT: Adresa. 575 00:23:42,310 --> 00:23:43,380 Binky: Adresa. 576 00:23:43,380 --> 00:23:47,330 Pra, nëse ju të deklarojë int a është e barabartë me 5, atëherë 'e 577 00:23:47,330 --> 00:23:49,214 e një do të ju jap adresën. 578 00:23:49,214 --> 00:23:51,130 Dhe në të vërtetë ju mund të përpiquni për të shkruar atë dhe të shohin 579 00:23:51,130 --> 00:23:54,640 atë adresë në kujtesën ndryshueshme juaj ka. 580 00:23:54,640 --> 00:23:57,380 Dhe pastaj dereferencing-- në mënyrë që të ishte referenca, 581 00:23:57,380 --> 00:24:00,380 marrjen e dereferencing address-- është e kundërta e saktë. 582 00:24:00,380 --> 00:24:04,120 OK, ashtu si herë është e kundërta e një ndarje, 583 00:24:04,120 --> 00:24:06,060 yll është e kundërta e simbolin komercial. 584 00:24:06,060 --> 00:24:09,710 Pra, do të thotë dereferencing të shkojnë atje. 585 00:24:09,710 --> 00:24:14,280 Pra, nëse ju jepni I star-- nuk know-- 50, kjo është e 586 00:24:14,280 --> 00:24:20,320 do të përpiqen për të shkuar në adresën e Numri 50 brenda kompjuterit tuaj. 587 00:24:20,320 --> 00:24:22,840 OK, dhe pse ne e shohim se ata janë të kundërta? 588 00:24:22,840 --> 00:24:27,320 Sepse çfarë ndodh në qoftë se ju bëni diçka si yll simbol a? 589 00:24:27,320 --> 00:24:28,470 590 00:24:28,470 --> 00:24:33,460 E pra, një simbol ju jep adresën një variabël, adresa e a. 591 00:24:33,460 --> 00:24:35,830 Por, ylli do të thotë të shkojnë atje. 592 00:24:35,830 --> 00:24:38,930 >> Pra, çfarë ndodh në qoftë se ju shkoni në adresën e një? 593 00:24:38,930 --> 00:24:40,400 Ju vetëm të merrni për një, e drejtë? 594 00:24:40,400 --> 00:24:41,410 595 00:24:41,410 --> 00:24:43,600 Pra, duke shkuar në adresën e a është e njëjta gjë si. 596 00:24:43,600 --> 00:24:47,580 Kjo është arsyeja pse ata janë zakonisht të referuar same-- këtë 597 00:24:47,580 --> 00:24:50,480 dhe kjo i referohen Operatorët si të kundërta. 598 00:24:50,480 --> 00:24:50,980 OK? 599 00:24:50,980 --> 00:24:52,780 600 00:24:52,780 --> 00:24:53,790 So cool. 601 00:24:53,790 --> 00:24:57,240 >> Nën kapuç, për shembull, nëse ne deklarojmë int x është e barabartë me 5, 602 00:24:57,240 --> 00:24:58,040 ne kemi një ndryshore. 603 00:24:58,040 --> 00:25:00,790 Dhe mos harroni që unë tha se çdo variable-- dhe kjo është një gjë e mirë 604 00:25:00,790 --> 00:25:03,820 të mbajtur në mind-- ajo ka dy gjëra të ndryshme lidhur me të. 605 00:25:03,820 --> 00:25:06,460 Ajo ka një adresuar dhe një vlerë. 606 00:25:06,460 --> 00:25:07,140 OK? 607 00:25:07,140 --> 00:25:09,180 >> Pra, vlera në këtë rast është 5. 608 00:25:09,180 --> 00:25:12,140 Dhe adresa is-- le të themi, unë jam bërë diçka up-- kjo është 0x04. 609 00:25:12,140 --> 00:25:13,180 610 00:25:13,180 --> 00:25:17,200 Dhe arsyeja e vetme pse ne zakonisht paraqesin adresat në heksadecimal 611 00:25:17,200 --> 00:25:19,770 është një, sepse kjo është si të mirën. 612 00:25:19,770 --> 00:25:21,600 Ajo shkon mirë me binar. 613 00:25:21,600 --> 00:25:23,500 Është e lehtë për të kthyer në dhe nga binar. 614 00:25:23,500 --> 00:25:26,890 Dhe kjo nuk ka marrë shumë të mëdha nëse ju keni një numër shumë të madh. 615 00:25:26,890 --> 00:25:29,990 Pra, ne të dëshironi të përdorni hexadecimal në adresat e shtypjen. 616 00:25:29,990 --> 00:25:31,890 Por unë mund të përfaqësojë kjo si një numër të plotë. 617 00:25:31,890 --> 00:25:32,750 Kjo është në rregull. 618 00:25:32,750 --> 00:25:35,450 >> Dhe kështu ajo ka një adresë 4 dhe një vlerë prej 5. 619 00:25:35,450 --> 00:25:38,080 Dhe atëherë thashë yll int akrep. 620 00:25:38,080 --> 00:25:40,070 Pra, kjo është një lloj tjetër, njoftim. 621 00:25:40,070 --> 00:25:43,220 Int yll akrep barabartë adresën e x. 622 00:25:43,220 --> 00:25:46,425 Pra, çfarë do të jetë vlera e PTR? 623 00:25:46,425 --> 00:25:47,710 624 00:25:47,710 --> 00:25:51,600 Ajo do të jetë adresën e x, këtu poshtë. 625 00:25:51,600 --> 00:25:54,190 OK, kështu që vlera do të të jetë i njëjtë si adresë. 626 00:25:54,190 --> 00:25:56,130 Kjo është detyrë të veprojë që unë jam duke bërë. 627 00:25:56,130 --> 00:25:59,380 Dhe pastaj ptr do të ketë adresën e vet, i cili rezulton, 628 00:25:59,380 --> 00:26:02,050 në këtë rast, 8, OK? 629 00:26:02,050 --> 00:26:03,850 630 00:26:03,850 --> 00:26:05,900 >> Dhe atëherë unë krijoj një kopje të re integer. 631 00:26:05,900 --> 00:26:08,790 Dhe unë them kopje int barabartë të shkojnë atje. 632 00:26:08,790 --> 00:26:11,140 Pra shkoni në atë ptr është treguar. 633 00:26:11,140 --> 00:26:13,940 E pra, çfarë kjo ptr keni? 634 00:26:13,940 --> 00:26:14,740 Ptr ka 0x04. 635 00:26:14,740 --> 00:26:16,060 636 00:26:16,060 --> 00:26:18,400 Çfarë ndodh në qoftë se unë të përpiqet për të shkuar atje? 637 00:26:18,400 --> 00:26:23,650 Unë do të gjeni djalë i cili ka Adresa x dhe i cili e ka adresën 4. 638 00:26:23,650 --> 00:26:25,970 Dhe kush e ka adresuar katër është x. 639 00:26:25,970 --> 00:26:26,950 Ka që e bëjnë kuptim? 640 00:26:26,950 --> 00:26:28,295 641 00:26:28,295 --> 00:26:28,795 Po? 642 00:26:28,795 --> 00:26:32,060 >> STUDENT: Në këtë rast, është pointer në një pirg? 643 00:26:32,060 --> 00:26:36,024 >> Binky: Në këtë rast, it's-- pyetje e mirë. 644 00:26:36,024 --> 00:26:38,690 Unë vërtetë nuk mendoj për këtë kur bën këto adresa. 645 00:26:38,690 --> 00:26:42,570 Por nëse kjo është, si të gjithë këto janë variabla lokale, 646 00:26:42,570 --> 00:26:46,372 atëherë x do të jetojë in-- gjithçka do të jetojnë në rafte. 647 00:26:46,372 --> 00:26:48,330 Pra, çdo gjë është duke shkuar të jetë treguar në rafte. 648 00:26:48,330 --> 00:26:49,360 649 00:26:49,360 --> 00:26:52,700 Ju merrni vetëm në tog kur ju filloni të përdorni malloc, e drejtë? 650 00:26:52,700 --> 00:26:59,430 >> Pra, nëse ju kujtohet rafte është çdo kohë ju telefononi një funksion në programin tuaj, 651 00:26:59,430 --> 00:27:02,800 si, kryesore për shembull, apo ndonjë funksion tjetër, si printf. 652 00:27:02,800 --> 00:27:06,334 Të gjitha variablave lokale janë do të merrni vënë në një kornizë rafte. 653 00:27:06,334 --> 00:27:08,500 Dhe ata do të merrni si grumbulluar në rafte. 654 00:27:08,500 --> 00:27:09,930 Kjo është ajo që quhet një pirg. 655 00:27:09,930 --> 00:27:12,200 Dhe të gjithë ata ndryshoret lokale do të jetë atje. 656 00:27:12,200 --> 00:27:14,940 Dhe heap-- dhe ne jemi duke shkuar për të folur më shumë për këtë later-- 657 00:27:14,940 --> 00:27:19,050 tog është vendi ku të gjithë ndarë dinamike jetën e kujtesës. 658 00:27:19,050 --> 00:27:20,270 Ftohtë? 659 00:27:20,270 --> 00:27:21,680 >> Ne do të shkojmë në këtë rrëshqitje. 660 00:27:21,680 --> 00:27:22,800 Po? 661 00:27:22,800 --> 00:27:25,490 >> STUDENT: Pse nuk është e int kopje kthimit 0x04? 662 00:27:25,490 --> 00:27:27,870 663 00:27:27,870 --> 00:27:30,066 >> Binky: Pse nuk është e int kopje kthimit 0x04? 664 00:27:30,066 --> 00:27:32,450 >> STUDENT: Pse nuk është se [padëgjueshme]? 665 00:27:32,450 --> 00:27:35,530 >> Binky: Për shkak se ajo është një vlerë e PTR? 666 00:27:35,530 --> 00:27:37,394 667 00:27:37,394 --> 00:27:38,370 >> STUDENT: 0x04. 668 00:27:38,370 --> 00:27:38,960 >> Binky: 0x04. 669 00:27:38,960 --> 00:27:40,910 Çfarë ndodh në qoftë se ju shkoni në 0x04? 670 00:27:40,910 --> 00:27:41,620 Çfarë bëni ju merrni? 671 00:27:41,620 --> 00:27:42,371 >> STUDENT: Oh, OK. 672 00:27:42,371 --> 00:27:42,995 Binky: Ju shikoni? 673 00:27:42,995 --> 00:27:43,536 STUDENT: Po. 674 00:27:43,536 --> 00:27:44,890 Binky: Pra, ju merrni 5. 675 00:27:44,890 --> 00:27:49,170 Pra, kopje do të ketë 5, në qoftë se ka kuptim. 676 00:27:49,170 --> 00:27:49,809 Po? 677 00:27:49,809 --> 00:27:52,803 >> STUDENTORE: A mund të kemi marrë 5 në kutinë vlerës [padëgjueshme] 678 00:27:52,803 --> 00:27:55,300 në qoftë se ne kemi vënë int kopjoni [padëgjueshme]. 679 00:27:55,300 --> 00:27:56,710 >> Binky: Int-- ne do, vërtet. 680 00:27:56,710 --> 00:27:59,080 Kjo do të kishte bërë shumë e shumë të njëjtën gjë. 681 00:27:59,080 --> 00:28:02,080 Por në këtë mënyrë, ne mund të kalojë adresuar të funksioneve. 682 00:28:02,080 --> 00:28:05,050 Dhe kjo është gjëja e ftohtë ne jemi duke shkuar për të bërë tani. 683 00:28:05,050 --> 00:28:06,770 684 00:28:06,770 --> 00:28:13,090 >> Pra, ky lloj ushtrimi gjithmonë vjen deri on-- shumë zakonisht vjen deri në kuize. 685 00:28:13,090 --> 00:28:15,870 Pra, kjo është me të vërtetë e mirë për të përpiqen për të të bëjë atë lloj gjë veten. 686 00:28:15,870 --> 00:28:21,210 Pra, të përpiqen të mbajnë gjurmët e asaj adresën është dhe duan vlerat e variablave 687 00:28:21,210 --> 00:28:22,620 janë në çdo moment. 688 00:28:22,620 --> 00:28:24,370 Pra, kjo është pikërisht ajo që ne jemi duke shkuar për të bërë. 689 00:28:24,370 --> 00:28:26,988 Këtu, ne kemi hapa, një, dy, tre, katër, pesë. 690 00:28:26,988 --> 00:28:30,530 Një, dy, tre, katër, pesë. 691 00:28:30,530 --> 00:28:33,330 Dhe ne jemi duke shkuar për të mbajtur nën e vlerave të x dhe a. 692 00:28:33,330 --> 00:28:34,650 693 00:28:34,650 --> 00:28:40,530 >> Pra, çfarë është duke bërë këtë, në qoftë se kjo është një Kodi buggy, ne jemi duke u përpjekur për të bërë për pesë. 694 00:28:40,530 --> 00:28:43,610 Pra, ne jemi duke u përpjekur për të marrë në një ndryshueshme dhe për të ndryshuar vlerën e saj për 5. 695 00:28:43,610 --> 00:28:44,630 696 00:28:44,630 --> 00:28:49,900 Dhe mos harroni analogjinë e mia për të pasur një kuti dhe dorëzimin kuti për dikë? 697 00:28:49,900 --> 00:28:51,515 Pra kryesor ka këtë kuti të quajtur x. 698 00:28:51,515 --> 00:28:52,570 699 00:28:52,570 --> 00:28:54,170 Dhe ai përmban vlerën 3. 700 00:28:54,170 --> 00:28:55,230 701 00:28:55,230 --> 00:28:57,455 Dhe unë jam duke u përpjekur për të dorëzuar kjo kuti për deri në pesë. 702 00:28:57,455 --> 00:28:58,560 703 00:28:58,560 --> 00:29:01,510 >> Dhe unë dua të pesë të ndryshojë vlera e kësaj kuti në 5. 704 00:29:01,510 --> 00:29:03,080 705 00:29:03,080 --> 00:29:05,120 Dhe atëherë unë vetëm të shtypura vlerën e x. 706 00:29:05,120 --> 00:29:06,475 707 00:29:06,475 --> 00:29:08,850 Kjo është ajo që function-- ime kjo është ajo që unë jam duke u përpjekur për të bërë. 708 00:29:08,850 --> 00:29:12,450 Unë jam vetëm duke u përpjekur për të rinovuar vlera e x në 5. 709 00:29:12,450 --> 00:29:13,512 710 00:29:13,512 --> 00:29:14,970 Është e qartë se çfarë funksioni ka? 711 00:29:14,970 --> 00:29:16,210 712 00:29:16,210 --> 00:29:21,440 >> OK, kështu që çfarë do të jetë vlerat e x dhe të drejtë këtu, 713 00:29:21,440 --> 00:29:27,734 rreshtin e parë, e drejtë para se të parë line-- Unë do say-- e programit? 714 00:29:27,734 --> 00:29:28,940 >> STUDENT: Ndoshta mbeturinave. 715 00:29:28,940 --> 00:29:30,023 >> Binky: Vetëm gjëra të mbeturinave. 716 00:29:30,023 --> 00:29:32,590 Kështu që unë vetëm vënë N / A. Pra ne vërtetë nuk e di. 717 00:29:32,590 --> 00:29:37,400 Si, a nuk ekziston ende, sepse ne nuk kemi thirrur për pesë. 718 00:29:37,400 --> 00:29:38,980 Int a nuk është deklaruar. 719 00:29:38,980 --> 00:29:40,030 720 00:29:40,030 --> 00:29:42,920 Dhe x do të ekzistojë këtu, por ne nuk kemi me të vërtetë 721 00:29:42,920 --> 00:29:45,370 caktuar ndonjë vlerë për atë, kështu OK? 722 00:29:45,370 --> 00:29:46,570 723 00:29:46,570 --> 00:29:52,340 >> Dhe pastaj, çfarë do të jetë vlerat e x dhe a në numër dy? 724 00:29:52,340 --> 00:29:54,530 725 00:29:54,530 --> 00:29:55,410 >> STUDENT: [padëgjueshme]. 726 00:29:55,410 --> 00:29:57,540 >> Binky: Kështu x do të jetë 3. 727 00:29:57,540 --> 00:29:59,650 Kjo është e lehtë, për shkak se ne jemi caktimin e 3 të saj. 728 00:29:59,650 --> 00:30:03,500 Dhe ende nuk ekziston sepse një drejtë jeton në të pesë. 729 00:30:03,500 --> 00:30:05,800 Kështu që unë jam duke shkuar të ketë 3 dhe asgjë. 730 00:30:05,800 --> 00:30:08,590 apo si mbeturina, çfarëdo, nuk është përcaktuar me të vërtetë. 731 00:30:08,590 --> 00:30:11,640 732 00:30:11,640 --> 00:30:13,140 Dhe tani, kjo është linjë e rëndësishme. 733 00:30:13,140 --> 00:30:14,931 Këtu, ne jemi duke shkuar për në fakt thirrje për pesë. 734 00:30:14,931 --> 00:30:17,140 735 00:30:17,140 --> 00:30:18,680 Dhe mos harroni atë që kam thënë. 736 00:30:18,680 --> 00:30:20,240 Ne kurrë nuk kalojnë në kuti. 737 00:30:20,240 --> 00:30:23,110 Ne vetëm kopje vlerën e kuti në një tjetër kuti. 738 00:30:23,110 --> 00:30:27,000 Kjo është e gjitha kompjuterat e, kopje gjëra nga një vend në një tjetër. 739 00:30:27,000 --> 00:30:33,550 >> Pra, për pesë, atë që në fakt ka është IT kopje vlera e X per a. 740 00:30:33,550 --> 00:30:35,130 Pra, çfarë do të jetë këtu? 741 00:30:35,130 --> 00:30:36,210 Vlerat e x dhe a. 742 00:30:36,210 --> 00:30:38,670 743 00:30:38,670 --> 00:30:43,360 3 dhe 3, ne vetëm do të kopjoni ajo gjatë nga x në një. 744 00:30:43,360 --> 00:30:44,710 745 00:30:44,710 --> 00:30:45,320 Ftohtë. 746 00:30:45,320 --> 00:30:46,140 >> Tani ne jemi këtu. 747 00:30:46,140 --> 00:30:47,610 748 00:30:47,610 --> 00:30:49,430 Dhe tani ne jemi duke shkuar për të rinovuar një është e barabartë me 5. 749 00:30:49,430 --> 00:30:50,900 750 00:30:50,900 --> 00:30:53,070 Çfarë do të ndodhë në përputhje katër? 751 00:30:53,070 --> 00:30:55,120 752 00:30:55,120 --> 00:30:56,010 >> STUDENT: [padëgjueshme]. 753 00:30:56,010 --> 00:30:59,685 >> Binky: a merr përditësuar, por x nuk e kam marrë updated. 754 00:30:59,685 --> 00:31:02,050 755 00:31:02,050 --> 00:31:05,250 Sepse x ende jeton në kryesore, kjo është një bllok krejtësisht të ndryshme të kujtesës. 756 00:31:05,250 --> 00:31:06,970 Kjo është një variabël tjetër. 757 00:31:06,970 --> 00:31:07,900 a është një tjetër variabël. 758 00:31:07,900 --> 00:31:10,000 Ata të ndodhë që të ketë të njëjtën vlerë për shkak se I 759 00:31:10,000 --> 00:31:13,980 kopjuar mbi vlerën e x në a. 760 00:31:13,980 --> 00:31:20,070 Por tani, kur unë bëj një është e barabartë me 5, atë nuk ka të vërtetë të ndikojë x në asnjë mënyrë. 761 00:31:20,070 --> 00:31:21,450 Kjo është pjesa e komplikuar. 762 00:31:21,450 --> 00:31:23,380 A ka kuptim për të gjithë? 763 00:31:23,380 --> 00:31:24,093 Po? 764 00:31:24,093 --> 00:31:25,717 STUDENT: Një pyetje më shumë, ju keni 3. 765 00:31:25,717 --> 00:31:27,741 Pse është një already-- oh, jo, kjo është 3. 766 00:31:27,741 --> 00:31:28,490 Na vjen keq, mos u mërzit. 767 00:31:28,490 --> 00:31:29,310 Kam lexuar 5. 768 00:31:29,310 --> 00:31:30,415 >> Binky: Po, 3, 3. 769 00:31:30,415 --> 00:31:31,540 >> STUDENT: [padëgjueshme], vërtet. 770 00:31:31,540 --> 00:31:35,290 Binky: Dhe pastaj ne caktojë 5 të a, por nuk ka të vërtetë të ndryshojë x. 771 00:31:35,290 --> 00:31:36,369 Mirë? 772 00:31:36,369 --> 00:31:36,910 STUDENT: Po. 773 00:31:36,910 --> 00:31:37,410 Binky: Po? 774 00:31:37,410 --> 00:31:42,330 A mund të shpjegojë se si një herë a merr kopjuar [padëgjueshme]? 775 00:31:42,330 --> 00:31:48,480 >> Binky: OK, kështu që kur ju telefononi në pesë i x, kështu që kjo linjë e kodit këtu. 776 00:31:48,480 --> 00:31:50,100 777 00:31:50,100 --> 00:31:52,340 në pesë prej X, ajo është e x? 778 00:31:52,340 --> 00:31:55,160 779 00:31:55,160 --> 00:31:58,340 x është vetëm 3 në këtë pikë, e drejtë? 780 00:31:58,340 --> 00:32:03,320 Kështu që ju mund të mendoni vetëm për të vënë një 3 në këtu dhe duke harruar në lidhje me x. 781 00:32:03,320 --> 00:32:04,410 Vetëm vënë një 3 here. 782 00:32:04,410 --> 00:32:10,880 Ashtu si ne jemi duke shkuar për të kopjuar gjatë vlera e x në int a që është atje. 783 00:32:10,880 --> 00:32:12,310 784 00:32:12,310 --> 00:32:13,630 OK? 785 00:32:13,630 --> 00:32:14,780 >> Kështu vlera e x është 3. 786 00:32:14,780 --> 00:32:17,680 Ne jemi duke shkuar për të kopjuar 3 mbi të a. 787 00:32:17,680 --> 00:32:20,040 Dhe e gjithë kjo bllok tjetër memorie, ky variabël tjetër 788 00:32:20,040 --> 00:32:22,640 quajtur një do të ketë 3, si edhe. 789 00:32:22,640 --> 00:32:23,580 Ka që e bëjnë kuptim? 790 00:32:23,580 --> 00:32:24,780 791 00:32:24,780 --> 00:32:25,794 Po? 792 00:32:25,794 --> 00:32:31,008 >> STUDENT: Nëse ju jepni për pesë si kanë atë si numër i plotë x në vend të një, 793 00:32:31,008 --> 00:32:32,910 do që të rregullojmë gjithçka? 794 00:32:32,910 --> 00:32:36,290 >> Binky: Nëse kjo është një integer-- jo, se nuk do të rregullojmë gjithçka. 795 00:32:36,290 --> 00:32:37,590 Pra, kjo është një pyetje shumë e mirë. 796 00:32:37,590 --> 00:32:40,480 Kjo nuk ka rëndësi se çfarë ju e quani ato variablave. 797 00:32:40,480 --> 00:32:44,510 Përsëri, kjo do të jetë një çështje e fushës, për shkak se ata nuk janë të njëjtë x. 798 00:32:44,510 --> 00:32:46,526 Ata janë plotësisht të hapësira të ndryshme në memorie. 799 00:32:46,526 --> 00:32:47,400 STUDENT: [padëgjueshme]. 800 00:32:47,400 --> 00:32:49,020 Binky: Pra, ajo nuk ka të vërtetë rëndësi se çfarë ju e quani ata. 801 00:32:49,020 --> 00:32:50,480 Kjo nuk do të rregulluar gjërat, OK? 802 00:32:50,480 --> 00:32:53,390 803 00:32:53,390 --> 00:32:54,430 Më shumë pyetje? 804 00:32:54,430 --> 00:32:55,762 Po? 805 00:32:55,762 --> 00:32:58,498 >> STUDENT: Sa është kthyer në Numri pesë [padëgjueshme]? 806 00:32:58,498 --> 00:32:59,661 807 00:32:59,661 --> 00:33:01,160 Binky: OK, ne nuk kemi bërë ende këtë. 808 00:33:01,160 --> 00:33:03,432 Le të shkojnë në numër pesë, pastaj. 809 00:33:03,432 --> 00:33:04,650 >> STUDENT: [padëgjueshme]? 810 00:33:04,650 --> 00:33:05,565 >> Binky: Çfarë? 811 00:33:05,565 --> 00:33:08,179 >> STUDENTORE: A keni një kthim në të gjitha? 812 00:33:08,179 --> 00:33:09,970 Binky: Ne nuk kemi një kthim, jo ​​kryesore. 813 00:33:09,970 --> 00:33:12,940 Por kthimit kryesore 0 automatikisht në qoftë se ju nuk do të kthehen asgjë. 814 00:33:12,940 --> 00:33:14,400 815 00:33:14,400 --> 00:33:15,188 Po? 816 00:33:15,188 --> 00:33:22,658 >> STUDENT: Mund të bëni main-- ose ju mund të bëni për të pesë kthimit a? 817 00:33:22,658 --> 00:33:24,170 818 00:33:24,170 --> 00:33:27,990 >> Binky: Ne mund të kemi për pesë kthehen a, po. 819 00:33:27,990 --> 00:33:32,527 Por atëherë ne do të duhet të caktojë x është e barabartë me vlerën e kthimit për pesë, 820 00:33:32,527 --> 00:33:34,360 e cila do të jetë një pak program të ndryshme. 821 00:33:34,360 --> 00:33:35,440 Ajo do të punojë. 822 00:33:35,440 --> 00:33:38,730 Por, ajo që ne duam të bëjmë është ajo që është quajtur ndryshim diçka në vend. 823 00:33:38,730 --> 00:33:41,690 Pra, ne duam të vërtetë ndryshojë atë kuti dhe të mos shqetësohen 824 00:33:41,690 --> 00:33:44,390 në lidhje me të paturit e për t'u kthyer Vlerat apo ndonjë gjë. 825 00:33:44,390 --> 00:33:44,890 OK? 826 00:33:44,890 --> 00:33:46,490 827 00:33:46,490 --> 00:33:50,150 >> Kjo është vetëm si funksion swap David tregoi në leksion, përveç unë jam 828 00:33:50,150 --> 00:33:51,740 vetëm që kanë të bëjnë me një ndryshore. 829 00:33:51,740 --> 00:33:55,960 Dhe ai përdori dy, kështu int a dhe b dhe pastaj ndryshueshme përkohshme dhe gjësend. 830 00:33:55,960 --> 00:33:57,020 OK? 831 00:33:57,020 --> 00:33:58,070 Pra, çfarë është vija e fundit? 832 00:33:58,070 --> 00:34:04,400 Pas pesë kthimet, kjo është thjesht një do të shkojnë larg. 833 00:34:04,400 --> 00:34:06,120 834 00:34:06,120 --> 00:34:10,179 Ne nuk do të ketë një më, dhe vetëm x do të vazhdojë të jetojë më. 835 00:34:10,179 --> 00:34:12,130 >> Dhe me mend se çfarë? x nuk ka ndryshuar vlerën e saj, 836 00:34:12,130 --> 00:34:15,520 pasi të gjithë, sepse ne jemi vetëm duke ndryshuar vlerën e a. 837 00:34:15,520 --> 00:34:17,370 Kjo është arsyeja pse x është 3 të gjithë. 838 00:34:17,370 --> 00:34:17,870 OK? 839 00:34:17,870 --> 00:34:20,195 840 00:34:20,195 --> 00:34:21,130 Të mirë. 841 00:34:21,130 --> 00:34:23,560 Pra, ky program nuk të arritur atë që kemi dashur. 842 00:34:23,560 --> 00:34:24,760 Tani le të rregulluar atë. 843 00:34:24,760 --> 00:34:27,440 >> Dhe programi fix është përdorur pointers. 844 00:34:27,440 --> 00:34:32,300 Çfarë bëjmë ne është që ne kemi tre vija që janë të ndryshëm. 845 00:34:32,300 --> 00:34:34,020 Të parat po ne nuk jemi duke kaluar x. 846 00:34:34,020 --> 00:34:35,535 Ne jemi duke kaluar adresën e x. 847 00:34:35,535 --> 00:34:37,330 848 00:34:37,330 --> 00:34:40,876 Pra, në vend kopjimi gjatë vlera e kutisë, 849 00:34:40,876 --> 00:34:42,500 Unë jam ende duke shkuar për të kopjoni mbi diçka. 850 00:34:42,500 --> 00:34:45,380 Por unë jam duke kopjuar gjatë adresën e kutisë. 851 00:34:45,380 --> 00:34:48,780 >> Pra, nëse unë kaloj adresën e kuti për deri në pesë, pastaj për pesë 852 00:34:48,780 --> 00:34:51,560 do të jetë në gjendje për të gjetur se në kujtesës dhe për të ndryshuar vlerën e saj. 853 00:34:51,560 --> 00:34:53,980 854 00:34:53,980 --> 00:34:59,580 >> Pra, dhe pastaj deri atje, unë kam se nuk është një int më. 855 00:34:59,580 --> 00:35:00,882 a është një yll int. 856 00:35:00,882 --> 00:35:02,090 Kjo është një tregues për një numër të plotë. 857 00:35:02,090 --> 00:35:03,790 858 00:35:03,790 --> 00:35:07,310 Dhe pastaj, për shkak se unë jam duke kaluar trajtuar këtu, dhe pastaj çfarë të bëj 859 00:35:07,310 --> 00:35:10,530 nuk është një e barabartë me 5, sepse a po mban një adresë. 860 00:35:10,530 --> 00:35:16,710 Pra, ajo që unë dua të bëni është të shkoni atje dhe update përmbajtjen e këtij adresë 861 00:35:16,710 --> 00:35:18,305 me 5. 862 00:35:18,305 --> 00:35:21,130 >> OK, kështu që le të shkojnë nëpër të gjitha linjat një nga një. 863 00:35:21,130 --> 00:35:22,410 864 00:35:22,410 --> 00:35:26,024 Kështu që, kur unë të fillojë këtu, unë ende N / A, N / A, N / A 865 00:35:26,024 --> 00:35:28,440 për çdo gjë në të parë line, sepse unë nuk e kanë me të vërtetë 866 00:35:28,440 --> 00:35:29,390 deklaroi sende ende. 867 00:35:29,390 --> 00:35:30,980 868 00:35:30,980 --> 00:35:35,110 Dhe pastaj të vijë dy, unë kam x është e barabartë me 3. 869 00:35:35,110 --> 00:35:38,020 Një yll int a nuk ekzistojnë, njëjta gjë si më parë. 870 00:35:38,020 --> 00:35:39,160 871 00:35:39,160 --> 00:35:40,640 >> Tani ajo merr interesante. 872 00:35:40,640 --> 00:35:42,300 Kështu që unë jam duke shkuar për të kaluar. 873 00:35:42,300 --> 00:35:45,720 Dhe le të supozojmë se adresën i X është 12 në heksadecimal. 874 00:35:45,720 --> 00:35:46,880 875 00:35:46,880 --> 00:35:48,420 Le të supozojmë këtë. 876 00:35:48,420 --> 00:35:49,221 Unë e bëra atë. 877 00:35:49,221 --> 00:35:51,680 878 00:35:51,680 --> 00:35:53,500 Pra, çfarë jam unë duke kaluar këtu është një në pesë. 879 00:35:53,500 --> 00:35:54,460 Unë jam duke kaluar 12. 880 00:35:54,460 --> 00:35:56,390 881 00:35:56,390 --> 00:35:58,610 >> Pra çfarë vlere ka një të ketë? 882 00:35:58,610 --> 00:36:04,785 883 00:36:04,785 --> 00:36:06,210 >> STUDENT: [padëgjueshme]. 884 00:36:06,210 --> 00:36:06,950 >> Binky: Na vjen keq? 885 00:36:06,950 --> 00:36:08,145 >> STUDENT: [padëgjueshme]. 886 00:36:08,145 --> 00:36:10,520 Binky: Po, si, për të le të supozojmë se ne jemi këtu, tani. 887 00:36:10,520 --> 00:36:11,540 888 00:36:11,540 --> 00:36:12,040 Unë jam duke kërkuar. 889 00:36:12,040 --> 00:36:12,915 >> STUDENT: [padëgjueshme]. 890 00:36:12,915 --> 00:36:13,590 891 00:36:13,590 --> 00:36:14,890 >> Binky: Ajo ka filluar. 892 00:36:14,890 --> 00:36:15,860 >> STUDENT: [padëgjueshme]. 893 00:36:15,860 --> 00:36:17,985 Binky: Sepse ne kaluar diçka për funksionin. 894 00:36:17,985 --> 00:36:19,431 895 00:36:19,431 --> 00:36:19,930 Po? 896 00:36:19,930 --> 00:36:20,899 >> STUDENT: Adresa e x. 897 00:36:20,899 --> 00:36:22,690 Binky: Ajo do të kanë adresën e x. 898 00:36:22,690 --> 00:36:25,800 Dhe adresa e x është 12, mirë. 899 00:36:25,800 --> 00:36:30,990 Kështu x do të jetë 3, sepse ne nuk e kemi ndryshuar me të vërtetë x ende. 900 00:36:30,990 --> 00:36:36,700 Dhe pastaj një do të jetë 0x12, kështu adresa e x, sepse kjo është 901 00:36:36,700 --> 00:36:38,840 ajo që kemi kaluar për të pesë. 902 00:36:38,840 --> 00:36:40,940 >> Dhe pastaj çfarë ndodh nëse ne përpiqemi për të shkuar atje? 903 00:36:40,940 --> 00:36:42,145 Çfarë do të shkojmë për të gjetur? 904 00:36:42,145 --> 00:36:47,120 Pra, nëse ju përpiqeni për të shkruar një yll, ne jemi duke shkuar për të ndjekur këtë adresë 905 00:36:47,120 --> 00:36:48,620 dhe për të marrë vlerën brenda. 906 00:36:48,620 --> 00:36:50,470 Dhe vlera është vetëm njëjta vlera qe X 907 00:36:50,470 --> 00:36:53,980 ka, sepse kjo është adresën e x, e cila do të jetë 3. 908 00:36:53,980 --> 00:36:55,440 909 00:36:55,440 --> 00:36:56,930 A jemi të mirë? 910 00:36:56,930 --> 00:36:59,990 >> OK, dhe pastaj tani, ne fakt shkojnë atje. 911 00:36:59,990 --> 00:37:05,510 Dhe ne update çfarëdo është në këtë adresë 12. 912 00:37:05,510 --> 00:37:07,390 Ne e bëjmë atë 5. 913 00:37:07,390 --> 00:37:10,560 Deri tani dy x dhe yll a janë 5. 914 00:37:10,560 --> 00:37:13,170 915 00:37:13,170 --> 00:37:13,680 >> Pse është kjo? 916 00:37:13,680 --> 00:37:17,070 Sepse adresa e x është 12. 917 00:37:17,070 --> 00:37:20,920 Dhe a ka edhe 12 si vlera të saj. 918 00:37:20,920 --> 00:37:23,780 Pra, nëse ne ndjekim 12, ne jemi vetëm do të gjeni x. 919 00:37:23,780 --> 00:37:27,400 Pra, çdo gjë që ne bëjmë me yll a do të ndodhë 920 00:37:27,400 --> 00:37:30,790 për x, sepse një përmban adresën e x. 921 00:37:30,790 --> 00:37:31,918 922 00:37:31,918 --> 00:37:32,418 OK? 923 00:37:32,418 --> 00:37:34,090 924 00:37:34,090 --> 00:37:37,750 >> Dhe kjo është si thelbi i fix. 925 00:37:37,750 --> 00:37:41,500 Deri tani, ne jemi në gjendje, nga të pesë, në fakt 926 00:37:41,500 --> 00:37:43,840 kujtesë që jetonin në kryesore. 927 00:37:43,840 --> 00:37:47,980 Pra, kjo memorie nuk jetojnë në të pesë, si më parë, kjo adresa 12. 928 00:37:47,980 --> 00:37:50,980 Dhe ne kemi qenë në gjendje për të shkuar atje dhe për të ndryshuar vlerën e saj për 5. 929 00:37:50,980 --> 00:37:53,990 >> Dhe pastaj kur të kthehemi, ne harrojmë për një. 930 00:37:53,990 --> 00:37:55,720 Ne harrojmë për një yll. 931 00:37:55,720 --> 00:37:57,020 Dhe x është ende pesë. 932 00:37:57,020 --> 00:37:58,327 933 00:37:58,327 --> 00:38:00,160 Pra, nëse ju doni të zbatojë një funksion swap, 934 00:38:00,160 --> 00:38:05,010 ju vetëm do të bëjë të njëjtën gjë e saktë, përveç ju duhet të int yjet këtu, 935 00:38:05,010 --> 00:38:06,140 dhe kështu me radhë e kështu me radhë. 936 00:38:06,140 --> 00:38:06,976 OK? 937 00:38:06,976 --> 00:38:07,475 A jemi të mirë? 938 00:38:07,475 --> 00:38:09,860 939 00:38:09,860 --> 00:38:10,610 Ftohtë. 940 00:38:10,610 --> 00:38:12,410 >> Pra treguesin aritmetike. 941 00:38:12,410 --> 00:38:13,960 Kjo është një temë pak e ndërlikuar. 942 00:38:13,960 --> 00:38:16,554 Pra, rezulton se pointers janë vetëm integers. 943 00:38:16,554 --> 00:38:17,970 Ju mund të mendoni për to si të integers. 944 00:38:17,970 --> 00:38:21,080 Sepse në kujtim, ju keni si memorie adresë zero, një, dy, tre, 945 00:38:21,080 --> 00:38:21,900 katër, pesë. 946 00:38:21,900 --> 00:38:23,900 Pra, ne mund të përmbledhim adresat kujtesës. 947 00:38:23,900 --> 00:38:27,230 >> Dhe kjo është ajo që ju zakonisht bëni kur ju jeni në dhe array, për shembull. 948 00:38:27,230 --> 00:38:30,540 Një grup është vetëm si një i afërt bllok i kujtesës, e shumë gërma, 949 00:38:30,540 --> 00:38:31,840 për shembull, shumë ints. 950 00:38:31,840 --> 00:38:34,420 Pra, nëse ju doni të shkoni në dytë int ose int tretë, 951 00:38:34,420 --> 00:38:37,830 ju vetëm mund të përmbledhur diçka për të parë adresa, dhe ju do të jeni për të arritur atje. 952 00:38:37,830 --> 00:38:39,620 Pra, kjo është me të vërtetë e dobishme për atë. 953 00:38:39,620 --> 00:38:41,850 >> Dhe gjëja për të mbajtur në mend, megjithatë, është 954 00:38:41,850 --> 00:38:45,140 se ajo nuk është vetëm si aritmetike normal në kuptimin 955 00:38:45,140 --> 00:38:50,304 se në qoftë se ju jeni që kanë të bëjnë me të, të themi, një yll int, dhe ju shtoni 1 të tij, 956 00:38:50,304 --> 00:38:52,220 atëherë ju nuk do të jeni për të shtuar 1 në adresën, 957 00:38:52,220 --> 00:38:53,950 ju jeni duke shkuar për të shtuar 4 në adresën. 958 00:38:53,950 --> 00:38:55,030 959 00:38:55,030 --> 00:38:56,670 Sepse një int është 4 bytes. 960 00:38:56,670 --> 00:38:57,720 961 00:38:57,720 --> 00:38:59,540 >> Pra, kjo është vetëm si duke ecur mbi një rrjet. 962 00:38:59,540 --> 00:39:05,260 Në qoftë se ne kemi një rrjet të shumë ints dhe atëherë ne përpiqemi për të shkuar në një të dytë, 963 00:39:05,260 --> 00:39:08,790 kjo është në thelb vetëm mbledhur adresa e një të parë plus 1. 964 00:39:08,790 --> 00:39:10,040 965 00:39:10,040 --> 00:39:13,425 Por kjo nuk do të be-- vetëm le të themi se adresa e të parit është 4. 966 00:39:13,425 --> 00:39:14,560 967 00:39:14,560 --> 00:39:16,250 Këtu, në këtë rast. 968 00:39:16,250 --> 00:39:19,780 969 00:39:19,780 --> 00:39:22,850 Dhe në qoftë se ne të përmbledhur, kështu që kjo është ajo që po ndodh. 970 00:39:22,850 --> 00:39:23,530 Ne kemi një int. 971 00:39:23,530 --> 00:39:25,640 Int x është e barabartë me 5. 972 00:39:25,640 --> 00:39:26,950 X ka një vlerë 5. 973 00:39:26,950 --> 00:39:31,240 Dhe ne nisja këtë tregues, int y yll int y barabartë adresën e x. 974 00:39:31,240 --> 00:39:33,660 >> Le të supozojmë adresa e x eshte 4. 975 00:39:33,660 --> 00:39:36,960 Çfarë do të ndodhë Tani në qoftë se unë shuma shtoni 1 me y? 976 00:39:36,960 --> 00:39:39,110 977 00:39:39,110 --> 00:39:44,790 Kjo do të vërtetë Shuma 4 në vend të vetëm 1. 978 00:39:44,790 --> 00:39:50,920 Kështu që unë të shtoni një 1, por ajo në të vërtetë shtoi 4, sepse kompjuteri e zgjuar. 979 00:39:50,920 --> 00:39:55,275 Pra, kjo do të vërtetë të shtuar nga unë herë madhësia e llojit të pointer. 980 00:39:55,275 --> 00:39:56,340 981 00:39:56,340 --> 00:39:56,840 OK? 982 00:39:56,840 --> 00:39:58,030 983 00:39:58,030 --> 00:40:02,440 >> Pra, në qoftë se ajo ishte një char, për shembull, në qoftë se kjo ishte një yll y char, 984 00:40:02,440 --> 00:40:07,141 dhe në qoftë se kemi shtuar 1, atëherë kjo do të të jetë 5, sepse char është 1 bajt gjatë. 985 00:40:07,141 --> 00:40:07,640 Mirë? 986 00:40:07,640 --> 00:40:10,560 987 00:40:10,560 --> 00:40:13,190 >> Dhe më në fund, ne kemi marrë për të pointers dhe vargjeve. 988 00:40:13,190 --> 00:40:16,451 Ajo rezulton se çdo kohë ju jeni që kanë të bëjnë me një grup, 989 00:40:16,451 --> 00:40:18,075 ju jeni në të vërtetë që kanë të bëjnë me një akrep. 990 00:40:18,075 --> 00:40:19,720 991 00:40:19,720 --> 00:40:24,777 Arsyeja very nice konceptuale për kjo është se vargjeve janë shumë të mëdha. 992 00:40:24,777 --> 00:40:27,360 Pra, mos harroni që të thashë se çdo herë që ju të kalojë gjëra përreth, 993 00:40:27,360 --> 00:40:29,097 ju kopjoni çdo gjë. 994 00:40:29,097 --> 00:40:31,180 Pra, nëse ju keni një koleksion kjo është me të vërtetë, të vërtetë të madhe, 995 00:40:31,180 --> 00:40:32,990 ju të vërtetë nuk duan të kopjoni çdo gjë në çdo kohë 996 00:40:32,990 --> 00:40:35,710 ju të kalojë atë rreth në tjetrin funksion, sepse kjo është vetëm 997 00:40:35,710 --> 00:40:37,190 shuma masive të punës. 998 00:40:37,190 --> 00:40:39,710 Pra, çfarë ju bëni është vetëm e kaluara adresën e bajt parë. 999 00:40:39,710 --> 00:40:40,969 1000 00:40:40,969 --> 00:40:44,010 Dhe pastaj funksioni do të ketë qasje të gjitha elementet në atë rrjet. 1001 00:40:44,010 --> 00:40:48,670 Pra, ju keni kaluar array me adresën e saj, kështu adresën e bajt parë. 1002 00:40:48,670 --> 00:40:53,010 >> Pra, nëse ne deklarojmë int array 3, ketu, ne e dimë 1003 00:40:53,010 --> 00:40:57,470 si për të hyrë në elementin e parë duke përdorur simbol kllapa. 1004 00:40:57,470 --> 00:41:02,410 Nëse ju kujtohet kllapa simbol, array kllapa 0 është e barabartë me 1. 1005 00:41:02,410 --> 00:41:06,330 E pra, kjo do të jetë pikërisht njëjtë si thjesht shkoni atje dhe të vënë 1. 1006 00:41:06,330 --> 00:41:07,370 1007 00:41:07,370 --> 00:41:09,110 OK, është saktësisht e njëjta gjë. 1008 00:41:09,110 --> 00:41:13,010 Pra, simbol i kllapave në këtu do të jetë i njëjtë me këtë linjë. 1009 00:41:13,010 --> 00:41:18,600 >> Dhe me mend se çfarë simbol kllapa për array kllapa 1 do të jetë? 1010 00:41:18,600 --> 00:41:20,440 Ajo do të jetë vetëm e njëjta gjë si kjo. 1011 00:41:20,440 --> 00:41:22,500 Pra, shtoni një në rrjet. 1012 00:41:22,500 --> 00:41:24,370 Leviz një së bashku me kujtesën. 1013 00:41:24,370 --> 00:41:26,310 Shkoni atje, dhe të vënë një 2. 1014 00:41:26,310 --> 00:41:28,050 1015 00:41:28,050 --> 00:41:28,579 OK? 1016 00:41:28,579 --> 00:41:29,870 Dhe kjo linjë është e njëjta gjë. 1017 00:41:29,870 --> 00:41:34,860 Ne duam që të shkojnë të tretë kuti, kështu array plus 2. 1018 00:41:34,860 --> 00:41:37,465 Shkoni atje, dhe të vënë një 3. 1019 00:41:37,465 --> 00:41:39,340 Pra në kujtesë, çfarë është do të ndodhë është që ne jemi 1020 00:41:39,340 --> 00:41:44,400 do të kenë 1, 2 dhe 3 si Tre elementet e këtij koleksioni. 1021 00:41:44,400 --> 00:41:46,970 >> Ne mund të kemi bërë këtë duke përdorur simbol tonë të njohur kllapa. 1022 00:41:46,970 --> 00:41:49,410 Unë vetëm dua që ju djema të dini se ata janë e njëjta gjë. 1023 00:41:49,410 --> 00:41:50,530 1024 00:41:50,530 --> 00:41:53,010 OK, pyetje në lidhje me këtë? 1025 00:41:53,010 --> 00:41:56,115 1026 00:41:56,115 --> 00:41:56,615 E bukur. 1027 00:41:56,615 --> 00:41:57,990 1028 00:41:57,990 --> 00:41:59,880 Tani, unë jam duke shkuar për të dorëzuar ajo mbi Anës, 1029 00:41:59,880 --> 00:42:00,330 >> HANNAH: Yay, Yee-mëdyshje. 1030 00:42:00,330 --> 00:42:02,246 >> Binky: Duke folur për kujtesës dhe sende neni. 1031 00:42:02,246 --> 00:42:06,554 [Duartrokitje] 1032 00:42:06,554 --> 00:42:10,150 >> HANNAH: Hi, cool, kështu që ne jemi do të flasim pak më shumë 1033 00:42:10,150 --> 00:42:13,090 për kujtesën, të cilat ne vetëm drejtuar duke përdorur pointers. 1034 00:42:13,090 --> 00:42:16,060 Pra, ka dy pjesë kryesore të kujtesës që ne jemi të shqetësuar me të. 1035 00:42:16,060 --> 00:42:18,830 Ne kemi rafte, e cila rritet deri në fund, dhe tok, e cila 1036 00:42:18,830 --> 00:42:20,600 shkon poshtë nga maja. 1037 00:42:20,600 --> 00:42:24,690 Dhe rafte do të mbajë të gjitha variablave të shkallës tona. 1038 00:42:24,690 --> 00:42:28,860 Pra, çdo thirrje për një funksion merr korniza e vet të vogël në rafte. 1039 00:42:28,860 --> 00:42:32,160 Pra, siç u përmend më herët Gabe, në qoftë se ne telefononi funksionin përsëri dhe përsëri, 1040 00:42:32,160 --> 00:42:34,180 ne jemi duke shkuar për rafte gjërat deri në rafte. 1041 00:42:34,180 --> 00:42:35,220 1042 00:42:35,220 --> 00:42:38,570 >> Dhe në mënyrë të ngjashme, tog, e cila fillon në krye 1043 00:42:38,570 --> 00:42:42,660 do të mbajë të gjitha të kujtesës që ne dinamike ndajë. 1044 00:42:42,660 --> 00:42:45,110 Dhe kështu që ne dinamike përgatitja e kujtesës, 1045 00:42:45,110 --> 00:42:47,580 kjo do të zbresë në drejtim të poshtme. 1046 00:42:47,580 --> 00:42:51,340 Disa gjëra të jetë i vetëdijshëm kur ne jemi duke përdorur rafte dhe tog me ta, 1047 00:42:51,340 --> 00:42:55,200 me rafte, në qoftë se ne kemi shumë many-- le say-- thirrje gjithkund rekursive, 1048 00:42:55,200 --> 00:42:58,392 dhe ne jemi duke e quajtur një funksion përsëri, dhe përsëri, dhe përsëri, dhe përsëri, 1049 00:42:58,392 --> 00:43:00,350 dhe kjo është stacking up, stacking up, stacking up. 1050 00:43:00,350 --> 00:43:01,570 Dhe ajo do të rrëzimit në grumbull. 1051 00:43:01,570 --> 00:43:03,040 Ne jemi duke shkuar për të dalë jashtë kujtesës. 1052 00:43:03,040 --> 00:43:05,100 Kjo do të shkaktojë një problem për kompjuter. 1053 00:43:05,100 --> 00:43:06,770 Dhe kjo quhet overflow rafte. 1054 00:43:06,770 --> 00:43:09,728 Pra, kjo është patjetër diçka që ju duhet të jenë të vetëdijshëm dhe të përpiqet të shmangë. 1055 00:43:09,728 --> 00:43:10,228 1056 00:43:10,228 --> 00:43:14,050 Dhe grumbull, duhet të mbani mend për të mos rastësisht rrjedhje kujtesës. 1057 00:43:14,050 --> 00:43:17,950 Çdo herë që ju përdorni malloc, nuk harroni të këtë kujtesë. 1058 00:43:17,950 --> 00:43:20,040 Përndryshe, ai vetëm do të të jetë në grumbull tretur, 1059 00:43:20,040 --> 00:43:23,230 dhe kompjuteri nuk do të dinë se ajo është e lirë të përdorin atë kujtesës. 1060 00:43:23,230 --> 00:43:25,810 Pra, këto janë disa gjëra të jenë shumë të kujdesshëm me të, kur 1061 00:43:25,810 --> 00:43:28,580 ju jeni që kanë të bëjnë me rafte dhe tog. 1062 00:43:28,580 --> 00:43:30,412 Çdo pyetje me këtë? 1063 00:43:30,412 --> 00:43:31,304 Awesome. 1064 00:43:31,304 --> 00:43:31,900 >> OK, cool. 1065 00:43:31,900 --> 00:43:32,940 1066 00:43:32,940 --> 00:43:36,810 Pra, ky lloj ka të njëjtën Ideja që del nga shtrati rafte, ku 1067 00:43:36,810 --> 00:43:39,850 ne jemi duke shkuar përtej kufijtë e asaj kujtesës 1068 00:43:39,850 --> 00:43:41,960 po ne jemi duke menduar që të jetë në gjendje të përdorin. 1069 00:43:41,960 --> 00:43:45,077 Pra, të marrë, për shembull, një tampon, ose ju mund të mendojnë vetëm për atë si një grup. 1070 00:43:45,077 --> 00:43:47,660 Dhe ne i thamë, OK, ne jemi duke shkuar për krijuar këtë grup të bukur pak. 1071 00:43:47,660 --> 00:43:49,140 Ajo do të jetë një string. 1072 00:43:49,140 --> 00:43:50,630 Ose ajo do të ruajtur karaktere. 1073 00:43:50,630 --> 00:43:51,720 Dhe kjo është vetëm duke shkuar për të thonë hello. 1074 00:43:51,720 --> 00:43:52,678 Dhe kjo është e papërcaktuar. 1075 00:43:52,678 --> 00:43:53,990 Kjo ishte. 1076 00:43:53,990 --> 00:43:58,240 >> Por në qoftë se unë ishin dikush të keqen dhe të kërkuar për të bëjë diçka të keqe me këtë grup, çfarë 1077 00:43:58,240 --> 00:44:02,310 Unë mund të bëni është që të përpiqen për të shkruar kaluara në fund të vargut. 1078 00:44:02,310 --> 00:44:04,490 Dhe si ju do të shihni, nëse Unë shkruaj aq larg sa, 1079 00:44:04,490 --> 00:44:06,980 Unë në fakt mund të ndikojë adresa e kthimit. 1080 00:44:06,980 --> 00:44:09,530 Dhe në qoftë se unë të fillojë të ndikojë adresa e kthimit, 1081 00:44:09,530 --> 00:44:11,730 Unë ndikojnë si program të vërtetë shkon. 1082 00:44:11,730 --> 00:44:15,900 Dhe në vend të kthimit, ju e dini, një varg të lumtur si hello, unë 1083 00:44:15,900 --> 00:44:19,460 mund të bëjë diçka të keqe, si të shkojnë në diku tjetër në kompjuterin tuaj, ende 1084 00:44:19,460 --> 00:44:22,146 kujtesës, për të ndryshuar atë, çdo gjë që unë dua të bëj. 1085 00:44:22,146 --> 00:44:25,020 Pra, kjo është ajo që kjo do të duken si është në qoftë se unë vetëm lloj mbushur atë 1086 00:44:25,020 --> 00:44:27,400 me vlerë të rastit mbeturinave, në këtë rast, vetëm a. 1087 00:44:27,400 --> 00:44:30,490 Dhe atëherë kur unë në fakt mori në adresën e kujtesës, 1088 00:44:30,490 --> 00:44:33,740 Unë fillova të plotësojë atë me diçka që e bëri atë që kam kërkuar që ajo të bëjë. 1089 00:44:33,740 --> 00:44:34,952 1090 00:44:34,952 --> 00:44:36,410 Çdo pyetje me buffer overflow? 1091 00:44:36,410 --> 00:44:38,450 1092 00:44:38,450 --> 00:44:40,730 Awesome, e drejta fluturon me anë të këtij stuff. 1093 00:44:40,730 --> 00:44:43,530 >> OK, kështu që ne kemi biseduar shumë në lidhje me treguesin e me Gabe. 1094 00:44:43,530 --> 00:44:45,790 Si nuk kemi të vërtetë të marrë një akrep? 1095 00:44:45,790 --> 00:44:48,070 Si mund të marrim një adresë në kujtesën? 1096 00:44:48,070 --> 00:44:51,040 E pra, ne mund të përdorni këtë këndshme funksion thirrja malloc, e cila 1097 00:44:51,040 --> 00:44:53,370 do të marrë një pak copë e kujtesës, 1098 00:44:53,370 --> 00:44:55,480 veçanërisht në grumbull, siç kemi diskutuar, 1099 00:44:55,480 --> 00:44:59,780 dhe ajo do të ju kthej a treguesin në atë adresë në kujtesën. 1100 00:44:59,780 --> 00:45:01,950 Dhe argumenti që ne duhet t'i japë malloc 1101 00:45:01,950 --> 00:45:04,280 është se sa shumë hapësirë ​​në memorie ne duam. 1102 00:45:04,280 --> 00:45:06,100 >> Kështu që ju mund të shihni madhësinë në bajt. 1103 00:45:06,100 --> 00:45:08,670 Le të themi, për shembull, ose në të vërtetë, në këtë shembull, 1104 00:45:08,670 --> 00:45:12,040 ne ndajë mjaftueshme hapësirë ​​për 10 integers. 1105 00:45:12,040 --> 00:45:15,640 Pra, ndoshta ajo që ne jemi duke shkuar për të duan për të vënë këtu është një grup prej 10 integers. 1106 00:45:15,640 --> 00:45:19,641 Kështu që ne t'i jepte madhësinë e ints, i cili Ne kemi mësuar ishte se si shumë bytes? 1107 00:45:19,641 --> 00:45:20,140 STUDENT: 4. 1108 00:45:20,140 --> 00:45:22,920 HANNAH: 4, e bukur, dhe ne duan 10 e atyre në një rresht, 1109 00:45:22,920 --> 00:45:28,050 kështu që ne kemi hapësirë ​​të mjaftueshme për të ruajtur të gjitha 10 integers, në këtë rast. 1110 00:45:28,050 --> 00:45:31,290 Diçka super të rëndësishme, çdo kohë që ju e quani malloc, 1111 00:45:31,290 --> 00:45:32,880 ju duhet të kontrolloni për të null. 1112 00:45:32,880 --> 00:45:37,310 Nëse ju nuk e kontrolloni for null, mirë, malloc në qoftë se ajo shkon jashtë hapësirës 1113 00:45:37,310 --> 00:45:40,400 dhe mund të ju jap më asnjë më shumë memorie, ajo do të kthehet null. 1114 00:45:40,400 --> 00:45:42,060 1115 00:45:42,060 --> 00:45:45,630 Pra, nëse ju nuk e shikoni, malloc mund të kthehen null. 1116 00:45:45,630 --> 00:45:51,265 Dhe pastaj, nëse ne përpiqemi të dereference një akrep pavlefshëm, 1117 00:45:51,265 --> 00:45:54,960 ne jemi duke shkuar për të marrë një defekt segmentimit, të cilat ne do të flasim për të drejtën tani. 1118 00:45:54,960 --> 00:45:56,150 1119 00:45:56,150 --> 00:45:56,650 Awesome. 1120 00:45:56,650 --> 00:45:58,300 >> OK, pyetje me malloc? 1121 00:45:58,300 --> 00:46:00,044 1122 00:46:00,044 --> 00:46:00,544 Po? 1123 00:46:00,544 --> 00:46:05,460 >> STUDENTORE: A kontrolluar null [Padëgjueshme] nuk e bëjmë atë në quiz? 1124 00:46:05,460 --> 00:46:08,100 >> HANNAH: Sigurisht, pyetja ishte e bën atë të matter-- në quiz, 1125 00:46:08,100 --> 00:46:10,420 do të merrni pikë off nëse ju nuk e shikoni for null? 1126 00:46:10,420 --> 00:46:12,794 Po, ju do të merrni pikë off në qoftë se ju nuk e shikoni for null. 1127 00:46:12,794 --> 00:46:16,030 Çdo herë që ju e quani malloc, si në quiz dhe psets tuaj dhe në jetën e vërtetë, 1128 00:46:16,030 --> 00:46:17,155 ju duhet të kontrolloni për të null. 1129 00:46:17,155 --> 00:46:18,330 Pyetje e mirë. 1130 00:46:18,330 --> 00:46:19,689 >> Gabe: Çka nëse unë nuk do të të lirë? 1131 00:46:19,689 --> 00:46:21,730 HANNAH: Gabe dëshiron të dijë çka nëse ne nuk e bëjmë falas. 1132 00:46:21,730 --> 00:46:25,030 Atëherë ne do të kemi një rrjedhje kujtesës në grumbull tonë. 1133 00:46:25,030 --> 00:46:26,140 Çdo pyetje të tjera? 1134 00:46:26,140 --> 00:46:27,550 Po? 1135 00:46:27,550 --> 00:46:30,120 >> STUDENT: Mund you-- shkojnë mbi tampon del nga shtrati vërtetë të shpejtë përsëri? 1136 00:46:30,120 --> 00:46:30,530 >> HANNAH: Sigurisht. 1137 00:46:30,530 --> 00:46:33,071 Pyetja u mund të shkojë mbi tampon del nga shtrati me të vërtetë të shpejtë. 1138 00:46:33,071 --> 00:46:35,050 Le të kthehemi në ato slides. 1139 00:46:35,050 --> 00:46:37,430 Pra, një tampon, ju mund vetëm të të mendojnë për atë si një grup, e drejtë? 1140 00:46:37,430 --> 00:46:39,360 Ju keni disa hapësirë ​​në memorie. 1141 00:46:39,360 --> 00:46:43,580 Dhe kur ne së pari të krijojë rrjet tonë, ne e dimë vargjeve kemi caktuar madhësinë, 1142 00:46:43,580 --> 00:46:45,470 ose tampon tonë ka një madhësi të caktuar. 1143 00:46:45,470 --> 00:46:51,360 >> Pra, le të themi në këtë rast, ne kemi vetëm hapësirë ​​të mjaftueshme për të shkruar vargun përshëndetje. 1144 00:46:51,360 --> 00:46:57,340 Nëse shkojmë kaluara se lidhur, në qoftë se ne do të shkojmë kaluara ajo array tonë kemi thënë se mund të mbajë, 1145 00:46:57,340 --> 00:46:59,780 ne fakt mund të fillojë shkrim në kujtesë 1146 00:46:59,780 --> 00:47:01,780 se kompjuteri nuk na duan të shkruajnë në. 1147 00:47:01,780 --> 00:47:02,810 1148 00:47:02,810 --> 00:47:05,580 Dhe në mënyrë të veçantë, në qoftë se ne e goditi diçka si kthim 1149 00:47:05,580 --> 00:47:08,700 adresuar të funksionit, i cili, si çdo pjesë tjetër e kujtesës, 1150 00:47:08,700 --> 00:47:11,420 është vetëm diku në tuaj kompjuter, ju mund të vërtetë 1151 00:47:11,420 --> 00:47:14,080 ndryshojë atë dhe të fillojnë të bëjnë gjëra të këqija. 1152 00:47:14,080 --> 00:47:15,272 Përgjigjem pyetjes tuaj? 1153 00:47:15,272 --> 00:47:16,230 Tmerrshëm, çdo gjë tjetër? 1154 00:47:16,230 --> 00:47:17,466 Po? 1155 00:47:17,466 --> 00:47:21,948 >> STUDENT: Pra, rafte [padëgjueshme], ju tha të shkojë nga poshtë lart. 1156 00:47:21,948 --> 00:47:25,434 Brenda rrezes rafte, bën kujtesës shkojnë nga, si, 1157 00:47:25,434 --> 00:47:27,230 krye poshtë i përkasin çdo pushim? 1158 00:47:27,230 --> 00:47:28,646 1159 00:47:28,646 --> 00:47:32,100 >> HANNAH: Si you-- shtyjë të Rob në këtë një të tillë. 1160 00:47:32,100 --> 00:47:35,370 1161 00:47:35,370 --> 00:47:38,213 >> Rob: Ajo do të rritet në të njëjtin drejtim si rafte rritet. 1162 00:47:38,213 --> 00:47:38,712 HANNAH: OK. 1163 00:47:38,712 --> 00:47:40,967 Rob: Kështu që unë të marrë hutuar. 1164 00:47:40,967 --> 00:47:42,331 Kjo do të jetë abstraksion. 1165 00:47:42,331 --> 00:47:42,831 HANNAH: OK. 1166 00:47:42,831 --> 00:47:44,000 Rob: Kjo është e saktë. 1167 00:47:44,000 --> 00:47:49,420 Pra, nëse rafte është në rritje up, atëherë generally-- atë 1168 00:47:49,420 --> 00:47:52,380 nuk duhet të jetë si kjo. por ju mund të deklarojë int x. 1169 00:47:52,380 --> 00:47:54,120 Pastaj ju deklaroj y int. 1170 00:47:54,120 --> 00:47:57,300 Pastaj int x do të jetë në përgjithësi më të ulët në rafte se y int. 1171 00:47:57,300 --> 00:47:59,300 Por kjo është vetëm një fakt. 1172 00:47:59,300 --> 00:48:02,410 Kjo nuk është si një gjë e rëndësishme farë. 1173 00:48:02,410 --> 00:48:06,800 >> Rob: Pra pyetja përsëri ishte vetëm çfarë ndodh çdo frame ndërton. 1174 00:48:06,800 --> 00:48:08,960 Pra, çdo funksion merr a pak copë rafte. 1175 00:48:08,960 --> 00:48:13,030 Dhe si ju shkoni lart, në atë pak pjesë, në atë kuadër, 1176 00:48:13,030 --> 00:48:16,710 ne do të themi se variablat brenda kësaj kornize të lëvizë lart. 1177 00:48:16,710 --> 00:48:17,473 Pyetje? 1178 00:48:17,473 --> 00:48:18,688 >> Rob: Vetëm të jetë në mic. 1179 00:48:18,688 --> 00:48:19,396 HANNAH: Oh, po. 1180 00:48:19,396 --> 00:48:20,440 Rob: Unë do të flas në ju. 1181 00:48:20,440 --> 00:48:21,410 HANNAH: Oh, yeah, OK. 1182 00:48:21,410 --> 00:48:24,150 Rob: Përjashtim është për vargjeve dhe structs, 1183 00:48:24,150 --> 00:48:27,470 ku vargjeve, një më të ulët Indeksi në grup, 1184 00:48:27,470 --> 00:48:29,930 dhe në structs në larta fushë në structs 1185 00:48:29,930 --> 00:48:35,040 janë të garantuara të jenë në adresat më të ulët se një vlerë të mëvonshme në rrjet. 1186 00:48:35,040 --> 00:48:36,720 Pra, ata që janë të garantuara. 1187 00:48:36,720 --> 00:48:40,310 Por çdo variabla të veçantë brenda, si int x dhe int y brenda një funksion, 1188 00:48:40,310 --> 00:48:43,030 nuk ka marrëdhënie të nevojshme mes adresat e tyre. 1189 00:48:43,030 --> 00:48:44,882 1190 00:48:44,882 --> 00:48:46,340 HANNAH: Një pyetje këtu? 1191 00:48:46,340 --> 00:48:51,620 STUDENT: Pra, në tampon Fluksi, vetëm buffer overflow 1192 00:48:51,620 --> 00:48:54,980 ndodhur vetëm kur ju kanë, si, të caktuar 1193 00:48:54,980 --> 00:49:01,056 një sasi e një grup atëherë që është më e madhe? 1194 00:49:01,056 --> 00:49:03,230 Si, mund të ju? 1195 00:49:03,230 --> 00:49:05,435 Pra, nëse ju jeni duke kërkuar për diçka nga user-- 1196 00:49:05,435 --> 00:49:06,018 >> HANNAH: Mm-HM. 1197 00:49:06,018 --> 00:49:08,600 STUDENTORE: A mund që me forcë ju jap diçka prapa 1198 00:49:08,600 --> 00:49:11,777 kjo është më e madhe se çdo gjë ju keni ndarë për ta? 1199 00:49:11,777 --> 00:49:13,610 HANNAH: Sigurisht, në mënyrë që Pyetja ishte në thelb, 1200 00:49:13,610 --> 00:49:16,217 mund të ju jap përdoruesit më shumë se ju kërkoni? 1201 00:49:16,217 --> 00:49:16,800 STUDENT: Po. 1202 00:49:16,800 --> 00:49:18,480 HANNAH: E pra, ju mund të parandaluar përdoruesit të bëjnë këtë. 1203 00:49:18,480 --> 00:49:21,350 Ju mund të thoni në mënyrë specifike nuk më jepni më shumë se x numri nga bytes 1204 00:49:21,350 --> 00:49:24,330 Unë ju kam dhënë vetëm vend për x numri nga bytes, x numrin e karaktereve. 1205 00:49:24,330 --> 00:49:25,700 Pra, kjo është diçka që ju doni të parandaluar. 1206 00:49:25,700 --> 00:49:26,199 Po? 1207 00:49:26,199 --> 00:49:30,270 Cili është dallimi në mes rafte del nga shtrati dhe tampon del nga shtrati? 1208 00:49:30,270 --> 00:49:32,140 >> HANNAH: OK, kështu rafte overflow-- oh, çfarë 1209 00:49:32,140 --> 00:49:34,790 është dallimi në mes rafte del nga shtrati tampon del nga shtrati dhe? 1210 00:49:34,790 --> 00:49:37,581 Pra, ne duam të mendojmë për overflow rafte ndodh kur ne jemi në të vërtetë 1211 00:49:37,581 --> 00:49:39,530 stacking up këto thirrje funksion. 1212 00:49:39,530 --> 00:49:42,991 Le të thonë se ju keni një funksion gjithkund rekursive, sepse ne e dimë se çdo herë që 1213 00:49:42,991 --> 00:49:45,240 thërrasë një funksion, është e merr kornizë e vet në rafte. 1214 00:49:45,240 --> 00:49:47,950 >> Pra, ne rafte shumë të lartë, dhe atëherë ne fillojmë të fryhen. 1215 00:49:47,950 --> 00:49:50,530 Dhe ne i përdorim shumë memorie, dhe ne nuk kemi lënë kudo. 1216 00:49:50,530 --> 00:49:51,590 Ne kemi marrë atë gabim. 1217 00:49:51,590 --> 00:49:53,930 >> Buffer overflow është brenda një programi. 1218 00:49:53,930 --> 00:49:57,180 Ne duam nuk mund domosdoshmërisht të ketë dalë jashtë kujtesës në të njëjtën mënyrë 1219 00:49:57,180 --> 00:50:00,080 që ne të mund në qoftë se ne jemi stacking up kaq shumë thirrje funksion, 1220 00:50:00,080 --> 00:50:04,540 por kemi shkruar e kaluara e kujtesës që ne e dimë që ne mund të përdorim. 1221 00:50:04,540 --> 00:50:06,170 Dhe kjo na lejon të bëjmë gjëra të këqija. 1222 00:50:06,170 --> 00:50:08,060 1223 00:50:08,060 --> 00:50:08,560 Vërtet? 1224 00:50:08,560 --> 00:50:10,950 >> Rob: Po, ju mund të dëshironi për të përsëritur vetëm këtë, 1225 00:50:10,950 --> 00:50:12,699 por ju mund të mendoni i del nga shtrati rafte 1226 00:50:12,699 --> 00:50:15,374 si si një lloji të veçantë i buffer overflow. 1227 00:50:15,374 --> 00:50:17,665 Ose ju vetëm mendoni për tuaj rafte si një tampon të vërtetë të madhe. 1228 00:50:17,665 --> 00:50:20,724 Pastaj, kur ju del nga shtrati ju rafte, kjo është lloj i si një tampon del nga shtrati. 1229 00:50:20,724 --> 00:50:23,390 Por a del nga shtrati pirg është vetëm një term specifik përdoret kur rafte 1230 00:50:23,390 --> 00:50:24,310 vetë përplot. 1231 00:50:24,310 --> 00:50:27,500 >> HANNAH: E drejta, në mënyrë që të të përsëritur për video, 1232 00:50:27,500 --> 00:50:31,756 ajo që ju mund të mendoni për rafte overflow si një lloj specifik i buffer overflow. 1233 00:50:31,756 --> 00:50:33,040 Ftohtë? 1234 00:50:33,040 --> 00:50:34,562 Çdo pyetje më shumë para se të shkojnë në? 1235 00:50:34,562 --> 00:50:35,380 1236 00:50:35,380 --> 00:50:35,880 Awesome. 1237 00:50:35,880 --> 00:50:37,130 1238 00:50:37,130 --> 00:50:39,727 >> OK, cool, kështu që le të flasim për disa mesazhe të përbashkëta gabimit. 1239 00:50:39,727 --> 00:50:42,060 Kjo është diçka që ka treguar deri në kuize të shumta, 1240 00:50:42,060 --> 00:50:44,740 kështu diçka që është e vlefshme duke marrë një vështrim të dytë në. 1241 00:50:44,740 --> 00:50:46,860 Unë jam i sigurt që ju keni hasur të paktën disa nga këto 1242 00:50:46,860 --> 00:50:48,690 si ju jeni duke bërë problemi juaj përcakton. 1243 00:50:48,690 --> 00:50:50,980 Pra, sigurohuni që ju mund të bisedoni rreth tyre në quiz. 1244 00:50:50,980 --> 00:50:52,990 >> Pra, e para është a faji segmentimit. 1245 00:50:52,990 --> 00:50:55,250 Dhe kjo është çdo herë që përpiqen për të hyrë në kujtesën 1246 00:50:55,250 --> 00:50:57,130 se ne nuk jemi të lejuar për të hyrë. 1247 00:50:57,130 --> 00:51:00,280 Pra, ju migh keni parë këtë, për shembull, në Breakout. 1248 00:51:00,280 --> 00:51:03,390 Nëse zbuluar përplasje null kthehen, dhe pastaj ju 1249 00:51:03,390 --> 00:51:05,500 u përpoq për të bërë diçka me atë vlerë null, 1250 00:51:05,500 --> 00:51:08,147 kompjuteri do të japë ju a faji segmentimit. 1251 00:51:08,147 --> 00:51:10,730 Pra, një, një gjë e rëndësishme për të të bëni në mënyrë që të përpiqen për të shmangur këtë 1252 00:51:10,730 --> 00:51:12,000 është që të kontrolloni gjithmonë for null. 1253 00:51:12,000 --> 00:51:13,300 1254 00:51:13,300 --> 00:51:16,180 >> Ju mund të keni parë edhe Deklarata implicit i funksionit. 1255 00:51:16,180 --> 00:51:18,370 Pra, kjo është ajo që ndodh kur Allison ju tregoi 1256 00:51:18,370 --> 00:51:20,150 sa kemi bërë një prototip, të drejtë? 1257 00:51:20,150 --> 00:51:23,440 Pra, le të thonë se ne kemi disa funksion që ne define. 1258 00:51:23,440 --> 00:51:24,440 Le të thonë kubike. 1259 00:51:24,440 --> 00:51:27,120 Dhe kjo shkon në fund e funksionit tonë, nën kryesore. 1260 00:51:27,120 --> 00:51:35,205 >> Nëse ne të harrojmë për të treguar në lidhje me kompjuterin kubike, kur kryesor përpiqet për të thirrur kubike, 1261 00:51:35,205 --> 00:51:36,830 kompjuter do të jetë, si, oh my gosh. 1262 00:51:36,830 --> 00:51:38,300 Unë nuk kam asnjë ide se çfarë do të thotë. 1263 00:51:38,300 --> 00:51:39,760 Unë nuk e di se çfarë të bëni, këtu. 1264 00:51:39,760 --> 00:51:41,594 Kështu prototip thotë mos u bëni merak. 1265 00:51:41,594 --> 00:51:42,510 Unë jam duke shkuar për të ju them. 1266 00:51:42,510 --> 00:51:43,132 >> Ajo do të vijë. 1267 00:51:43,132 --> 00:51:43,840 Mos bërtas në mua. 1268 00:51:43,840 --> 00:51:46,697 Mos jepni një implicit Deklarata e funksionit. 1269 00:51:46,697 --> 00:51:49,280 Pra, nëse ju merrni këtë gabim, një gjë që ju jeni do të dëshironi të bëni 1270 00:51:49,280 --> 00:51:50,821 është sigurohuni që ju keni prototip tuaj. 1271 00:51:50,821 --> 00:51:52,320 1272 00:51:52,320 --> 00:51:53,230 OK? 1273 00:51:53,230 --> 00:51:55,680 >> Dhe e fundit por jo më pak, Identifikuesi pashpallur 1274 00:51:55,680 --> 00:52:00,570 është në thelb, kur ju përpiqeni të përdorni një variabël që nuk e kanë deklaruar. 1275 00:52:00,570 --> 00:52:03,449 Pra, të gjithë një e papritur ju filloni duke thënë se si n plus plus. 1276 00:52:03,449 --> 00:52:04,740 Dhe kompjuteri thotë se çfarë është n? 1277 00:52:04,740 --> 00:52:06,660 Ju kurrë nuk më tha n ishte një gjë. 1278 00:52:06,660 --> 00:52:10,930 >> Pra, një gjë që ju duhet të bëni të sigurtë që ju ka është tregoni kompjuter se çfarë n është. 1279 00:52:10,930 --> 00:52:13,320 Kështu për shembull, n mund të jetë një numër të plotë. 1280 00:52:13,320 --> 00:52:14,999 Dhe pastaj ju do të shmangur këtë gabim. 1281 00:52:14,999 --> 00:52:16,290 Çdo pyetje mbi gabime të zakonshme? 1282 00:52:16,290 --> 00:52:17,260 Po? 1283 00:52:17,260 --> 00:52:19,344 >> STUDENT: Për implicit Deklarata e funksionit, 1284 00:52:19,344 --> 00:52:22,343 mund gjithashtu të jetë që ju të lënë pas dore një e bibliotekave që ju është dashur 1285 00:52:22,343 --> 00:52:24,400 për të përfshirë, në vend se prototip? 1286 00:52:24,400 --> 00:52:26,359 >> HANNAH: E drejta, në mënyrë që Pyetja ishte, mund të ju 1287 00:52:26,359 --> 00:52:28,650 të merrni këtë gabim, nëse ju harruar të përfshijë një bibliotekë. 1288 00:52:28,650 --> 00:52:29,085 >> STUDENT: Po. 1289 00:52:29,085 --> 00:52:30,876 >> HANNAH: Absolutisht, sepse në të njëjtën mënyrë 1290 00:52:30,876 --> 00:52:33,540 që ne duam të vënë prototypes tonë para funksion kryesor, 1291 00:52:33,540 --> 00:52:37,717 në qoftë se ne kemi një bibliotekë, ata që po shkojnë në thelb përfshijnë prototipe, 1292 00:52:37,717 --> 00:52:39,425 përfshijnë përkufizimet e funksioneve. 1293 00:52:39,425 --> 00:52:40,585 Pyetja e madhe. 1294 00:52:40,585 --> 00:52:43,230 >> STUDENT: Për një segmentimi faji, do që të 1295 00:52:43,230 --> 00:52:47,350 të ndodhë në qoftë se ne, si, u përpoq për të hyrë në një ndryshore, 1296 00:52:47,350 --> 00:52:51,947 si, në një [e padëgjueshme] të ndryshme se sa është deklaruar në? 1297 00:52:51,947 --> 00:52:54,030 HANNAH: Sigurisht, kështu që do të kemi merrni një defekt segmentimit 1298 00:52:54,030 --> 00:52:56,270 në qoftë se ne u përpoq për të hyrë në një ndryshueshme jashtë fushës? 1299 00:52:56,270 --> 00:52:57,104 A ishte kjo një pyetje? 1300 00:52:57,104 --> 00:52:57,645 STUDENT: Po. 1301 00:52:57,645 --> 00:52:58,430 HANNAH: Beautiful. 1302 00:52:58,430 --> 00:53:01,840 Pra ndoshta, ju jeni do të merrni një error padeklaruar identifikues vend. 1303 00:53:01,840 --> 00:53:04,006 Pra, kjo është vetëm do të thonë Unë nuk e di se çka është. 1304 00:53:04,006 --> 00:53:04,920 1305 00:53:04,920 --> 00:53:05,920 Cool, çdo gjë tjetër? 1306 00:53:05,920 --> 00:53:07,744 1307 00:53:07,744 --> 00:53:08,980 Po, OK, e bukur. 1308 00:53:08,980 --> 00:53:10,330 1309 00:53:10,330 --> 00:53:12,400 >> Të gjitha Righty, kështu recursion. 1310 00:53:12,400 --> 00:53:15,160 Kështu që unë përmenda nja dy herë që ne të mund të merrni një overflow rafte 1311 00:53:15,160 --> 00:53:17,919 sepse ne jemi duke bërë thirrje tonë funksion gjithkund rekursive kaq shumë herë. 1312 00:53:17,919 --> 00:53:20,210 Ne jemi duke marrë të gjitha këto rafte korniza, blah, blah, blah. 1313 00:53:20,210 --> 00:53:22,420 Çfarë është edhe një funksion gjithkund rekursive? 1314 00:53:22,420 --> 00:53:25,680 E pra, një funksion gjithkund rekursive është çdo funksion që e quan veten. 1315 00:53:25,680 --> 00:53:26,820 1316 00:53:26,820 --> 00:53:30,160 >> Disa gjëra të jetë i vetëdijshëm kur ju janë zbatuar funksion gjithkund rekursive, 1317 00:53:30,160 --> 00:53:31,940 mos harroni që të përfshijë një rast bazë. 1318 00:53:31,940 --> 00:53:34,010 Një rast është bazë Pika në të cilën ne fund. 1319 00:53:34,010 --> 00:53:38,740 Kështu, për shembull, në qoftë se ne jemi kodim, , Thonë, Fibonacci rekurzive, 1320 00:53:38,740 --> 00:53:43,210 ne duam të sigurohemi se kur ne të merrni me 0 ose numri i parë Fibonacci, 1321 00:53:43,210 --> 00:53:46,220 këto dy numra kanë këto raste, për shkak se ata nuk janë të varur 1322 00:53:46,220 --> 00:53:47,700 për gjërat që erdhi para. 1323 00:53:47,700 --> 00:53:48,990 Ata që kanë vlerat e tyre. 1324 00:53:48,990 --> 00:53:51,270 1325 00:53:51,270 --> 00:53:55,320 >> Disa pro të recursion, e cila është një Pyetja që ne kemi parë në kuize kaluara. 1326 00:53:55,320 --> 00:53:57,930 Ata mund të çojë në më shumë konciz, kodin elegant. 1327 00:53:57,930 --> 00:54:00,510 Dhe një shumë të funksioneve, një Shumë algoritme të ndryshme, 1328 00:54:00,510 --> 00:54:02,350 në fakt hua veten e tyre për recursion. 1329 00:54:02,350 --> 00:54:05,510 Përkufizimi i tyre mund të jetë rekursive në vetvete. 1330 00:54:05,510 --> 00:54:06,980 Pra, Fibonacci është një. 1331 00:54:06,980 --> 00:54:07,860 Faktoriale është një. 1332 00:54:07,860 --> 00:54:10,480 Merge lloj të thotë one-- gjitha gjërat që ju mund të shikoni në. 1333 00:54:10,480 --> 00:54:12,650 1334 00:54:12,650 --> 00:54:13,460 OK, ndonjë pyetje? 1335 00:54:13,460 --> 00:54:13,960 Po? 1336 00:54:13,960 --> 00:54:15,644 1337 00:54:15,644 --> 00:54:19,612 >> STUDENTORE: A është një rast qoshe të ngjashme me një rast bazë? 1338 00:54:19,612 --> 00:54:22,590 Apo është se për disa të tjera lloj [padëgjueshme]? 1339 00:54:22,590 --> 00:54:25,170 >> HANNAH: Sigurisht, kështu që një Rasti qoshe është kaq any-- 1340 00:54:25,170 --> 00:54:27,580 është rasti qoshe njëjtë si rasti bazë? 1341 00:54:27,580 --> 00:54:32,825 Një rast qoshe është asgjë se juaj Kodi mund të sillen pak ndryshe. 1342 00:54:32,825 --> 00:54:34,450 1343 00:54:34,450 --> 00:54:38,610 Rasti bazë është lloj i lidhur me ne se ata janë si raste të veçanta 1344 00:54:38,610 --> 00:54:40,240 që ju dëshironi të shikoni në. 1345 00:54:40,240 --> 00:54:43,240 Por ideja e një rast bazë është se ju doni funksionin tuaj rekursive 1346 00:54:43,240 --> 00:54:44,870 për të ndaluar në një pikë. 1347 00:54:44,870 --> 00:54:46,490 Ajo nuk mund të mbani duke e quajtur veten përgjithmonë. 1348 00:54:46,490 --> 00:54:47,781 Ajo ka nevojë për të ndaluar në një pikë. 1349 00:54:47,781 --> 00:54:49,340 1350 00:54:49,340 --> 00:54:53,460 >> Rob: Po, shpesh, raste tuaj bazë mund të jenë shembuj të bazave qoshe. 1351 00:54:53,460 --> 00:54:55,876 >> HANNAH: E drejta, cool, çdo gjë? 1352 00:54:55,876 --> 00:54:58,732 >> STUDENTORE: A mund të shpjegoni bazon pak më shumë? 1353 00:54:58,732 --> 00:55:01,600 Unë nuk e kuptoj fare [Padëgjueshme] raste bazë. 1354 00:55:01,600 --> 00:55:02,676 >> HANNAH: Nga rastet bazë? 1355 00:55:02,676 --> 00:55:03,140 >> STUDENT: raste Base, vërtet. 1356 00:55:03,140 --> 00:55:03,770 >> HANNAH: Oh yeah, i sigurt. 1357 00:55:03,770 --> 00:55:04,270 Le të shohim. 1358 00:55:04,270 --> 00:55:05,480 A kemi të shkruaj këtu? 1359 00:55:05,480 --> 00:55:06,690 1360 00:55:06,690 --> 00:55:07,320 Po, ne e bëjmë. 1361 00:55:07,320 --> 00:55:09,530 OK, kështu që me të vërtetë të shpejtë, unë do të përpiqen për të shkruar mjaft e madhe 1362 00:55:09,530 --> 00:55:11,320 kështu që ju mund të shihni në ekran. 1363 00:55:11,320 --> 00:55:13,490 Le të flasim në lidhje me, të vërtetë shpejt, Fibonacci. 1364 00:55:13,490 --> 00:55:15,550 Kështu që unë do të ju jap sekuenca Fibonacci. 1365 00:55:15,550 --> 00:55:17,090 Ju mund të kërkoni përkufizimin. 1366 00:55:17,090 --> 00:55:26,050 >> Thelb, secili numër në sekuencën është shuma e dy numrave të mëparshme. 1367 00:55:26,050 --> 00:55:29,720 OK, kështu që rruga që unë vetëm përshkruar Fibonacci, 1368 00:55:29,720 --> 00:55:31,530 ju mund të dëgjoni recursion, e drejtë? 1369 00:55:31,530 --> 00:55:35,280 Kur kam thënë çdo numër është shuma e dy numrave të mëparshme, 1370 00:55:35,280 --> 00:55:36,420 ne mund të themi OK. 1371 00:55:36,420 --> 00:55:38,570 Well, Fibonacci n number-- kështu le të 1372 00:55:38,570 --> 00:55:42,260 thonë se ne e kemi këtë funksion quajtur gënjej fib-- të n 1373 00:55:42,260 --> 00:55:48,260 do të jetë e barabartë me gënjeshtër e n minus 1 plus-- keq, 1374 00:55:48,260 --> 00:55:51,240 ne do të shkojnë për në vijën e ardhshme mbi FIB here-- e n minus 2. 1375 00:55:51,240 --> 00:55:52,790 1376 00:55:52,790 --> 00:55:56,790 >> OK, kështu që ky punon e madhe në qoftë se ju jeni duke kërkuar në, për shembull, zero, një, 1377 00:55:56,790 --> 00:55:59,410 dy, tre, katër, Numri i pestë Fibonacci, 1378 00:55:59,410 --> 00:56:03,561 ku ju mund të them se 5 është e barabartë me 2 plus 3. 1379 00:56:03,561 --> 00:56:05,060 Por, çfarë nëse ju jeni në fillim? 1380 00:56:05,060 --> 00:56:07,184 Çfarë ndodh nëse ju jeni vetëm duke goditur këto dy vlera të parë? 1381 00:56:07,184 --> 00:56:08,470 1382 00:56:08,470 --> 00:56:11,330 >> Për të marrë këtë 1, ju nuk mund të thonë shtoni dy e mëparshme, 1383 00:56:11,330 --> 00:56:13,930 për shkak se zero and-- unë nuk e di. 1384 00:56:13,930 --> 00:56:15,390 Pra, në një pikë, ne kemi nevojë për të ndaluar. 1385 00:56:15,390 --> 00:56:21,250 Në një moment, ne duhet të themi se këto dy vetëm kanë përkufizimet e tyre. 1386 00:56:21,250 --> 00:56:23,890 Numri 0 Fibonacci është 0. 1387 00:56:23,890 --> 00:56:26,115 Dhe numri i parë Fibonacci është 1. 1388 00:56:26,115 --> 00:56:34,120 >> Kështu që rruga që unë mund të kodit këtë, unë tha nëse n është më pak se dy, 1389 00:56:34,120 --> 00:56:35,130 atëherë vetëm kthehen n. 1390 00:56:35,130 --> 00:56:36,494 Dhe kjo do të jetë rasti im bazë. 1391 00:56:36,494 --> 00:56:38,660 Kjo është se si unë e di për të ndaluar me një funksion gjithkund rekursive. 1392 00:56:38,660 --> 00:56:40,640 1393 00:56:40,640 --> 00:56:41,410 A është kjo e qartë? 1394 00:56:41,410 --> 00:56:41,940 Awesome. 1395 00:56:41,940 --> 00:56:43,260 Çdo gjë tjetër në recursion? 1396 00:56:43,260 --> 00:56:44,890 1397 00:56:44,890 --> 00:56:45,930 Beautiful. 1398 00:56:45,930 --> 00:56:48,750 >> Le të shpejt të flasim për kërko dhe herë drejtuar lloj. 1399 00:56:48,750 --> 00:56:52,660 Dhe atëherë unë do të jap disa Davin Koha për të folur në lidhje me kodim shembuj. 1400 00:56:52,660 --> 00:56:56,490 Kështu që këtu janë kërkimi kryesore dhe llojet që ju duhet të dini rreth. 1401 00:56:56,490 --> 00:56:59,500 Guarantee-- Unë nuk mund të garantojë, sepse unë nuk e kam parë quiz-- 1402 00:56:59,500 --> 00:57:01,940 por kjo vjen deri quiz pas quiz pas lënë. 1403 00:57:01,940 --> 00:57:04,050 Pra, patjetër të përdorni këtë tabelë. 1404 00:57:04,050 --> 00:57:05,682 Ashtu si, marrë këtë tabelë. 1405 00:57:05,682 --> 00:57:06,890 Vënë atë mbi mashtrojnë fletë tuaj. 1406 00:57:06,890 --> 00:57:07,931 Ju do të jetë një person i lumtur. 1407 00:57:07,931 --> 00:57:09,010 1408 00:57:09,010 --> 00:57:12,590 >> Kjo na tregon herë të kandidojë e secilit këto renditje dhe kërkimit algoritme. 1409 00:57:12,590 --> 00:57:14,020 1410 00:57:14,020 --> 00:57:18,850 Pra kërkim linear, ju mund të shihni të kandidojë kohë, dhe njëjtë me kërkimin binar. 1411 00:57:18,850 --> 00:57:21,490 Go mbi çfarë këto algoritme të bëjë, ide të përgjithshme. 1412 00:57:21,490 --> 00:57:24,220 Shikoni në një pseudokod, nëse jo kodin vetë. 1413 00:57:24,220 --> 00:57:25,610 1414 00:57:25,610 --> 00:57:30,380 >> Ju do të shihni se ka një lloj flluskë a sipërme lidhur në rastin më të keq të n katror. 1415 00:57:30,380 --> 00:57:31,490 1416 00:57:31,490 --> 00:57:34,680 Pra, nëse array tonë ishte krejtësisht prapa para se ne donim ta zgjidhur atë, 1417 00:57:34,680 --> 00:57:37,090 ne do të thonë se kjo është e do të marrin hapa ne katror n. 1418 00:57:37,090 --> 00:57:38,160 1419 00:57:38,160 --> 00:57:41,730 Por, në rastin më të mirë, kështu që ulët i detyruar për rastin më të mirë 1420 00:57:41,730 --> 00:57:44,300 do të jetë në qoftë se është tashmë të renditura në mënyrë të përkryer. 1421 00:57:44,300 --> 00:57:46,671 Atëherë të gjithë ne duhet të bëni është të kontrolloni se është e renditura. 1422 00:57:46,671 --> 00:57:47,921 A ka një pyetje këtu? 1423 00:57:47,921 --> 00:57:49,805 >> STUDENT: Kur do të ju doni të përdorni lloj? 1424 00:57:49,805 --> 00:57:50,747 Lloj. 1425 00:57:50,747 --> 00:57:52,160 Unë jam vetëm kurioz. 1426 00:57:52,160 --> 00:57:53,510 >> HANNAH: Kur do t'ju dëshironi të shfrytëzoni përzgjedhjes lloj? 1427 00:57:53,510 --> 00:57:54,010 Kjo? 1428 00:57:54,010 --> 00:57:55,705 Ai që është katror n në të dyja rastet? 1429 00:57:55,705 --> 00:57:56,860 >> STUDENT: [padëgjueshme]. 1430 00:57:56,860 --> 00:57:58,151 >> HANNAH: Pra, është shumë e ndryshme. 1431 00:57:58,151 --> 00:58:00,760 Nëse keni specifike kërkesat për programin tuaj, 1432 00:58:00,760 --> 00:58:04,887 si gjëra të tilla si në qoftë se ne vetëm tha zbatuar një sorry-- search-- 1433 00:58:04,887 --> 00:58:06,720 zbatuar një lloj, ju do të ndoshta dëshironi të shkoni 1434 00:58:06,720 --> 00:58:09,950 për një prej atyre që ka një rast të mirë të n, 1435 00:58:09,950 --> 00:58:12,410 ose një lidhur ulët në rastin e mirë n. 1436 00:58:12,410 --> 00:58:14,790 Por nuk mund të jetë disa gjëra të tilla si, të themi, 1437 00:58:14,790 --> 00:58:16,767 Swap-et janë me të vërtetë shtrenjtë për disa arsye. 1438 00:58:16,767 --> 00:58:18,850 Pastaj ju do të dëshironi të bëni flluskë lloj, sepse ti 1439 00:58:18,850 --> 00:58:20,641 duhet të bëjnë kaq shumë Swap-et, gjëra të tilla si se. 1440 00:58:20,641 --> 00:58:21,710 1441 00:58:21,710 --> 00:58:23,098 Çdo po other--? 1442 00:58:23,098 --> 00:58:25,488 >> STUDENTORE: A do të jetë [e padëgjueshme] të them se [padëgjueshme]? 1443 00:58:25,488 --> 00:58:30,077 1444 00:58:30,077 --> 00:58:31,910 HANNAH: Kjo është një gjë që do të ju them 1445 00:58:31,910 --> 00:58:33,670 në qoftë se ju jeni duke kërkuar në zbatim. 1446 00:58:33,670 --> 00:58:35,850 Mënyrën se si unë do të të vërtetë mendoj se pse është n 1447 00:58:35,850 --> 00:58:40,840 squared është se ne kemi për të kandiduar nëpërmjet grup tonë të gjatësisë n, 1448 00:58:40,840 --> 00:58:42,765 çdo kohë duke e bërë më së shumti, n këmbime. 1449 00:58:42,765 --> 00:58:43,980 1450 00:58:43,980 --> 00:58:46,220 Dhe ne duhet ta bëjmë këtë proces n herë. 1451 00:58:46,220 --> 00:58:51,130 >> Pra, kur ju keni për të bërë më së shumti, n Swap-et dhe per n kalon nëpër rrjet, 1452 00:58:51,130 --> 00:58:52,380 atje do të jetë katror n. 1453 00:58:52,380 --> 00:58:55,480 Por po, kjo do të zbulohet përmes kësaj dyfishin për lak, 1454 00:58:55,480 --> 00:58:59,428 si pyetje asked-- ose mbivendosur për lak, unë duhet të them. 1455 00:58:59,428 --> 00:59:00,890 OK? 1456 00:59:00,890 --> 00:59:03,375 >> Dhe pastaj bashkojë lloj, e cila është lloj më të shpejtë ne tani, 1457 00:59:03,375 --> 00:59:07,560 ose që ne kemi mbuluar në CS50, e di se algorithm kryesor është 1458 00:59:07,560 --> 00:59:10,150 kjo ide e thyer në copa të renditura dhe pastaj 1459 00:59:10,150 --> 00:59:11,980 shkrirjen së bashku këto bit ndahen. 1460 00:59:11,980 --> 00:59:14,170 Dhe do të merrni të na hyni n log n. 1461 00:59:14,170 --> 00:59:17,110 Çdo pyetje mbi kërkime dhe llojet para se të kalojë atë? 1462 00:59:17,110 --> 00:59:19,840 1463 00:59:19,840 --> 00:59:21,040 Le të shohim. 1464 00:59:21,040 --> 00:59:21,800 >> Oh, listat lidhura. 1465 00:59:21,800 --> 00:59:23,210 Na vjen keq, unë kam një temë shumë. 1466 00:59:23,210 --> 00:59:25,000 OK, awesome, lidhur listat. 1467 00:59:25,000 --> 00:59:27,900 Problem me vargjeve, ata kanë një madhësi të caktuar. 1468 00:59:27,900 --> 00:59:30,634 Pra, nëse ju nuk e dini se sa e madhe input juaj do të jetë, 1469 00:59:30,634 --> 00:59:32,050 ju nuk doni për të krijuar një rrjet. 1470 00:59:32,050 --> 00:59:34,080 Sepse në qoftë se ne kemi krijuar një array kjo është shumë e vogël, 1471 00:59:34,080 --> 00:59:35,930 ne mund të kandidojë në tampon del nga shtrati. 1472 00:59:35,930 --> 00:59:38,890 >> Pra, në vend, ne mund të bëjmë diçka me lista të lidhura, të cilat 1473 00:59:38,890 --> 00:59:44,280 na lejon të kemi një dinamike Struktura e të dhënave sized 1474 00:59:44,280 --> 00:59:48,970 që do të na lejojë të ruajtur një Shuma më fleksibël e të dhënave. 1475 00:59:48,970 --> 00:59:54,030 Pra, në çdo nyjë tonë lista e lidhur, ne kemi dy copa. 1476 00:59:54,030 --> 00:59:56,820 Ne kemi vlerën aktuale që ruan. 1477 00:59:56,820 --> 00:59:59,530 Pra, kjo është vetëm diçka që ju do të shohin në rrjet, për shembull. 1478 00:59:59,530 --> 01:00:04,600 Dhe pastaj ne gjithashtu të mbajnë gjurmët e një treguesin për gjë tjetër në kujtesën. 1479 01:00:04,600 --> 01:00:06,430 >> Ndryshe vargjeve, të cilat ne e dimë të gjithë do 1480 01:00:06,430 --> 01:00:10,890 të be-- elementet array gjithë jemi një pas një tjetër në memory-- lidhur 1481 01:00:10,890 --> 01:00:13,300 Listat mund të jetë kudo në kujtesën. 1482 01:00:13,300 --> 01:00:14,590 Ata janë vende arbitrare. 1483 01:00:14,590 --> 01:00:16,410 Pra, në qoftë se ne ishim të në fakt shkojnë t'i gjeni, ne 1484 01:00:16,410 --> 01:00:19,770 duhet të mbajnë gjurmët e gjë tjetër në listën tonë. 1485 01:00:19,770 --> 01:00:22,840 >> Dhe pastaj në mënyrë që të dini ku që lista si një e tërë është, 1486 01:00:22,840 --> 01:00:26,276 të gjithë ne duhet të mbajnë gjurmët e është element i parë në listën tonë të lidhura. 1487 01:00:26,276 --> 01:00:27,900 Dhe kjo do të na lejojë të ndjekin përmes. 1488 01:00:27,900 --> 01:00:31,020 1489 01:00:31,020 --> 01:00:33,070 >> Pra, kjo është se si ju mund të përcaktojë një mënyrë. 1490 01:00:33,070 --> 01:00:36,160 Kjo është një mundësi e madhe për të përfituar nga structs. 1491 01:00:36,160 --> 01:00:39,660 Sepse ju e keni këtë ide, gjithashtu, për një nyje të caktuar, unë kam dy copa. 1492 01:00:39,660 --> 01:00:41,770 Kam vlerën aktuale vetë. 1493 01:00:41,770 --> 01:00:45,610 Dhe atëherë unë kam një tregues për element tjetër në listë të lidhura. 1494 01:00:45,610 --> 01:00:49,150 Kështu që ju shihni, ne kemi një numër të plotë n, e cila do të jetë vlera aktuale, 1495 01:00:49,150 --> 01:00:53,150 dhe pastaj një tregues për një nyje, të quajtur ardhshëm. 1496 01:00:53,150 --> 01:00:56,431 Kështu që do të jetë e ardhshme element në listën tonë të lidhura. 1497 01:00:56,431 --> 01:00:56,972 STUDENT: Po? 1498 01:00:56,972 --> 01:01:01,920 A ju duhet të specifikoni se yll është si një strukturë? 1499 01:01:01,920 --> 01:01:05,620 >> HANNAH: Po, kështu që ky është pothuajse si një lloj, 1500 01:01:05,620 --> 01:01:07,980 kjo duket si një rekursive definicioni në këtë ne 1501 01:01:07,980 --> 01:01:12,080 duhet të dini se çfarë është një nyje është brenda për të gjetur një nyje. 1502 01:01:12,080 --> 01:01:14,450 Që nga ajo nuk ka të vërtetë e di se çfarë një nyje është plotësisht 1503 01:01:14,450 --> 01:01:17,283 deri sa të kemi në fund të this-- dhe pas kësaj ne vetëm mund ta quajmë 1504 01:01:17,283 --> 01:01:21,935 një node-- brenda këtij përkufizimi, ne kemi nevojë për të thirrur atë një nyje struct. 1505 01:01:21,935 --> 01:01:22,560 Pyetja e madhe. 1506 01:01:22,560 --> 01:01:23,580 1507 01:01:23,580 --> 01:01:25,214 Çdo gjë tjetër? 1508 01:01:25,214 --> 01:01:26,198 Po? 1509 01:01:26,198 --> 01:01:29,150 >> STUDENT: Pse ne kanë për të thënë nyje dy herë? 1510 01:01:29,150 --> 01:01:33,578 Sepse, kur ishim në [padëgjueshme] ne vetëm kishte për të bërë atë në pikëpresje, 1511 01:01:33,578 --> 01:01:37,352 por tani ne duhet të gjejmë se nyje struct? [Padëgjueshme]. 1512 01:01:37,352 --> 01:01:39,060 HANNAH: Kështu që unë besoj se në shembullin e fundit, 1513 01:01:39,060 --> 01:01:42,110 ne ishim vetëm duke krijuar kurdo që ju donte për të përdorur një student, pasi që, ju 1514 01:01:42,110 --> 01:01:46,430 kishte për të përdorur e strukturës node-- Unë jam sorry-- nxënësin struct. 1515 01:01:46,430 --> 01:01:51,575 Kjo na lejohet të, pas faktit, vetëm Përdorimi nyje shtoni një tip të ri, në thelb. 1516 01:01:51,575 --> 01:01:53,324 1517 01:01:53,324 --> 01:01:53,990 Që e bëjnë kuptim? 1518 01:01:53,990 --> 01:01:54,984 1519 01:01:54,984 --> 01:01:57,150 Pra, ne do të kemi për të shkuar mbrapa dhe shikoni në kodin para. 1520 01:01:57,150 --> 01:01:59,025 Por unë do të mendoj se ne nuk e përdornim typedef. 1521 01:01:59,025 --> 01:02:02,050 Dhe ne pyetjen, pse nuk kemi nevojë për të përdorur typedef? 1522 01:02:02,050 --> 01:02:05,540 Typedef na lejon për të shmangur struct fjalë në fillim. 1523 01:02:05,540 --> 01:02:06,221 Po? 1524 01:02:06,221 --> 01:02:08,095 STUDENTORE: Çfarë lloj pyetje do të dalë 1525 01:02:08,095 --> 01:02:10,400 në drejtim në drejtim të nyjet dhe listat e lidhur? 1526 01:02:10,400 --> 01:02:15,110 >> HANNAH: Pra, një gjë është që ne mund të themi se mund të kërkoni nëpër një listë e lidhur? 1527 01:02:15,110 --> 01:02:16,930 OK, sepse kjo është një pak më e komplikuar 1528 01:02:16,930 --> 01:02:18,520 se në qoftë se ne jemi në kërkim përmes një rrjet. 1529 01:02:18,520 --> 01:02:21,472 Ne vetëm mund të shikoni në element zero, element një, dy element, blah, blah, 1530 01:02:21,472 --> 01:02:21,972 blah. 1531 01:02:21,972 --> 01:02:22,629 1532 01:02:22,629 --> 01:02:24,420 Në qoftë se ne duam që të kërkoni përmes një listë të lidhura, 1533 01:02:24,420 --> 01:02:27,229 ne do të vërtetë duhet të ndjekin ky labirint pak pointers. 1534 01:02:27,229 --> 01:02:29,270 Pra, le të shkojë në të vërtetë me këtë shumë shpejt. 1535 01:02:29,270 --> 01:02:30,460 1536 01:02:30,460 --> 01:02:32,860 Ajo që ne mund të bëjmë në urdhërojë to-- le të themi ne 1537 01:02:32,860 --> 01:02:35,430 duan të vetëm të iterate nëpërmjet listën tonë tërësisht të lidhura. 1538 01:02:35,430 --> 01:02:37,450 Ne do të fillojë në krye. 1539 01:02:37,450 --> 01:02:39,890 Dhe pastaj, në mënyrë që të lëvizin në elementin tjetër, 1540 01:02:39,890 --> 01:02:43,680 në vend të vetëm bën rritjen nga një si ne mund të në shkuar nëpër një rrjet, 1541 01:02:43,680 --> 01:02:45,720 ne jemi në të vërtetë do të ndiqni treguesin e ardhshëm, 1542 01:02:45,720 --> 01:02:48,360 kështu që ne mund të gjeni se ku në memorie element tjetër është. 1543 01:02:48,360 --> 01:02:49,357 1544 01:02:49,357 --> 01:02:51,690 Kështu që unë e di se nuk është e mjaftueshme për të të marrë të gjitha këto në të drejtë tani, 1545 01:02:51,690 --> 01:02:52,650 por ju do të keni këto slides. 1546 01:02:52,650 --> 01:02:54,730 Kështu që ju mund të shkoni nëpër këtë një pak më ngadalë. 1547 01:02:54,730 --> 01:02:56,890 Por në thelb, ajo që ne duam të bëni është të ndiqni këto pointers 1548 01:02:56,890 --> 01:02:58,550 me tërësinë e listës lidhura. 1549 01:02:58,550 --> 01:03:00,258 Pra, kjo është një pyetje ju mund të kërkohet. 1550 01:03:00,258 --> 01:03:01,920 1551 01:03:01,920 --> 01:03:03,980 >> Diçka në njoftim me futje, le të themi 1552 01:03:03,980 --> 01:03:07,925 ne kemi kërkuar për të vënë një element të ri në pjesën e përparme të listës sonë të lidhura. 1553 01:03:07,925 --> 01:03:10,800 Ne duhet të jenë shumë të kujdesshëm për rendin në të cilën ne 1554 01:03:10,800 --> 01:03:12,760 ricaktuar pointers. 1555 01:03:12,760 --> 01:03:15,230 Sepse, le të thonë se unë vetëm tha OK. 1556 01:03:15,230 --> 01:03:18,930 Bëni pikë qendrore në këtë element të ri. 1557 01:03:18,930 --> 01:03:23,550 Vetëm të bëjë atë pikë për 1 Pastaj, ne kemi thelb humbi pjesën tjetër të listës sonë, 1558 01:03:23,550 --> 01:03:25,860 sepse unë nuk e mbani mend se ku 2 jetën. 1559 01:03:25,860 --> 01:03:27,730 >> Pra, ne duhet të bëjmë në një Urdhri shumë specifike. 1560 01:03:27,730 --> 01:03:31,500 Së pari, ne kemi bërë të reja Pika element në kokë. 1561 01:03:31,500 --> 01:03:33,970 Dhe pastaj ne kemi bërë kokën pikë të elementit re. 1562 01:03:33,970 --> 01:03:38,455 Pra, le të shohim se çka do të duket si me arrows-- vetëm si kjo. 1563 01:03:38,455 --> 01:03:42,080 Pra, ju së pari duhet të re Pika element në kokë e vjetër. 1564 01:03:42,080 --> 01:03:45,990 Dhe tani, ne kemi kokën pikë të elementit të parë të re. 1565 01:03:45,990 --> 01:03:47,187 Çdo pyetje me këtë? 1566 01:03:47,187 --> 01:03:49,870 1567 01:03:49,870 --> 01:03:54,350 >> OK këtu është një kod përsëri, diçka të shikojmë pak më vonë. 1568 01:03:54,350 --> 01:03:58,630 Dhe tani unë do ta kthejnë atë mbi të Davin për GDB dhe pak praktikë 1569 01:03:58,630 --> 01:03:59,480 coding në letër. 1570 01:03:59,480 --> 01:04:00,597 1571 01:04:00,597 --> 01:04:01,096 Beautiful. 1572 01:04:01,096 --> 01:04:01,810 >> Rob: Dhe Rob. 1573 01:04:01,810 --> 01:04:02,360 >> HANNAH: Oh, Davin dhe Rob. 1574 01:04:02,360 --> 01:04:03,055 Unë jam i keq. 1575 01:04:03,055 --> 01:04:03,596 >> STUDENT: Woo! 1576 01:04:03,596 --> 01:04:08,140 1577 01:04:08,140 --> 01:04:09,110 >> Rob: Faleminderit. 1578 01:04:09,110 --> 01:04:11,209 >> Davin: A doni të thoni çdo gjë të shpejtë të vërtetë? 1579 01:04:11,209 --> 01:04:11,875 Rob: Po, po. 1580 01:04:11,875 --> 01:04:12,845 Davin: Sapo jam up. 1581 01:04:12,845 --> 01:04:16,240 1582 01:04:16,240 --> 01:04:19,520 OK, derisa Rob vë mikrofon në, kështu që çfarë është e GDB? 1583 01:04:19,520 --> 01:04:23,945 Gjithkush duhet të keni parë në GDB klasës dhe gjithashtu në të orarit të punës. 1584 01:04:23,945 --> 01:04:25,070 Dhe ju duhet të jetë duke e përdorur atë. 1585 01:04:25,070 --> 01:04:25,750 Pra, çfarë është e GDB? 1586 01:04:25,750 --> 01:04:28,030 1587 01:04:28,030 --> 01:04:28,850 Dikush? 1588 01:04:28,850 --> 01:04:29,540 >> STUDENT: Kjo është një Rregullues. 1589 01:04:29,540 --> 01:04:30,250 >> Davin: Kjo është një Rregullues. 1590 01:04:30,250 --> 01:04:31,624 Dhe çfarë e bën atë të ju lejojnë të bëni? 1591 01:04:31,624 --> 01:04:33,064 Si, pse ne si GDB? 1592 01:04:33,064 --> 01:04:34,480 STUDENT: Për të ngadalësojnë programin. 1593 01:04:34,480 --> 01:04:36,740 Davin: E drejta, kështu që ju mund të ecin nëpërmjet saj si një ritëm të njeriut. 1594 01:04:36,740 --> 01:04:38,490 Dhe kështu që çfarë janë disa komandat ju mund të bëni? 1595 01:04:38,490 --> 01:04:40,407 E pra, ndoshta është pushim komandën tuaj të preferuar. 1596 01:04:40,407 --> 01:04:43,240 Sepse kjo ju lejon të thyer program dhe në fakt ecin nëpër atë 1597 01:04:43,240 --> 01:04:44,280 rresht pas rreshti. 1598 01:04:44,280 --> 01:04:46,500 >> Run ju lejon për të drejtuar atë. 1599 01:04:46,500 --> 01:04:48,210 Tjetra, si shkelën përmes. 1600 01:04:48,210 --> 01:04:49,820 Çfarë është në mes të ardhshme dhe hap? 1601 01:04:49,820 --> 01:04:52,190 1602 01:04:52,190 --> 01:04:53,190 Prisni, thonë se me zë të lartë. 1603 01:04:53,190 --> 01:04:54,060 Ajo ishte e saktë. 1604 01:04:54,060 --> 01:04:55,280 >> STUDENT: [padëgjueshme]. 1605 01:04:55,280 --> 01:04:56,190 >> Davin: Po, awesome. 1606 01:04:56,190 --> 01:04:59,210 Pra si, tjetër dhe hap, nëse you're-- le të thonë se ju keni një funksion që ju 1607 01:04:59,210 --> 01:04:59,950 përcaktojnë. 1608 01:04:59,950 --> 01:05:03,350 Le të thonë se disa në funksion tuaj kryesor, dhe ju jeni vetëm goditur e ardhshëm, të ardhshëm, 1609 01:05:03,350 --> 01:05:03,850 tjetër. 1610 01:05:03,850 --> 01:05:05,910 Ju jeni në të vërtetë do të ekzekutuar atë funksion, 1611 01:05:05,910 --> 01:05:07,285 por ju do të jeni të hidhen mbi të. 1612 01:05:07,285 --> 01:05:09,711 Nëse ju goditi hap, ose s apo çfarëdo, ju jeni 1613 01:05:09,711 --> 01:05:11,460 do të hidhen në fakt në atë funksion, 1614 01:05:11,460 --> 01:05:14,110 dhe pastaj ju mund të goditur e ardhshme për të parë telefonatat e ndryshme 1615 01:05:14,110 --> 01:05:16,170 brenda atë funksion të veçantë. 1616 01:05:16,170 --> 01:05:16,670 Vërtet? 1617 01:05:16,670 --> 01:05:18,670 >> STUDENTORE: A ka ndonjë mënyrë të kërcejnë, si, nga mbrapa? 1618 01:05:18,670 --> 01:05:20,750 Davin: Finish, vërtet, të përfundojë me ju hidhen jashtë. 1619 01:05:20,750 --> 01:05:22,570 Kështu ajo do të përfundojë atë funksion, dhe atëherë ju jeni 1620 01:05:22,570 --> 01:05:24,153 do të jetë përsëri në kryesore, për shembull. 1621 01:05:24,153 --> 01:05:25,250 1622 01:05:25,250 --> 01:05:27,370 Print do të shtypura it out një herë. 1623 01:05:27,370 --> 01:05:29,381 Diçka që unë të përdorni përherë është shfaqur. 1624 01:05:29,381 --> 01:05:31,880 Display do të shtypura it out vazhdimisht gjatë gjithë tërësinë e 1625 01:05:31,880 --> 01:05:32,470 e programit tuaj. 1626 01:05:32,470 --> 01:05:33,810 >> Për shembull, nëse ju jeni në një lak, dhe ju 1627 01:05:33,810 --> 01:05:37,018 duan të shohin se si po ndryshon diçka, dhe ju nuk doni të, si, vazhdimisht 1628 01:05:37,018 --> 01:05:38,940 të bëjnë si të shtypura, print, print, ekran 1629 01:05:38,940 --> 01:05:43,230 do të shfaq këtë variabël vazhdimisht, çdo herë që goditi Next. 1630 01:05:43,230 --> 01:05:44,310 Dhe të vazhdojë. 1631 01:05:44,310 --> 01:05:45,905 Pra GBD, kjo është GDB. 1632 01:05:45,905 --> 01:05:47,160 1633 01:05:47,160 --> 01:05:49,180 >> STUDENTORE: Çfarë është një ku ju [padëgjueshme]? 1634 01:05:49,180 --> 01:05:50,150 1635 01:05:50,150 --> 01:05:50,900 Davin: Çfarë është kjo? 1636 01:05:50,900 --> 01:05:52,310 1637 01:05:52,310 --> 01:05:54,390 >> STUDENTORE: Çfarë është the-- variablat lokale. 1638 01:05:54,390 --> 01:05:55,364 1639 01:05:55,364 --> 01:05:57,780 Rob: Ka diçka të vërtetë si vendasit apo diçka. 1640 01:05:57,780 --> 01:05:58,140 I can't-- 1641 01:05:58,140 --> 01:05:59,930 >> Davin: Kjo mund të jetë diçka si kjo, vërtet. 1642 01:05:59,930 --> 01:06:00,830 >> HANNAH: Në vendasit? 1643 01:06:00,830 --> 01:06:01,510 >> Davin: Kjo është ajo. 1644 01:06:01,510 --> 01:06:02,134 Kjo është një. 1645 01:06:02,134 --> 01:06:03,040 Rob: Beautiful. 1646 01:06:03,040 --> 01:06:04,030 >> Davin: Po. 1647 01:06:04,030 --> 01:06:06,010 >> STUDENTORE: Çfarë do të vazhdojë të bëjë? 1648 01:06:06,010 --> 01:06:08,010 >> Davin: Ajo continues-- kështu që kjo është vetëm do të vazhdojë programet tuaja. 1649 01:06:08,010 --> 01:06:09,843 Pra, nëse ju të thyer dhe goditi vazhdojnë, kjo do 1650 01:06:09,843 --> 01:06:13,119 vetëm të drejtuar këtë program deri në ajo godet atë pushim përsëri. 1651 01:06:13,119 --> 01:06:14,910 Kështu për shembull, në qoftë se ju theu në një funksion, 1652 01:06:14,910 --> 01:06:16,720 dhe ju do të jeni për të bërë si për të loop ose diçka të tillë, 1653 01:06:16,720 --> 01:06:19,869 dhe ju goditi vazhdoni, ajo do të vazhdojnë dhe të kthehemi në atë pushim. 1654 01:06:19,869 --> 01:06:22,660 Apo nuk ka pushim, ajo do të të vazhdojë dhe të përfundojë programin. 1655 01:06:22,660 --> 01:06:25,000 >> Rob: Pra, vetëm si ndalesa drejtuar në Breakpoint e parë 1656 01:06:25,000 --> 01:06:27,010 ju goditi, në qoftë se ju pastaj hit të vazhdojë, ai do të mbajë 1657 01:06:27,010 --> 01:06:28,070 shkuar deri sa është Breakpoint ardhshme. 1658 01:06:28,070 --> 01:06:30,111 Dhe pastaj do të vazhdojë në Breakpoint tjetër. 1659 01:06:30,111 --> 01:06:31,264 1660 01:06:31,264 --> 01:06:32,680 Davin: Çdo pyetje të tjera në GDB? 1661 01:06:32,680 --> 01:06:33,577 1662 01:06:33,577 --> 01:06:35,410 Kështu që unë mendoj se në të kaluarën, ne kemi pyetur se çfarë 1663 01:06:35,410 --> 01:06:37,690 GDB është dhe të japë një shembull disa gjëra që ju 1664 01:06:37,690 --> 01:06:40,770 mund të bëjë me GDB, kështu thjeshtë të vërtetë, por të vërtet. 1665 01:06:40,770 --> 01:06:42,280 Nuk ju shkoni. 1666 01:06:42,280 --> 01:06:43,250 Dhe nyje? 1667 01:06:43,250 --> 01:06:49,571 >> Rob: Po, kështu cilin drejtim ishte ajo? 1668 01:06:49,571 --> 01:06:50,851 1669 01:06:50,851 --> 01:06:51,726 STUDENT: Kjo ishte ajo. 1670 01:06:51,726 --> 01:06:52,160 Davin: Prisni. 1671 01:06:52,160 --> 01:06:52,270 Rob: Ky djalosh? 1672 01:06:52,270 --> 01:06:52,936 Davin: Se një. 1673 01:06:52,936 --> 01:06:54,660 Rob: Ky djalosh, oh, unë nuk e kuptojnë. 1674 01:06:54,660 --> 01:06:56,940 Pra, ne nuk ishin të qarta në atë the-- unë nuk bëj 1675 01:06:56,940 --> 01:06:58,680 e di se kush was-- por pyetja. 1676 01:06:58,680 --> 01:07:01,180 Ne nuk e dimë saktësisht se çfarë ju janë pyetur në lidhje me të, kështu që vetëm 1677 01:07:01,180 --> 01:07:04,800 për të sqaruar diçka. 1678 01:07:04,800 --> 01:07:07,750 Pra, së pari, siç kam thënë më parë, typedef ju jeni gjithmonë duke përdorur vetëm 1679 01:07:07,750 --> 01:07:09,305 të krijojë një pseudonim për një lloj. 1680 01:07:09,305 --> 01:07:13,420 Pra këtu, pseudonimi jemi krijimi është për këtë lloj struct nyje. 1681 01:07:13,420 --> 01:07:18,070 >> Pra, së pari, duke injoruar këtë nyje në typedef, kështu që kjo nyje struct kaçurrel 1682 01:07:18,070 --> 01:07:21,060 shtrëngoj poshtë për kaçurrel tjetër mbajtëse është lloji nyje struct. 1683 01:07:21,060 --> 01:07:23,470 Dhe ne kemi nevojë për atë nyje deri atje, sepse ne 1684 01:07:23,470 --> 01:07:25,190 nevojë për referencë nyje këtu. 1685 01:07:25,190 --> 01:07:29,380 Pra, me këtë lloj të struct rekursive, ju duhet të jepni këtë struct një emër, 1686 01:07:29,380 --> 01:07:31,340 ose ndryshe ju nuk mund thonë nyje struct këtu. 1687 01:07:31,340 --> 01:07:33,340 Ndërsa më parë me nxënësin kur ne ishin të shtypur, unë mendoj, 1688 01:07:33,340 --> 01:07:35,423 ne nuk kemi për të thënë studenti deri atje, sepse ne 1689 01:07:35,423 --> 01:07:40,370 nuk kanë për të thënë e strukturës studenti brenda struct vetë. 1690 01:07:40,370 --> 01:07:43,730 Pra, kjo është se gjithkund rekursive detyron ne që të themi nyje atje. 1691 01:07:43,730 --> 01:07:46,610 >> Kjo nyjë është vetëm emri që ne jemi duke i dhënë nyjë për typedef. 1692 01:07:46,610 --> 01:07:48,520 Kështu që nuk është nyjë njëjtë si atë nyje. 1693 01:07:48,520 --> 01:07:51,567 Por kjo nyje struct është njëjtë si atë nyje struct. 1694 01:07:51,567 --> 01:07:54,150 Davin: Pra, sa herë që ju e quani, si, nyje në funksion tuaj kryesor, 1695 01:07:54,150 --> 01:07:55,350 ju nuk do të jeni të kanë për të thënë nyje struct. 1696 01:07:55,350 --> 01:07:58,360 Ju mund të them vetëm nyje, për shkak se Nyja është një different-- është në thelb 1697 01:07:58,360 --> 01:07:59,440 ju jeni duke thënë, OK. 1698 01:07:59,440 --> 01:08:01,490 Në vend të që të thërrasë nyje struct në kodin tim, 1699 01:08:01,490 --> 01:08:04,050 Unë vetëm dua të riemërtoni atë si nyje për ta bërë atë më të lehtë. 1700 01:08:04,050 --> 01:08:06,800 >> Rob: Nëse ju gjithmonë përdorin typedef, atëherë kjo 1701 01:08:06,800 --> 01:08:11,240 është i vetmi vend që ju jeni do të ketë të deklarojë një ndryshore me nyje struct 1702 01:08:11,240 --> 01:08:11,740 yll, vërtet. 1703 01:08:11,740 --> 01:08:14,650 1704 01:08:14,650 --> 01:08:20,801 >> Davin: OK, kështu që pjesa e fundit është e vështirë për të mësuar because-- 1705 01:08:20,801 --> 01:08:22,185 1706 01:08:22,185 --> 01:08:22,685 Rob: Çfarë? 1707 01:08:22,685 --> 01:08:24,098 1708 01:08:24,098 --> 01:08:25,649 >> Davin: Për shkak se ajo është kodimi në letër. 1709 01:08:25,649 --> 01:08:28,689 Pra, çdo vit, ne kemi Kodi për pyetjet letër. 1710 01:08:28,689 --> 01:08:32,510 Kështu që unë mendoj se vitin e kaluar, 12 nga 80 pikë ishin kodin në letër. 1711 01:08:32,510 --> 01:08:36,720 Vit më parë se, 10 nga 80, vit më parë se, 20 nga 100, 1712 01:08:36,720 --> 01:08:37,939 kështu që mjaft disa prej tyre. 1713 01:08:37,939 --> 01:08:40,970 Pra, ju jeni do të duhet të jetë në gjendje për kodin këto funksione me dorë. 1714 01:08:40,970 --> 01:08:45,340 >> Kështu që unë i realizuar artistikisht, ne mund të shkojnë përmes një disa prej tyre dhe të shohim se si njerëzit bëjnë, 1715 01:08:45,340 --> 01:08:47,340 lloj ecin nëpër ato ngadalë me njerëzit. 1716 01:08:47,340 --> 01:08:48,790 1717 01:08:48,790 --> 01:08:52,420 Pra në përgjithësi, strlen dhe atoi kanë qenë shumë të popullarizuara. 1718 01:08:52,420 --> 01:08:55,670 Vitin e kaluar, unë mendoj se ne kishim GetPositiveInt dhe RandomInt. 1719 01:08:55,670 --> 01:08:58,591 Por pow, kështu pushtet, edhe një pozitiv too. 1720 01:08:58,591 --> 01:09:00,965 Le të vetëm të shkojnë nëpër ndoshta një ose dy prej tyre së bashku. 1721 01:09:00,965 --> 01:09:02,510 1722 01:09:02,510 --> 01:09:03,729 Çfarë njerëzit duan të shohin? 1723 01:09:03,729 --> 01:09:05,037 1724 01:09:05,037 --> 01:09:05,767 >> STUDENT: Atoi. 1725 01:09:05,767 --> 01:09:06,350 STUDENT: Po. 1726 01:09:06,350 --> 01:09:06,859 Davin: Atoi? 1727 01:09:06,859 --> 01:09:07,800 STUDENT: [padëgjueshme]. 1728 01:09:07,800 --> 01:09:09,682 Davin: OK, unë jam duke shkuar për të bërë atë në bord. 1729 01:09:09,682 --> 01:09:11,765 A keni një preferencë në qoftë se unë bëj këtu apo atje? 1730 01:09:11,765 --> 01:09:13,580 1731 01:09:13,580 --> 01:09:14,550 Atje, Gabe thotë atje. 1732 01:09:14,550 --> 01:09:16,729 1733 01:09:16,729 --> 01:09:19,580 >> Rob: Dhe kjo është e mendimet e përgjithshme në këto pyetje coding. 1734 01:09:19,580 --> 01:09:21,705 Mundohuni të shkruani diçka. 1735 01:09:21,705 --> 01:09:22,580 A nuk e lënë atë bosh. 1736 01:09:22,580 --> 01:09:23,080 >> Davin: Po. 1737 01:09:23,080 --> 01:09:25,520 Rob: Në qoftë se ju mund të merrni kthehen lloji i saktë, 1738 01:09:25,520 --> 01:09:27,090 apo ndoshta ne mund të japin atë ju, por në qoftë se ju mund të, si, 1739 01:09:27,090 --> 01:09:30,256 shkruani nënshkrim përgjithshme funksionin, Nëse ju mund të merrni lëndët bazë saktë, 1740 01:09:30,256 --> 01:09:32,244 ose raste qoshe, ose duke kujtuar kontrolloni for null, 1741 01:09:32,244 --> 01:09:34,160 për aq kohë sa ju keni disa gjërat, atëherë ndoshta ne 1742 01:09:34,160 --> 01:09:35,880 mund të ju jap një çift tregon për problemin. 1743 01:09:35,880 --> 01:09:36,810 A nuk e lënë vetëm atë bosh. 1744 01:09:36,810 --> 01:09:38,560 >> Davin: Po, dhe në qoftë se ju janë vetëm krejtësisht 1745 01:09:38,560 --> 01:09:40,580 stumped se si të në të vërtetë kthehet në kodin. 1746 01:09:40,580 --> 01:09:43,140 Nëse ju shkruani pseudokod, kjo është shumë e shumë e mirë. 1747 01:09:43,140 --> 01:09:46,390 Pra, kjo është si, kjo është një pyetje e gjashtë pikë, dhe ju shkruani pseudokod saktë, 1748 01:09:46,390 --> 01:09:47,858 ju do të merrni të paktën dy pika. 1749 01:09:47,858 --> 01:09:49,149 Pra, nuk do të lënë vetëm ato bosh. 1750 01:09:49,149 --> 01:09:50,279 Mundohuni të vënë diçka. 1751 01:09:50,279 --> 01:09:51,770 >> Rob: Ajo duhet të jetë pseudokod saktë, edhe pse. 1752 01:09:51,770 --> 01:09:52,270 >> Davin: Po. 1753 01:09:52,270 --> 01:09:55,381 Rob: Pra, ne jemi në përgjithësi janë më pak të butë me bugs në pseudokod. 1754 01:09:55,381 --> 01:09:57,130 Davin: OK, kështu që ju djema donin të shihnin atoi. 1755 01:09:57,130 --> 01:09:58,480 1756 01:09:58,480 --> 01:10:02,820 OK, kështu që vetëm really-- kështu që ajo që ju doni të bëni 1757 01:10:02,820 --> 01:10:04,969 është që ju jeni do të jetë duke pasur parasysh një lloj numri. 1758 01:10:04,969 --> 01:10:07,010 Por ky numër nuk është i do të jetë një int, e drejtë? 1759 01:10:07,010 --> 01:10:08,574 Çfarë është ajo do të jetë? 1760 01:10:08,574 --> 01:10:09,480 >> STUDENT: [padëgjueshme]. 1761 01:10:09,480 --> 01:10:11,146 >> Davin: Ajo do të jetë një varg, e drejtë? 1762 01:10:11,146 --> 01:10:13,160 Pra, nëse ju janë dhënë a string-- le say-- 1763 01:10:13,160 --> 01:10:15,228 >> Rob: A duhet të tërheqë deri në një redaktor? 1764 01:10:15,228 --> 01:10:16,200 Unë mund të tërheqë up-- 1765 01:10:16,200 --> 01:10:16,800 >> Davin: Oh, ju doni të bëni atë on-- 1766 01:10:16,800 --> 01:10:17,420 >> Rob: Do të preferonit të bordit? 1767 01:10:17,420 --> 01:10:18,800 >> Davin: Çfarë doni të bëni? 1768 01:10:18,800 --> 01:10:19,900 Unë do të thotë, ju doni të bëni atë me dorë? 1769 01:10:19,900 --> 01:10:21,460 Apo ju doni të bëni atë nga kompjuteri? 1770 01:10:21,460 --> 01:10:22,180 >> Rob: A atë me dorë. 1771 01:10:22,180 --> 01:10:22,805 >> Davin: [qesh] 1772 01:10:22,805 --> 01:10:23,950 Rob: A atë me dorë. 1773 01:10:23,950 --> 01:10:25,469 >> Davin: OK, kështu që ajo do të jetë e atoi. 1774 01:10:25,469 --> 01:10:27,760 Pra, çfarë është it-- dua të them, ne do të ndoshta jap këtë për ju. 1775 01:10:27,760 --> 01:10:29,106 Por çfarë është ajo do të kthehet? 1776 01:10:29,106 --> 01:10:29,452 >> STUDENT: Int. 1777 01:10:29,452 --> 01:10:31,076 >> Davin: Ajo do të kthehen int, e drejtë? 1778 01:10:31,076 --> 01:10:33,772 So-- Unë nuk dua të bëj atë atje. 1779 01:10:33,772 --> 01:10:34,510 Unë do të bëj këtu. 1780 01:10:34,510 --> 01:10:36,596 >> Rob: Ju mund ta tërheqë atë poshtë dhe pastaj të shtyjë deri në atë. 1781 01:10:36,596 --> 01:10:38,500 1782 01:10:38,500 --> 01:10:40,385 >> Davin: po. 1783 01:10:40,385 --> 01:10:43,880 [Qesh] ndryshim lojë. 1784 01:10:43,880 --> 01:10:50,950 OK, kështu që do të jetë atoi int, dhe çfarë është ajo do të marrë? 1785 01:10:50,950 --> 01:10:52,180 1786 01:10:52,180 --> 01:10:57,780 Një yll char, kështu që vetëm një string, yll s, si kjo. 1787 01:10:57,780 --> 01:10:59,240 >> Rob: bukur yll, e bukur. 1788 01:10:59,240 --> 01:11:02,582 1789 01:11:02,582 --> 01:11:04,040 Davin: Kjo nuk mund të jetë atje, OK. 1790 01:11:04,040 --> 01:11:04,540 Rob: Po. 1791 01:11:04,540 --> 01:11:06,670 Davin: OK, kështu pare gjë që ju doni të do-- I 1792 01:11:06,670 --> 01:11:08,490 nuk e di nëse dikush shikuar në praktikë të solutions-- 1793 01:11:08,490 --> 01:11:10,150 por çfarë ju do të jeni të dëshironi të bëni është që ju jeni 1794 01:11:10,150 --> 01:11:11,570 do të duan të kenë një lak, sepse ju jeni 1795 01:11:11,570 --> 01:11:14,100 do të duan të vërtetë hap nëpër këtë varg. 1796 01:11:14,100 --> 01:11:18,880 Pra helpful-- kështu që le të themi ne jemi duke shkuar për një për lak, 1797 01:11:18,880 --> 01:11:22,270 dhe ne jemi duke shkuar për të rritur nëpër çdo element i vargut. 1798 01:11:22,270 --> 01:11:23,470 Sa kohë është kjo? 1799 01:11:23,470 --> 01:11:26,464 Sa herë po shkojmë të iterate në atë për lak? 1800 01:11:26,464 --> 01:11:27,130 STUDENT: Sterln? 1801 01:11:27,130 --> 01:11:27,963 Davin: Sterln, vërtet. 1802 01:11:27,963 --> 01:11:29,350 1803 01:11:29,350 --> 01:11:41,294 Pra, le të thonë se gjatësia e int barabartë sterln s. 1804 01:11:41,294 --> 01:11:44,240 1805 01:11:44,240 --> 01:11:48,740 Dhe vetëm kurioz, pse është gjithmonë i sjellshëm e mirë për të bërë këtë jashtë sythe? 1806 01:11:48,740 --> 01:11:52,277 Si, pse është e mirë për të thirrur ky funksion jashtë një lak? 1807 01:11:52,277 --> 01:11:53,360 Vetëm një mendje e shëndoshë të shpejtë të shikoni? 1808 01:11:53,360 --> 01:11:55,810 1809 01:11:55,810 --> 01:11:56,311 Vërtet? 1810 01:11:56,311 --> 01:11:58,268 STUDENT: Pra ju nuk e bëni duhet ta mbani kontrolluar atë. 1811 01:11:58,268 --> 01:11:59,400 Ju mund thjesht [padëgjueshme]. 1812 01:11:59,400 --> 01:12:01,560 >> Davin: Pikërisht, kështu vërtet, pikërisht ajo që tha ajo. 1813 01:12:01,560 --> 01:12:03,101 Pra, ne nuk duhet të mbani kontrolluar atë. 1814 01:12:03,101 --> 01:12:05,690 Kështu për shembull, në qoftë se unë jam duke bërë thirrje ky funksion brenda një lak, 1815 01:12:05,690 --> 01:12:08,050 atëherë unë jam duke shkuar për të mbajtur thirrje ky funksion shumë herë. 1816 01:12:08,050 --> 01:12:10,080 Dhe kjo do të ulet efikasitetin e programit tuaj. 1817 01:12:10,080 --> 01:12:12,370 Pra, ajo është gjithmonë e dobishme ta deklarojë atë jashtë. 1818 01:12:12,370 --> 01:12:14,370 >> Rob: Kjo është thënë në ndonjë nga këto probleme, 1819 01:12:14,370 --> 01:12:17,940 pretty much për aq kohë sa ju të merrni një zgjidhje të punës, që ju të merrni kredi të plotë. 1820 01:12:17,940 --> 01:12:20,820 Pra, mos u bëni merak nëse dizajni juaj është absolutisht e tmerrshme. 1821 01:12:20,820 --> 01:12:22,120 1822 01:12:22,120 --> 01:12:25,230 Ajo mund të na bëjnë të mërzitur lexuar kodin tuaj. 1823 01:12:25,230 --> 01:12:28,160 Por, për sa kohë që ajo punon, ju do të merrni pikë. 1824 01:12:28,160 --> 01:12:29,302 >> Davin: Po. 1825 01:12:29,302 --> 01:12:31,260 OK, kështu që atëherë që unë jam duke shkuar për deklarojnë disa ndryshore. 1826 01:12:31,260 --> 01:12:33,900 Është vetëm do të thërrasë shumë int. 1827 01:12:33,900 --> 01:12:37,031 Dhe unë jam duke shkuar për të vendosur këtë barabarte me zero, ashtu. 1828 01:12:37,031 --> 01:12:38,780 Dhe kjo është vetëm do të jetë një placeholder. 1829 01:12:38,780 --> 01:12:40,960 Kështu që do të jetë ajo që unë jam duke shkuar për t'u kthyer. 1830 01:12:40,960 --> 01:12:43,730 Kështu që unë jam duke shkuar për në fund shumën e të kthehen nga ky program. 1831 01:12:43,730 --> 01:12:44,980 Pra, unë kam këto dy variablave. 1832 01:12:44,980 --> 01:12:45,563 I kanë gjatësi. 1833 01:12:45,563 --> 01:12:46,500 Unë kam shumë. 1834 01:12:46,500 --> 01:12:48,290 Dhe tani le të kërcejnë në varg tonë. 1835 01:12:48,290 --> 01:12:49,510 >> Kështu që lejon të ketë tonë për lak. 1836 01:12:49,510 --> 01:13:06,520 Pra, katër int I barabartë me 0 w, ndërsa I është më pak se gjatësi I plus plus. 1837 01:13:06,520 --> 01:13:07,150 Dhe now-- 1838 01:13:07,150 --> 01:13:10,920 1839 01:13:10,920 --> 01:13:11,420 Rob: Bukur. 1840 01:13:11,420 --> 01:13:14,030 Davin: OK, dhe tani këtu vjen mishit të kodit tonë. 1841 01:13:14,030 --> 01:13:17,380 Kështu që ju mund të bëjë në fakt kjo linjë në thelb në një. 1842 01:13:17,380 --> 01:13:20,702 Pra ka dikush të ketë një ide e asaj që ne jemi duke shkuar për të bërë tjetër? 1843 01:13:20,702 --> 01:13:23,680 1844 01:13:23,680 --> 01:13:25,380 OK, kështu që kjo është OK. 1845 01:13:25,380 --> 01:13:35,860 Pra, ne jemi duke bërë të themi shumë equals-- më lejoni të vrapoj këtë shumë over-- 1846 01:13:35,860 --> 01:13:50,010 është e barabartë herë kuturu 10 plus-- Ne jemi do të marrë s I minus një 1847 01:13:50,010 --> 01:13:54,787 quote 0 një quote bërë, si kjo. 1848 01:13:54,787 --> 01:13:55,620 Rob: Shumë intuitive. 1849 01:13:55,620 --> 01:13:56,980 1850 01:13:56,980 --> 01:13:57,880 >> Davin: grimcuar atë. 1851 01:13:57,880 --> 01:14:01,438 OK, kështu që someone-- I got it, I got it. 1852 01:14:01,438 --> 01:14:03,680 1853 01:14:03,680 --> 01:14:06,960 OK, kështu që kjo është e qartë duke shkuar deri. 1854 01:14:06,960 --> 01:14:08,320 1855 01:14:08,320 --> 01:14:09,450 Çfarë do të thotë kjo? 1856 01:14:09,450 --> 01:14:12,120 Pra, nuk e di se çfarë do të thotë dikush këtë? 1857 01:14:12,120 --> 01:14:13,826 Mund të gjithë e shohin këtë? 1858 01:14:13,826 --> 01:14:16,088 Jo, askush nuk mund ta shihni këtë, OK. 1859 01:14:16,088 --> 01:14:17,390 1860 01:14:17,390 --> 01:14:18,340 Unë jam duke shkuar to-- 1861 01:14:18,340 --> 01:14:20,506 >> Rob: Unë jam duke shkuar për të shkruar formula vetëm të drejtë këtu. 1862 01:14:20,506 --> 01:14:23,140 Davin: OK, Rob do ta bëjë atë në kompjuter, që është fun. 1863 01:14:23,140 --> 01:14:26,889 1864 01:14:26,889 --> 01:14:27,514 Rob: Oh, Perëndia im. 1865 01:14:27,514 --> 01:14:34,340 1866 01:14:34,340 --> 01:14:35,010 Ose unë nuk do të. 1867 01:14:35,010 --> 01:14:36,288 1868 01:14:36,288 --> 01:14:36,954 Davin: Stand by. 1869 01:14:36,954 --> 01:14:42,300 1870 01:14:42,300 --> 01:14:44,260 STUDENT: Unë kam një pyetje. 1871 01:14:44,260 --> 01:14:45,348 Davin: Po, sigurisht. 1872 01:14:45,348 --> 01:14:46,223 STUDENT: [padëgjueshme]? 1873 01:14:46,223 --> 01:14:52,529 1874 01:14:52,529 --> 01:14:54,570 Davin: OK, kështu që në të vërtetë, si, vetëm në përgjithësi, 1875 01:14:54,570 --> 01:14:56,710 në qoftë se keni qenë për të vënë, si, në këtë int deklarimit 1876 01:14:56,710 --> 01:14:59,770 I barabartë me gjatësi 0 presje barabartë sterln, that-- 1877 01:14:59,770 --> 01:15:01,200 >> STUDENT: [padëgjueshme]. 1878 01:15:01,200 --> 01:15:03,585 >> Davin: Kjo është në rregull, sepse that-- 1879 01:15:03,585 --> 01:15:05,543 STUDENT: Pse do të ju edhe duhet të përdorni gjatësi? 1880 01:15:05,543 --> 01:15:08,620 Pse nuk mund të kemi vetëm [padëgjueshme] sterln s, ashtu si tërë kohës [padëgjueshme]? 1881 01:15:08,620 --> 01:15:09,460 >> Davin: Ju do të thotë të drejtë këtu? 1882 01:15:09,460 --> 01:15:10,001 >> STUDENT: Po. 1883 01:15:10,001 --> 01:15:12,630 Davin: Sepse çdo Koha këtë për lak shkon, 1884 01:15:12,630 --> 01:15:14,295 ajo do ta vlerësojnë këtë kusht. 1885 01:15:14,295 --> 01:15:14,920 STUDENTORE: E drejta. 1886 01:15:14,920 --> 01:15:16,836 Davin: Dhe në qoftë se ju keni sterln atje, atëherë është 1887 01:15:16,836 --> 01:15:19,510 do të ketë në fakt të thirrur se funksioni çdo herë të vetme. 1888 01:15:19,510 --> 01:15:21,090 Pra, në vend të vetëm krahasuar atë me një int, 1889 01:15:21,090 --> 01:15:23,548 ju jeni do të jetë duke e quajtur një Funksioni dhe pastaj duke e krahasuar atë 1890 01:15:23,548 --> 01:15:24,510 me vlerën kthimit. 1891 01:15:24,510 --> 01:15:25,860 Yeah, kështu që është vetëm, vërtet. 1892 01:15:25,860 --> 01:15:28,860 1893 01:15:28,860 --> 01:15:30,770 >> Bukur, OK, kështu që tani të gjithë mund ta shohin atë. 1894 01:15:30,770 --> 01:15:33,400 Çfarë does-- kjo është si, kjo është ajo. 1895 01:15:33,400 --> 01:15:34,580 Kjo është jam, të drejtë këtu. 1896 01:15:34,580 --> 01:15:37,030 1897 01:15:37,030 --> 01:15:37,930 Çfarë do të thotë kjo? 1898 01:15:37,930 --> 01:15:39,250 1899 01:15:39,250 --> 01:15:39,970 Çfarë jam unë duke bërë? 1900 01:15:39,970 --> 01:15:41,890 1901 01:15:41,890 --> 01:15:42,880 Po, një ide? 1902 01:15:42,880 --> 01:15:43,482 Vërtet? 1903 01:15:43,482 --> 01:15:45,692 >> STUDENT: Well, kështu që kur ju jeni të hyjnë në një rrjet, 1904 01:15:45,692 --> 01:15:47,525 ju do të jeni të shkojnë nga e majta në të djathtë, 1905 01:15:47,525 --> 01:15:51,786 kështu që ju jeni do të shkojnë në decimal nga poshtë [e padëgjueshme]. 1906 01:15:51,786 --> 01:15:52,410 Davin: Pikërisht. 1907 01:15:52,410 --> 01:15:55,063 STUDENT: Kështu secili ju duhet të shumëfishohen 1908 01:15:55,063 --> 01:15:59,490 çfarë keni parë si vlerë e int me koha që ju të merrni për të lëvizur atë mbi një. 1909 01:15:59,490 --> 01:16:01,590 >> Davin: Perfect, të përsosur, kështu për shembull, le të 1910 01:16:01,590 --> 01:16:05,376 thonë se unë i dha you-- jam do të shkruaj këtu. 1911 01:16:05,376 --> 01:16:06,480 Jo, unë nuk jam. 1912 01:16:06,480 --> 01:16:08,640 Unë jam duke shkuar për të shkruar këtu. 1913 01:16:08,640 --> 01:16:12,080 Le të thonë se unë ju dha 76, e drejtë? 1914 01:16:12,080 --> 01:16:13,380 Le të thonë se unë ju jap 76. 1915 01:16:13,380 --> 01:16:15,360 Kjo është një varg për të filluar me, OK? 1916 01:16:15,360 --> 01:16:16,840 >> Pra, gjatësia është ajo? 1917 01:16:16,840 --> 01:16:18,060 1918 01:16:18,060 --> 01:16:19,060 2, e drejtë? 1919 01:16:19,060 --> 01:16:20,290 Shumë është 0. 1920 01:16:20,290 --> 01:16:21,600 Pastaj ne hidhen në tonë për lak. 1921 01:16:21,600 --> 01:16:24,187 OK, përsëritje e parë e kjo, çfarë është ajo do të jetë? 1922 01:16:24,187 --> 01:16:25,270 Ajo do të jetë shumë është 0. 1923 01:16:25,270 --> 01:16:27,180 Pra, përmbledhur herë 10 0. 1924 01:16:27,180 --> 01:16:28,500 Kjo është e pakuptimtë. 1925 01:16:28,500 --> 01:16:29,880 Atëherë çfarë do të bëni këtë? 1926 01:16:29,880 --> 01:16:30,845 1927 01:16:30,845 --> 01:16:31,720 STUDENT: [padëgjueshme]. 1928 01:16:31,720 --> 01:16:33,110 1929 01:16:33,110 --> 01:16:37,430 >> Davin: Ajo do të kthehet se karakter në një numër të plotë, të drejtë? 1930 01:16:37,430 --> 01:16:42,160 Kjo është lloj i si me tuaj Problemi set-- këtë light-- 1931 01:16:42,160 --> 01:16:44,170 kjo është lloj i si me Problemi vendosur për Visioneer. 1932 01:16:44,170 --> 01:16:45,980 Ju jeni që kanë të bëjnë me vlerat ASCII. 1933 01:16:45,980 --> 01:16:48,520 Pra, nëse unë ju jap, si një shtatë, por kjo është një karakter, 1934 01:16:48,520 --> 01:16:50,965 dhe doni të dini, OK, ajo shifër është ajo? 1935 01:16:50,965 --> 01:16:53,540 1936 01:16:53,540 --> 01:16:54,910 Po, ju mund të, vërtet. 1937 01:16:54,910 --> 01:16:55,900 Pra, çfarë shifra është ajo? 1938 01:16:55,900 --> 01:16:59,550 Ju mund të zbres 0 nga ajo, por ju duhet të zbres 0, karakterin. 1939 01:16:59,550 --> 01:17:01,425 >> Dhe ku disa njerëz merrni morën lart, ata janë 1940 01:17:01,425 --> 01:17:04,260 si, OK, mirë, nuk kam për të dini vlerat ASCII për këtë quiz? 1941 01:17:04,260 --> 01:17:06,218 Jo, ju patjetër nuk e bëni duhet të dini ASCII 1942 01:17:06,218 --> 01:17:09,520 Vlerat e, si, Fjala a, uppercase A, zero. 1943 01:17:09,520 --> 01:17:12,060 >> Rob: Nuk ka asnjë arsye për të kurrë vënë këtë në mashtrojnë fletë. 1944 01:17:12,060 --> 01:17:14,226 >> Davin: Definitely nuk mbeturinave hapësirë ​​tuaj me këtë. 1945 01:17:14,226 --> 01:17:18,090 Ju mund të literally-- vetëm në vend i thënë: 48, si e drejtë deri 1946 01:17:18,090 --> 01:17:24,630 atje, që është ekuivalenti te thënë një, një apostrof, 1947 01:17:24,630 --> 01:17:27,680 si kjo, pikërisht njëjtë. 1948 01:17:27,680 --> 01:17:34,106 >> Rob: Ju mund të pothuajse të mendoni e saj si if-- Perëndisë, kam nevojë tim, 1949 01:17:34,106 --> 01:17:37,490 oops-- ju mund të pothuajse të mendoni për atë si në qoftë se ne kemi diçka të tillë hash 1950 01:17:37,490 --> 01:17:39,755 definojnë 0 si 48. 1951 01:17:39,755 --> 01:17:41,320 1952 01:17:41,320 --> 01:17:42,030 Kjo nuk do të funksionojë. 1953 01:17:42,030 --> 01:17:45,502 Por mendoj se për atë si vetëm të japin kuotën 0 quote vetme, dhe për të gjitha karakteret. 1954 01:17:45,502 --> 01:17:47,960 Mendoni se si një konstante që përfaqëson atë vlerë ASCII. 1955 01:17:47,960 --> 01:17:49,080 >> Davin: Po. 1956 01:17:49,080 --> 01:17:52,820 OK, kështu që herë të parë nëpërmjet, kështu që me 76-- kështu hera e parë përmes, 1957 01:17:52,820 --> 01:17:57,260 kjo është vetëm karakteri 7 minus karakter 0, 1958 01:17:57,260 --> 01:18:00,420 dhe ata që janë të shtatë integers-- mirë, ata 1959 01:18:00,420 --> 01:18:04,030 janë shtatë hapësira larg nga njëri- të tjera në tabelë ASCII apo çfarëdo. 1960 01:18:04,030 --> 01:18:06,770 Kështu që do të kthehen një int prej 7. 1961 01:18:06,770 --> 01:18:08,720 Deri tani, shuma e barabartë me 7. 1962 01:18:08,720 --> 01:18:10,830 >> OK, mirë, le të hidhen në këtë për lak përsëri. 1963 01:18:10,830 --> 01:18:13,010 OK, tani është shumë herë 10. 1964 01:18:13,010 --> 01:18:15,800 Pra, ju jeni në mënyrë efektive lëvizur 7 në të majtë. 1965 01:18:15,800 --> 01:18:17,542 Ka që e bëjnë kuptim? 1966 01:18:17,542 --> 01:18:19,250 Ju jeni në mënyrë efektive lëvizin atë në të majtë. 1967 01:18:19,250 --> 01:18:21,790 >> Dhe pastaj ju add-- këtë do të jetë 6 minus 0. 1968 01:18:21,790 --> 01:18:22,650 Kjo është 6. 1969 01:18:22,650 --> 01:18:24,752 Pra, kjo do të jetë 70 plus 6. 1970 01:18:24,752 --> 01:18:25,996 76, që është numri juaj. 1971 01:18:25,996 --> 01:18:28,370 Pra, pavarësisht nga çfarë numri Unë ju dha, kjo është vetëm ngadalë 1972 01:18:28,370 --> 01:18:31,610 do të zhvendosë vlerat më të mëdha në të majtë, 1 faktor i 10 1973 01:18:31,610 --> 01:18:35,525 çdo herë në lak, dhe pastaj shtoni në si të nevojshme. 1974 01:18:35,525 --> 01:18:37,350 1975 01:18:37,350 --> 01:18:37,865 >> Në pjesën e pasme? 1976 01:18:37,865 --> 01:18:40,240 STUDENT: Ne nuk duhet të bëjmë çdo kontrolluar në program? 1977 01:18:40,240 --> 01:18:41,580 1978 01:18:41,580 --> 01:18:44,302 >> Rob: Pra sa më shumë të kontrolluar shkon për programin, 1979 01:18:44,302 --> 01:18:46,510 ne do t'ju tregojë mjaft më shumë se çfarë ju duhet të kontrolloni. 1980 01:18:46,510 --> 01:18:48,670 Nëse ne nuk do të ju them asgjë, atëherë në përgjithësi 1981 01:18:48,670 --> 01:18:50,320 supozojmë që ju duhet të kontrolloni gjërat më. 1982 01:18:50,320 --> 01:18:54,772 Si ju mund të, vetëm të jetë i sigurt, ju ndoshta duhet të kontrolloni hey, është s null? 1983 01:18:54,772 --> 01:18:56,230 Atëherë unë nuk kam asnjë ide se çfarë të kthehen. 1984 01:18:56,230 --> 01:18:58,814 Por ne do të ju them ky lloj gjë. 1985 01:18:58,814 --> 01:18:59,480 0, unë nuk e di. 1986 01:18:59,480 --> 01:19:02,786 >> Davin: Dhe pse do të doni të recheck nëse s barabartë null? 1987 01:19:02,786 --> 01:19:03,660 STUDENT: [padëgjueshme]. 1988 01:19:03,660 --> 01:19:04,880 Davin: Për shkak të yllit char. 1989 01:19:04,880 --> 01:19:05,510 Kjo është një akrep. 1990 01:19:05,510 --> 01:19:09,240 Pra, një krejtësisht e pranueshme Deklarata, unë mund të them, OK, 1991 01:19:09,240 --> 01:19:11,917 s barabartë null, sepse ajo mund të jetë një tregues për të null. 1992 01:19:11,917 --> 01:19:14,250 Pra, sa herë që ju keni pointers në rrugën tuaj në këtë mënyrë, 1993 01:19:14,250 --> 01:19:15,420 ju ndoshta duhet të kontrolloni. 1994 01:19:15,420 --> 01:19:18,461 Sepse në qoftë se ju nuk e shikoni atë, dhe atëherë ju pastaj shkoni në tuaj për lak, 1995 01:19:18,461 --> 01:19:20,100 dhe ju jeni doing-- vrapoj poshtë. 1996 01:19:20,100 --> 01:19:21,980 1997 01:19:21,980 --> 01:19:22,920 Vrapoj poshtë. 1998 01:19:22,920 --> 01:19:23,860 >> Rob: Na vjen keq, kjo është ajo. 1999 01:19:23,860 --> 01:19:25,860 >> Davin: Dhe kështu, si, në qoftë se ajo është e pavlefshme, dhe pastaj ju 2000 01:19:25,860 --> 01:19:28,267 bëni këtë, atë gabim po ju do të merrni? 2001 01:19:28,267 --> 01:19:29,850 STUDENT: Ju jeni do të merrni një gabim të caktuar. 2002 01:19:29,850 --> 01:19:31,250 Davin: Ju do të jeni të vendosur faji, e drejtë, sepse ju jeni 2003 01:19:31,250 --> 01:19:32,616 duke u përpjekur për indeksin në null. 2004 01:19:32,616 --> 01:19:35,240 Pra, ju jeni do të përpiqen për të indeksit në kujtim që ju nuk bëni vet. 2005 01:19:35,240 --> 01:19:39,550 Pra kjo, në qoftë se kjo është null, dhe ju bëni këtë, ju do cikël. 2006 01:19:39,550 --> 01:19:43,656 >> Rob: Unë gjithashtu mendoj se në provim në të cilin kemi pyetur këtë pyetje, ne ju them 2007 01:19:43,656 --> 01:19:45,655 që ju mund vetëm të supozojmë kjo është një numër pozitiv. 2008 01:19:45,655 --> 01:19:48,270 Sepse atoi pritet gjithashtu për të trajtuar numrat negative, 2009 01:19:48,270 --> 01:19:49,686 kështu që ju do të keni për rast të veçantë. 2010 01:19:49,686 --> 01:19:53,080 Hej, është karakteri i parë një dash, në të cilin rast, OK, 2011 01:19:53,080 --> 01:19:54,839 tani kjo është një numër i plotë negativ. 2012 01:19:54,839 --> 01:19:56,380 Ne do të ju them se këto llojet e gjërave. 2013 01:19:56,380 --> 01:19:58,005 Ne do të ju tregojnë se çfarë ju keni nevojë për të trajtuar. 2014 01:19:58,005 --> 01:19:59,310 Davin: Po. 2015 01:19:59,310 --> 01:20:02,530 Kështu që unë jam i sigurt se disa njerëz mund të have-- në qoftë se ju keni filluar duke kërkuar në provime të vjetra, 2016 01:20:02,530 --> 01:20:03,900 keni pare sterln. 2017 01:20:03,900 --> 01:20:05,120 Kjo është një popullor. 2018 01:20:05,120 --> 01:20:09,790 Dhe unë mendoj se në sterln, keni pasur për të e bëjnë këtë kontroll për të null, kthimin 2019 01:20:09,790 --> 01:20:10,950 0 ose diçka të tillë. 2020 01:20:10,950 --> 01:20:11,940 Ashtu si, keni pasur për të kontrolluar për null. 2021 01:20:11,940 --> 01:20:14,230 Dhe në qoftë se ju nuk e keni, se ishte pikë jashtë në quiz. 2022 01:20:14,230 --> 01:20:16,750 2023 01:20:16,750 --> 01:20:19,500 Pra, gjithsesi, bën të gjithë të ndjehen OK me atoi? 2024 01:20:19,500 --> 01:20:21,112 2025 01:20:21,112 --> 01:20:22,820 A doni të askujt shkoni mbi pjesët përsëri? 2026 01:20:22,820 --> 01:20:23,815 2027 01:20:23,815 --> 01:20:25,565 Rob: Oh yeah, unë mendoj se ne gjithashtu t'ju them ju 2028 01:20:25,565 --> 01:20:28,565 mund të supozojmë se çdo gjë që is-- ata janë në fakt duke hyrë në një numër, 2029 01:20:28,565 --> 01:20:32,821 që ju nuk keni për t'u shqetësuar rreth, si, letra qenë në vargun, kështu. 2030 01:20:32,821 --> 01:20:33,320 Davin: Po. 2031 01:20:33,320 --> 01:20:33,922 Po? 2032 01:20:33,922 --> 01:20:35,713 STUDENTORE: A mund të shkoni me kalimin e një më shumë kohë kur 2033 01:20:35,713 --> 01:20:37,860 ju përdorni kuotë të dyfishtë dhe të japin kuotën e vetme? 2034 01:20:37,860 --> 01:20:41,290 >> Davin: Sigurisht, kështu që kuotat dyfishtë, shumë thjesht, është kuotat dyfishtë janë vargjet. 2035 01:20:41,290 --> 01:20:43,370 Pra, nëse ju të dyfishtë kuotë çdo gjë, kjo është një string. 2036 01:20:43,370 --> 01:20:48,270 Pra, si, në qoftë se kam pasur këtë 0 gjatë këtu, dhe unë e bëri këtë, kjo është një string. 2037 01:20:48,270 --> 01:20:50,060 Kjo nuk është më një karakter. 2038 01:20:50,060 --> 01:20:54,816 Kështu që unë nuk mund të gjeni këtë vlerë në ASCII tim tabelë, sepse kjo është një string, vërtet. 2039 01:20:54,816 --> 01:20:57,770 2040 01:20:57,770 --> 01:20:59,480 >> OK, ndonjë pyetje të tjera? 2041 01:20:59,480 --> 01:21:00,405 Po? 2042 01:21:00,405 --> 01:21:02,345 >> STUDENT: Pra, ju keni tashmë u përgjigj kësaj, 2043 01:21:02,345 --> 01:21:05,255 por si, kur ne jemi në të vërtetë shkruar kjo në quiz, 2044 01:21:05,255 --> 01:21:08,165 ju dëshironi të na për të shkruar me ul zero [padëgjueshme]? 2045 01:21:08,165 --> 01:21:11,041 2046 01:21:11,041 --> 01:21:11,540 Davin: Jo 2047 01:21:11,540 --> 01:21:13,800 Pyetja ishte që ju duhet vënë një plagë nëpër zero 2048 01:21:13,800 --> 01:21:14,890 për të treguar nëse ata janë zero? 2049 01:21:14,890 --> 01:21:15,890 Jo, ne do të kuptoj atë. 2050 01:21:15,890 --> 01:21:16,940 2051 01:21:16,940 --> 01:21:19,530 Po, faleminderit, ata janë të mirë. 2052 01:21:19,530 --> 01:21:20,860 OK, çdo gjë tjetër? 2053 01:21:20,860 --> 01:21:25,060 A doni dikush to-- kështu që unë mendoj se ne kemi drejtuar një pak me kalimin e kohës. 2054 01:21:25,060 --> 01:21:27,305 A doni të shihni një tjetër, apo? 2055 01:21:27,305 --> 01:21:28,096 STUDENT: RandomInt. 2056 01:21:28,096 --> 01:21:29,230 2057 01:21:29,230 --> 01:21:30,750 >> Davin: RandomInt, OK, pikërisht. 2058 01:21:30,750 --> 01:21:32,975 Pra, le të bëjmë RandomInt. 2059 01:21:32,975 --> 01:21:34,395 2060 01:21:34,395 --> 01:21:35,270 Unë do të bëjë atë mbi këtu. 2061 01:21:35,270 --> 01:21:36,770 2062 01:21:36,770 --> 01:21:39,210 Pra RandomInt në fakt është shumë më e thjeshtë. 2063 01:21:39,210 --> 01:21:43,578 Unë mendoj se atoi është ndoshta një më e vështirë që ne kemi kërkuar në vitet e mëparshme. 2064 01:21:43,578 --> 01:21:44,453 STUDENT: [padëgjueshme]. 2065 01:21:44,453 --> 01:21:46,660 2066 01:21:46,660 --> 01:21:47,161 >> Davin: Çfarë? 2067 01:21:47,161 --> 01:21:49,493 Rob: Unë jam duke parë nëse kjo është lloj të shikohet nga mbi këtu. 2068 01:21:49,493 --> 01:21:50,040 Davin: A është ajo? 2069 01:21:50,040 --> 01:21:52,500 Rob: Unë nuk mendoj se është going-- mendoj ajo do të kandidojë jashtë në të djathtë. 2070 01:21:52,500 --> 01:21:53,791 Davin: OK, kështu që unë do të bëj këtë. 2071 01:21:53,791 --> 01:21:56,250 Dhe pastaj ju vetëm vënë atë në ekran. 2072 01:21:56,250 --> 01:21:57,150 >> Rob: Në rregull. 2073 01:21:57,150 --> 01:21:58,190 >> Davin: Ju dëshironi që të jetë shkrues e mia? 2074 01:21:58,190 --> 01:21:58,600 >> Rob: Po. 2075 01:21:58,600 --> 01:21:59,100 >> Davin: Bukur. 2076 01:21:59,100 --> 01:22:01,210 2077 01:22:01,210 --> 01:22:02,727 OK, mund të fshihet kjo? 2078 01:22:02,727 --> 01:22:04,188 >> STUDENT: Po. 2079 01:22:04,188 --> 01:22:05,162 >> Davin: Kjo është aq e vështirë. 2080 01:22:05,162 --> 01:22:10,032 2081 01:22:10,032 --> 01:22:12,062 (Kënduarit) Ju jeni duke bërë çfarë jeni duke bërë. 2082 01:22:12,062 --> 01:22:14,454 Dhe duke bërë atë që ju nuk e bëni. 2083 01:22:14,454 --> 01:22:14,954 Dakord. 2084 01:22:14,954 --> 01:22:19,790 2085 01:22:19,790 --> 01:22:22,930 >> OK, nëse më kujtohet saktë, në quiz RandomInt ishte si, 2086 01:22:22,930 --> 01:22:26,190 OK, unë jam duke shkuar për të ju jap dy numra, si një a dhe b. 2087 01:22:26,190 --> 01:22:30,380 Dhe unë dua që ju të më jepni një RandomInt ndërmjet këtyre numrave. 2088 01:22:30,380 --> 01:22:33,440 Pra RandomInt po ndodh për të marrë dy numbers-- 2089 01:22:33,440 --> 01:22:41,690 kështu RandomInt-- dhe kjo është do të kthehen në një int. 2090 01:22:41,690 --> 01:22:42,930 >> Pra, çfarë është vlera e kthimit? 2091 01:22:42,930 --> 01:22:44,151 Unë vetëm ju tha. 2092 01:22:44,151 --> 01:22:44,650 Int, e drejtë? 2093 01:22:44,650 --> 01:22:46,400 2094 01:22:46,400 --> 01:22:49,260 Si kjo, dhe atëherë është do të marrë dy ints. 2095 01:22:49,260 --> 01:22:56,301 Pra, ajo do të marrë int a dhe int b, si kjo. 2096 01:22:56,301 --> 01:22:58,217 Pra, çfarë është RandomInt do të bëni është ajo që po ndodh 2097 01:22:58,217 --> 01:23:02,440 për t'u kthyer disa vlera të rastit në mes të këtyre dy vlerave. 2098 01:23:02,440 --> 01:23:05,140 Pra, kjo do të jetë më e madhe shumë se një, më pak se b. 2099 01:23:05,140 --> 01:23:09,020 Kështu që unë mendoj se ju ndoshta mund të supozojmë se a është më e vogël e dy vlerat. 2100 01:23:09,020 --> 01:23:12,210 Pra, nëse ne jemi që kanë të bëjnë me randomness, çfarë funksioni 2101 01:23:12,210 --> 01:23:14,825 kemi parë se na jep gjëra të rastit? 2102 01:23:14,825 --> 01:23:15,450 STUDENT: Drand. 2103 01:23:15,450 --> 01:23:16,506 Davin: Drand, pikërisht. 2104 01:23:16,506 --> 01:23:18,630 Pra, ju jeni duke shkuar për siguri dëshironi të përdorni drand tuaj. 2105 01:23:18,630 --> 01:23:19,940 2106 01:23:19,940 --> 01:23:29,160 Kështu që ju mund të them int të rastit, dhe ne do të vetëm thonë se kjo është e barabartë me 0 tani. 2107 01:23:29,160 --> 01:23:30,170 2108 01:23:30,170 --> 01:23:38,690 Dhe ata janë që ne jemi duke shkuar për të thënë, OK, barabartë të rastit drand 48. 2109 01:23:38,690 --> 01:23:39,747 2110 01:23:39,747 --> 01:23:40,830 Dhe çfarë e bën këtë të kthehet? 2111 01:23:40,830 --> 01:23:43,742 Çfarë e bën këtë funksion ju jap? 2112 01:23:43,742 --> 01:23:45,610 >> STUDENT: Midis 0 dhe 1. 2113 01:23:45,610 --> 01:23:47,870 >> Davin: Po, në mes të 0 dhe 1. 2114 01:23:47,870 --> 01:23:48,890 Pra, kjo do të be-- 2115 01:23:48,890 --> 01:23:51,070 >> Rob: Dhe kjo is-- mendoj ne do të ju them këtë. 2116 01:23:51,070 --> 01:23:52,670 Si, ju mund të përdorni drand 48. 2117 01:23:52,670 --> 01:23:54,350 Ju mund të verifikojë këtë në provim të kaluar. 2118 01:23:54,350 --> 01:23:56,720 Por ne me siguri do të thonë se ju mund përdorim drand 48, e cila 2119 01:23:56,720 --> 01:23:58,790 kthen një noton në mes të 0 dhe 1. 2120 01:23:58,790 --> 01:24:00,830 >> Davin: Po, po, unë jam goxha i sigurt në provim 2121 01:24:00,830 --> 01:24:03,860 ajo thotë se ju ndoshta dëshironi të përdorni drand, vërtet. 2122 01:24:03,860 --> 01:24:07,041 Pra, kjo do të kthehen disa vlera midis 0 dhe 1. 2123 01:24:07,041 --> 01:24:08,790 Dhe atëherë çfarë jeni do të doni të bëni? 2124 01:24:08,790 --> 01:24:16,360 E pra, ju doni të shumohen by-- prisni, unë mendoj se kjo është si kjo, sorry. 2125 01:24:16,360 --> 01:24:18,018 Unë do të bëj pikërisht këtë. 2126 01:24:18,018 --> 01:24:19,410 Nuk e di. 2127 01:24:19,410 --> 01:24:22,240 >> Pra, b minus një. 2128 01:24:22,240 --> 01:24:23,310 2129 01:24:23,310 --> 01:24:24,490 Pra, pse b minus a? 2130 01:24:24,490 --> 01:24:26,110 2131 01:24:26,110 --> 01:24:30,490 Pra, le të thonë se ju drand jep mbrapa një OK int--, unë do të bëj vetëm pjesën tjetër, 2132 01:24:30,490 --> 01:24:33,380 kështu plus një. 2133 01:24:33,380 --> 01:24:36,130 Pra, çfarë does-- y është b minus një. 2134 01:24:36,130 --> 01:24:40,670 Pra, le të themi se drand ju jep mbrapa vlera maksimale që mund ndoshta 2135 01:24:40,670 --> 01:24:41,410 ju jap. 2136 01:24:41,410 --> 01:24:42,409 Çfarë është kjo do të jetë? 2137 01:24:42,409 --> 01:24:43,010 STUDENT: 1. 2138 01:24:43,010 --> 01:24:44,430 >> Davin: 1, e drejtë? 2139 01:24:44,430 --> 01:24:47,880 Pra, nëse kjo është 1, dhe ju jeni shumëzuar atë me b minus një, 2140 01:24:47,880 --> 01:24:50,110 mirë, kjo është vetëm Dallimi në mes të minus A. 2141 01:24:50,110 --> 01:24:52,870 Dhe në qoftë se ju pastaj shtoni atë përsëri mbi një, kjo është ajo? 2142 01:24:52,870 --> 01:24:54,290 2143 01:24:54,290 --> 01:24:55,180 Është b thelb. 2144 01:24:55,180 --> 01:24:56,435 2145 01:24:56,435 --> 01:24:57,310 Ka që e bëjnë kuptim? 2146 01:24:57,310 --> 01:24:57,851 >> STUDENT: Po. 2147 01:24:57,851 --> 01:24:59,480 2148 01:24:59,480 --> 01:25:02,170 >> Davin: Pra, nëse ky është maksimumi vlerësojmë se ndoshta mund të jetë, 2149 01:25:02,170 --> 01:25:03,175 ajo do të jetë 1. 2150 01:25:03,175 --> 01:25:04,122 2151 01:25:04,122 --> 01:25:06,330 Dhe atëherë kjo është vetëm Diferenca midis të dyjave. 2152 01:25:06,330 --> 01:25:11,410 Shtoni në një, kështu që kjo është do të kthehen të rastit. 2153 01:25:11,410 --> 01:25:15,000 2154 01:25:15,000 --> 01:25:18,620 Dhe në rast këndi drand ju jep mbrapa 1, 2155 01:25:18,620 --> 01:25:20,970 rastit do të jetë vetëm në mënyrë efektive të b. 2156 01:25:20,970 --> 01:25:22,700 Por kjo është maksimumi që mund të jetë. 2157 01:25:22,700 --> 01:25:27,420 Pra, në qoftë se ajo do të jetë më pak se se, kështu që le të themi se saj si 0.9, 2158 01:25:27,420 --> 01:25:31,080 kështu atëherë 0.9 herë minus b a do të jetë më pak 2159 01:25:31,080 --> 01:25:33,230 se diferenca midis minus b a. 2160 01:25:33,230 --> 01:25:35,830 >> Dhe pastaj, nëse ju shtoni atë për në një, atëherë kjo vlerë të 2161 01:25:35,830 --> 01:25:38,986 do të jetë më i madh se a, sepse ju jeni duke shtuar diçka mbi atë, 2162 01:25:38,986 --> 01:25:40,360 por ajo do të jetë më pak se b. 2163 01:25:40,360 --> 01:25:41,430 2164 01:25:41,430 --> 01:25:44,420 Pra, ju jeni duke shkuar për të marrë një të rastit numrin, sepse ju jeni duke bërë thirrje drand. 2165 01:25:44,420 --> 01:25:48,000 Dhe kjo Rand, ky numër të rastit është do të jetë diku në mes a 2166 01:25:48,000 --> 01:25:49,342 dhe b. 2167 01:25:49,342 --> 01:25:50,780 Ka që e bëjnë kuptim? 2168 01:25:50,780 --> 01:25:52,990 >> Rob: Vetëm për të vënë atë në numra konkrete, në mënyrë 2169 01:25:52,990 --> 01:25:55,450 le të thonë se ne duam që të marr një Numri i rastit ndërmjet 7 dhe 10. 2170 01:25:55,450 --> 01:25:56,960 Pra, minus b a është gamën tonë. 2171 01:25:56,960 --> 01:26:00,150 Pra, ka një varg i tre numrat ne duam të zgjedhur nga. 2172 01:26:00,150 --> 01:26:03,290 Dhe pastaj shumëzuar që ndërmjet 0 dhe 1 1, 2173 01:26:03,290 --> 01:26:07,430 në qoftë se pastaj na jep some-- le të themi se na jep 1.5. 2174 01:26:07,430 --> 01:26:10,670 >> Atëherë 1.5, ne duam të shkojnë 7-10. 2175 01:26:10,670 --> 01:26:14,470 Pra 1.5 plus 7 na çon përsëri në 7 deri në 10 gamën tonë. 2176 01:26:14,470 --> 01:26:17,580 Dhe atëherë ne jemi duke e ruajtur atë brenda një numër i plotë, kështu që cunguar deri në 8. 2177 01:26:17,580 --> 01:26:18,790 Dhe pastaj ne kthehen vetëm se. 2178 01:26:18,790 --> 01:26:21,310 Pra, minus b a është gamën tonë. 2179 01:26:21,310 --> 01:26:25,770 a ndërrime atë në numrat që ne duam në atë varg. 2180 01:26:25,770 --> 01:26:30,540 Pra, në mes të 7 dhe 10, dhe pastaj ne mund të kthehet ajo që ne fund me. 2181 01:26:30,540 --> 01:26:32,684 >> Davin: Po, e bukur. 2182 01:26:32,684 --> 01:26:34,470 >> Rob: Ju faleminderit. 2183 01:26:34,470 --> 01:26:35,628 >> Davin: Po, çfarë është lart? 2184 01:26:35,628 --> 01:26:39,746 >> STUDENTORE: A kemi drejtuar atë në çdo lloj të Gabime ASCII kur we're-- nëse drand është 2185 01:26:39,746 --> 01:26:40,996 kthyer një noton [padëgjueshme]. 2186 01:26:40,996 --> 01:26:42,470 2187 01:26:42,470 --> 01:26:45,360 >> Rob: Pra, ashtu si ka thënë Rob, për shkak të rastit nuk është një int, 2188 01:26:45,360 --> 01:26:47,080 kështu drand do të jetë një noton. 2189 01:26:47,080 --> 01:26:48,470 Pra, dhe pastaj shumëfishon jashtë. 2190 01:26:48,470 --> 01:26:50,507 Dhe ju mund të merrni disa lloj i numrave noton. 2191 01:26:50,507 --> 01:26:51,840 Dhe pastaj do të shkurtoj. 2192 01:26:51,840 --> 01:26:52,339 >> STUDENT: OK. 2193 01:26:52,339 --> 01:26:53,019 Davin: Po. 2194 01:26:53,019 --> 01:26:56,060 Rob: Dhe në qoftë se përpiluesit ishin të paralajmëruar ju rreth, si, humbja e saktësi, 2195 01:26:56,060 --> 01:26:58,986 vetëm hedhur një int në atje, dhe pastaj është e mirë. 2196 01:26:58,986 --> 01:27:00,398 2197 01:27:00,398 --> 01:27:00,898 Davin: Po? 2198 01:27:00,898 --> 01:27:02,332 2199 01:27:02,332 --> 01:27:04,722 >> STUDENTORE: A do të ketë njëjti probabilitet për të marrë, 2200 01:27:04,722 --> 01:27:06,156 si, b ose a [padëgjueshme]? 2201 01:27:06,156 --> 01:27:08,080 2202 01:27:08,080 --> 01:27:10,980 >> Rob: Pra is-- që unë jam në të vërtetë wondering-- është RandomInt menduar 2203 01:27:10,980 --> 01:27:14,362 të jetë një numër nga a për më pak se b? 2204 01:27:14,362 --> 01:27:16,820 Si, në qoftë se është në mes të 7 dhe 10, cilat janë mundësitë? 2205 01:27:16,820 --> 01:27:18,454 7, 8, dhe 9, ose 7, 8, 9, 10? 2206 01:27:18,454 --> 01:27:19,120 Davin: I harroj. 2207 01:27:19,120 --> 01:27:19,880 Në problemit set-- 2208 01:27:19,880 --> 01:27:20,570 >> Rob: Unë mendoj se është 7, 8, 9. 2209 01:27:20,570 --> 01:27:22,785 >> Davin: Ajo në mënyrë specifike thotë një-së përfshirëse dhe një të veçantë. 2210 01:27:22,785 --> 01:27:23,110 >> Rob: Po. 2211 01:27:23,110 --> 01:27:23,670 >> Davin: Por unë don't-- unë jam not-- 2212 01:27:23,670 --> 01:27:25,878 >> Rob: Kështu që unë mendoj se këto është nuk janë përfshirë, në të cilin rast, 2213 01:27:25,878 --> 01:27:28,152 ka një të barabartë Mundësia e 7, 8, dhe 9. 2214 01:27:28,152 --> 01:27:29,360 Nuk ka probabilitet 10. 2215 01:27:29,360 --> 01:27:31,770 2216 01:27:31,770 --> 01:27:32,270 Davin: Po? 2217 01:27:32,270 --> 01:27:33,395 STUDENT: Unë kam një pyetje. 2218 01:27:33,395 --> 01:27:38,090 Ne duam që të përcaktojë një funksion kthehet jo një vlerë, por një grup. 2219 01:27:38,090 --> 01:27:41,020 Atëherë çfarë do të jetë Sintaksa pas kthehen? 2220 01:27:41,020 --> 01:27:44,604 >> Davin: OK, kështu atëherë ju would-- pas kthimit? 2221 01:27:44,604 --> 01:27:47,020 Pra, le të thonë se ju kishte deklaruar një koleksion diku lart atje. 2222 01:27:47,020 --> 01:27:49,708 Atëherë ju vetëm do të kthehen emri i vektorit. 2223 01:27:49,708 --> 01:27:50,676 >> STUDENT: OK, thank you. 2224 01:27:50,676 --> 01:27:51,718 Pastaj vetëm të kthehet me a-- 2225 01:27:51,718 --> 01:27:52,759 Davin: Oh wait, kështu keq. 2226 01:27:52,759 --> 01:27:54,620 Pyetja ishte se si ju ktheheni një rrjet. 2227 01:27:54,620 --> 01:27:56,170 >> Rob: Edhe pse kjo nuk mund të të një sërë deklarohet 2228 01:27:56,170 --> 01:27:57,260 në rafte apo diçka të tillë. 2229 01:27:57,260 --> 01:27:59,510 Ajo do të duhet të jetë diçka malloced, sepse malloc 2230 01:27:59,510 --> 01:28:01,610 është se si ju merrni rreth Alokimi automatike kujtesës. 2231 01:28:01,610 --> 01:28:02,109 >> Davin: Po. 2232 01:28:02,109 --> 01:28:03,433 2233 01:28:03,433 --> 01:28:04,933 Rob: Si ju merrni rreth fushës vendore. 2234 01:28:04,933 --> 01:28:09,670 2235 01:28:09,670 --> 01:28:11,550 >> Davin: Por ju do të vetëm kthimi name-- saj 2236 01:28:11,550 --> 01:28:17,890 >> STUDENT: [padëgjueshme] nuk është një me vlerë, për shembull, dy numra, kështu 2237 01:28:17,890 --> 01:28:18,390 [Padëgjueshme]. 2238 01:28:18,390 --> 01:28:19,590 >> Davin: Ju nuk mund të kthehen numrin e të shumta. 2239 01:28:19,590 --> 01:28:20,850 Ju nuk mund, si, return-- 2240 01:28:20,850 --> 01:28:23,630 >> STUDENT: Kam biseduar rreth kthimit një grup ose diçka të tillë. 2241 01:28:23,630 --> 01:28:26,050 >> Davin: Yeah, kështu që pyetja është mund të kthehet vlera të shumëfishta. 2242 01:28:26,050 --> 01:28:27,460 Ju nuk mund të kthehen vlera të shumëfishta. 2243 01:28:27,460 --> 01:28:30,270 Ju nuk mund të, si, kthehet një pas kthehen b ose diçka si kjo. 2244 01:28:30,270 --> 01:28:32,710 Sepse pasi ju të ktheheni, ju kthehet nga funksioni. 2245 01:28:32,710 --> 01:28:35,790 Dhe pastaj funksioni është kryer, dhe si Rob tha, është në rafte. 2246 01:28:35,790 --> 01:28:38,260 >> Pra, të gjithë se kujtesa vetëm merr kthyer kompjuter. 2247 01:28:38,260 --> 01:28:40,025 Çdo gjë merr harruar, në thelb. 2248 01:28:40,025 --> 01:28:41,480 2249 01:28:41,480 --> 01:28:44,430 Pra, nëse ju doni të ktheheni të shumta vlerat, ju duhet të kthehen një rrjet, 2250 01:28:44,430 --> 01:28:45,971 Dhe mënyra që ju bëni që është mallocing. 2251 01:28:45,971 --> 01:28:48,780 Dhe pastaj ju do të ktheheni x si kjo. 2252 01:28:48,780 --> 01:28:50,280 Në thelb, ju vetëm të kthehet emrin. 2253 01:28:50,280 --> 01:28:51,620 Dhe kur ju të ktheheni diçka si kjo, ju jeni 2254 01:28:51,620 --> 01:28:53,200 vërtetë nuk kthehen vlerën. 2255 01:28:53,200 --> 01:28:55,430 >> Pra, le të thonë se ju ruajtur vlerat në një rrjet. 2256 01:28:55,430 --> 01:28:57,910 Ju nuk jeni të vërtetë kthehen këto vlera. 2257 01:28:57,910 --> 01:29:01,515 Si, në qoftë se unë u kthye një int, unë jam me të vërtetë kthehen kopje të vlerave. 2258 01:29:01,515 --> 01:29:02,017 2259 01:29:02,017 --> 01:29:03,850 Por në qoftë se unë do të kthehen diçka si kjo, 2260 01:29:03,850 --> 01:29:06,450 Unë jam kthyer një referencë të këtyre vlerave. 2261 01:29:06,450 --> 01:29:09,090 Kështu që unë jam kthyer, në thelb, një Adresa e kujtesës vlerave. 2262 01:29:09,090 --> 01:29:10,079 Ka që e bëjnë kuptim? 2263 01:29:10,079 --> 01:29:10,620 STUDENT: Po. 2264 01:29:10,620 --> 01:29:11,120 Davin: Bukur. 2265 01:29:11,120 --> 01:29:12,760 2266 01:29:12,760 --> 01:29:13,410 Po? 2267 01:29:13,410 --> 01:29:15,430 >> STUDENT: Kur ju jeni përdorur drand këtu, 2268 01:29:15,430 --> 01:29:17,660 ju keni për të vënë srand para kësaj? 2269 01:29:17,660 --> 01:29:20,320 >> Davin: Jo, jo, unë nuk mendoj kështu. 2270 01:29:20,320 --> 01:29:23,040 >> Rob: Yeah, kështu që nuk keni të them asgjë në lidhje me srand? 2271 01:29:23,040 --> 01:29:26,900 Parazgjedhur prej jush nuk thotë srand në të gjitha është që vetëm të bëjë srand të null. 2272 01:29:26,900 --> 01:29:29,350 Pra drand në vetë punën e tij do. 2273 01:29:29,350 --> 01:29:33,759 Dhe kjo automatikisht do të prishem me koha e tanishme, është ajo që ai përdor. 2274 01:29:33,759 --> 01:29:35,175 2275 01:29:35,175 --> 01:29:35,675 Davin: Po? 2276 01:29:35,675 --> 01:29:40,950 STUDENTORE: A ju [padëgjueshme] me numrat? 2277 01:29:40,950 --> 01:29:42,570 Davin: Po, mundeni. 2278 01:29:42,570 --> 01:29:46,770 STUDENT: Pra, ju mund të thonë, si, 4 herë 2. 2279 01:29:46,770 --> 01:29:50,280 Gjë është, ju nuk mund të marrë atëherë një int është katër bytes. 2280 01:29:50,280 --> 01:29:51,020 Only-- 2281 01:29:51,020 --> 01:29:53,830 >> Davin: Unë do të thotë, për quiz mundeni. 2282 01:29:53,830 --> 01:29:54,830 [Qesh] 2283 01:29:54,830 --> 01:29:55,780 >> Rob: Mm, nr. 2284 01:29:55,780 --> 01:29:56,780 Davin: Po, po, ju mundeni. 2285 01:29:56,780 --> 01:30:00,197 Nëse ata ju pyes se sa i madh një int është, ju nuk mund të jetë, si, katër apo tetë. 2286 01:30:00,197 --> 01:30:02,030 ROB: Oh, kështu që nëse Pyetja është veçanërisht, 2287 01:30:02,030 --> 01:30:04,857 si, në qoftë se ajo është një problem coding, ju duhet të thoni madhësinë e int. 2288 01:30:04,857 --> 01:30:06,690 Në qoftë se kjo është një tavolinë, ose ajo thotë se shumë bytes, 2289 01:30:06,690 --> 01:30:08,808 ju nuk duhet të plotësoni në madhësi të ints. 2290 01:30:08,808 --> 01:30:11,278 >> STUDENTËT: [qesh] 2291 01:30:11,278 --> 01:30:18,210 2292 01:30:18,210 --> 01:30:20,580 >> Davin: E drejta, kështu që pse është e Madhësia e int rëndësishme këtu? 2293 01:30:20,580 --> 01:30:23,085 Pra si, në qoftë se ne jemi duke shkuar për të 32-bit procesor apo diçka si kjo, 2294 01:30:23,085 --> 01:30:24,300 atëherë ajo do të jetë katër bytes. 2295 01:30:24,300 --> 01:30:26,342 Por në disa nga më të reja sende, ajo mund të jetë ajo? 2296 01:30:26,342 --> 01:30:27,383 Ajo mund të jetë tetë, e drejtë? 2297 01:30:27,383 --> 01:30:30,550 Pra this-- nëse ju vetëm kodi hard katër, pastaj në disa makina, ajo do të punojë. 2298 01:30:30,550 --> 01:30:32,180 Disa makina, ajo nuk do të funksionojë. 2299 01:30:32,180 --> 01:30:35,270 Por në qoftë se në quiz ne jeni si sa e madhe është një int? 2300 01:30:35,270 --> 01:30:35,770 Vendos katër. 2301 01:30:35,770 --> 01:30:38,710 2302 01:30:38,710 --> 01:30:39,210 Rob: E drejta. 2303 01:30:39,210 --> 01:30:39,790 Davin: Po? 2304 01:30:39,790 --> 01:30:43,192 STUDENT: Pra, sepse ne jemi deklaruar [Padëgjueshme] në brendësi të një funksioni, 2305 01:30:43,192 --> 01:30:45,622 ne duhet të vënë 3 brenda këtij funksioni? 2306 01:30:45,622 --> 01:30:46,907 Ose ne mund të përdorni atë jashtë? 2307 01:30:46,907 --> 01:30:48,740 Davin: Ju mund të përdorni atë jashtë atë funksion. 2308 01:30:48,740 --> 01:30:49,890 Kështu që ai është duke kërkuar për të lira. 2309 01:30:49,890 --> 01:30:51,700 >> STUDENT: Lose udhë e ku [padëgjueshme]. 2310 01:30:51,700 --> 01:30:54,720 >> Rob: Oh, i lirë nuk happen-- kjo është pjesë e magjisë së malloc 2311 01:30:54,720 --> 01:30:57,220 është se ju nuk jeni kufizuar të fushës vendore. 2312 01:30:57,220 --> 01:31:00,700 Ju keni kontroll të plotë mbi sa kohë variabla tuaja të jetojnë. 2313 01:31:00,700 --> 01:31:05,380 Pra, ne e quajmë malloc këtu, ajo mund të jetë një funksion krejtësisht të veçantë. 2314 01:31:05,380 --> 01:31:08,670 Ajo mund të jetë 10 orë më vonë se ne fund quajmë të lirë. 2315 01:31:08,670 --> 01:31:11,764 >> Davin: Kështu për shembull, si një çift javë nga tani, kur ju më në fund 2316 01:31:11,764 --> 01:31:13,680 bëni speller tuaj fjalor psets, ju do të jeni 2317 01:31:13,680 --> 01:31:16,410 të ketë disa funksion që krijon ton nyjet. 2318 01:31:16,410 --> 01:31:18,630 Pra, ju jeni mallocing ton e nyjet në këtë funksion. 2319 01:31:18,630 --> 01:31:20,670 Dhe pastaj më vonë në a funksion të veçantë, ju jeni 2320 01:31:20,670 --> 01:31:22,440 do të duan për të liruar të gjitha këto nyje. 2321 01:31:22,440 --> 01:31:25,740 Kështu që ju mund të vërtetë vetëm të kalojë në lirosh një tregues, kështu që një adresë e memories 2322 01:31:25,740 --> 01:31:26,684 me atë që ju malloced. 2323 01:31:26,684 --> 01:31:27,600 Dhe kjo do të jetë mirë. 2324 01:31:27,600 --> 01:31:29,725 Ju nuk keni për të liruar, si, në të njëjtin funksion. 2325 01:31:29,725 --> 01:31:30,449 Po? 2326 01:31:30,449 --> 01:31:36,197 >> STUDENT: Pra a malloc variable [padëgjueshme] jashtë? 2327 01:31:36,197 --> 01:31:37,384 Është se çfarë ju jeni duke thënë? 2328 01:31:37,384 --> 01:31:38,300 Davin: Prisni, thonë se? 2329 01:31:38,300 --> 01:31:38,800 Më vjen keq. 2330 01:31:38,800 --> 01:31:42,300 >> STUDENT: Nëse një variabël malloc mund të jetë i lirë kudo në kodin, 2331 01:31:42,300 --> 01:31:44,800 atëherë ata mund të arrihen kudo në kodin? 2332 01:31:44,800 --> 01:31:45,800 Ju mund të mbani ato lokale? 2333 01:31:45,800 --> 01:31:47,880 >> Davin: Oh, ajo pyeti, si, e ndryshueshme, like-- 2334 01:31:47,880 --> 01:31:51,300 2335 01:31:51,300 --> 01:31:55,510 >> Rob: Pra, ju ende nevojë për të kanë disa lloj të referencës 2336 01:31:55,510 --> 01:31:57,220 në bllokun e malloc së kujtesës. 2337 01:31:57,220 --> 01:31:58,540 Pra këtu, ne jemi duke u kthyer x. 2338 01:31:58,540 --> 01:31:59,040 STUDENT: Oh. 2339 01:31:59,040 --> 01:32:01,920 Rob: Nëse ne nuk kthehemi x këtu, dhe kjo ishte vetëm e pavlefshme, 2340 01:32:01,920 --> 01:32:04,550 atëherë ne nuk do të ketë qasje në tregues ishte malloced, 2341 01:32:04,550 --> 01:32:05,920 dhe kjo është rrjedhur kujtesës. 2342 01:32:05,920 --> 01:32:06,690 >> STUDENT: OK. 2343 01:32:06,690 --> 01:32:10,010 >> Davin: Pra si, le të themi të kanë këtë, si, të drejtë këtu. 2344 01:32:10,010 --> 01:32:10,510 Rob: Jo 2345 01:32:10,510 --> 01:32:13,430 Davin: Në funksion tim kryesor, unë nuk mund të vetëm thirrje këtë x dhe të jetë, si, OK, 2346 01:32:13,430 --> 01:32:14,645 në këtë funksion, unë e bëri këtë. 2347 01:32:14,645 --> 01:32:14,960 >> Rob: E drejta. 2348 01:32:14,960 --> 01:32:17,790 >> Davin: Kështu që unë jam duke shkuar për të thirrur në x, si, kryesore ose diçka të tillë. 2349 01:32:17,790 --> 01:32:18,540 Ju nuk mund ta bëjë këtë. 2350 01:32:18,540 --> 01:32:19,600 Ju jeni do të kthehen diçka. 2351 01:32:19,600 --> 01:32:21,000 Por, çfarë po ju do të ktheheni? 2352 01:32:21,000 --> 01:32:22,130 Ju jeni do të kthehen një adresë e memories. 2353 01:32:22,130 --> 01:32:25,130 Dhe për shkak se ju të ktheheni një kujtim adresa, të cilat mund të arrihen diku tjetër. 2354 01:32:25,130 --> 01:32:27,262 2355 01:32:27,262 --> 01:32:28,255 Ndonjë pyetje më shumë? 2356 01:32:28,255 --> 01:32:28,755 Po? 2357 01:32:28,755 --> 01:32:31,213 >> STUDENTORE: A është funksioni më sipër duke qenë kontrolloni për [padëgjueshme]? 2358 01:32:31,213 --> 01:32:33,270 2359 01:32:33,270 --> 01:32:35,005 >> Davin: Pse nuk kam nevojë për të bërë këtë? 2360 01:32:35,005 --> 01:32:35,880 STUDENT: [padëgjueshme]. 2361 01:32:35,880 --> 01:32:37,755 Davin: Sepse ju jeni Nuk mallocing asgjë. 2362 01:32:37,755 --> 01:32:39,640 Pra, kjo është not-- yeah, kjo është jo si një string s. 2363 01:32:39,640 --> 01:32:41,160 Kjo është një tregues diku. 2364 01:32:41,160 --> 01:32:42,951 Këto janë vetëm vlera. 2365 01:32:42,951 --> 01:32:43,450 STUDENT: OK. 2366 01:32:43,450 --> 01:32:43,949 Davin: Po. 2367 01:32:43,949 --> 01:32:47,600 2368 01:32:47,600 --> 01:32:48,470 Çdo gjë tjetër? 2369 01:32:48,470 --> 01:32:48,970 Rob: Po? 2370 01:32:48,970 --> 01:32:50,386 STUDENT: Por kur ju [padëgjueshme]? 2371 01:32:50,386 --> 01:32:55,050 2372 01:32:55,050 --> 01:32:58,690 >> Rob: Pra, në mënyrë të lirë kujtesës, ne do të themi këtu. 2373 01:32:58,690 --> 01:33:01,350 Pra, x është tregues tonë të bllok i kujtesës. 2374 01:33:01,350 --> 01:33:02,845 Ne lirë që akrep. 2375 01:33:02,845 --> 01:33:04,470 Dhe ne nuk do domosdoshmërisht të bëjë këtu. 2376 01:33:04,470 --> 01:33:05,390 Ne mund ta bëjmë atë kudo. 2377 01:33:05,390 --> 01:33:10,400 Por ju vetëm të telefononi falas në diçka që malloc kthimet. 2378 01:33:10,400 --> 01:33:12,940 Pra malloc, këtu, u kthye çfarë është duke u ruajtur në x. 2379 01:33:12,940 --> 01:33:14,802 Pra, ne mund të telefononi falas në x. 2380 01:33:14,802 --> 01:33:18,730 2381 01:33:18,730 --> 01:33:20,556 Çdo pyetje e fundit? 2382 01:33:20,556 --> 01:33:21,701 >> Davin: Çdo pyetje e fundit? 2383 01:33:21,701 --> 01:33:22,200 Vërtet? 2384 01:33:22,200 --> 01:33:25,152 >> STUDENT: Na vjen keq, ju mund të ri-shpjegoj pse ju do të lira në atje? 2385 01:33:25,152 --> 01:33:26,630 Pse [padëgjueshme]? 2386 01:33:26,630 --> 01:33:27,774 >> Davin: Sepse këtu? 2387 01:33:27,774 --> 01:33:29,109 >> STUDENT: Po, si e drejtë pas. 2388 01:33:29,109 --> 01:33:30,900 Davin: Ju ndoshta nuk duan një të lirë këtu. 2389 01:33:30,900 --> 01:33:31,630 Rob: Ju ndoshta nuk do. 2390 01:33:31,630 --> 01:33:33,060 Davin: Po, se kjo do të bëjë asgjë. 2391 01:33:33,060 --> 01:33:35,220 Kjo do të, si, të krijojë kujtesës, të bëjë gjëra në të, 2392 01:33:35,220 --> 01:33:37,390 dhe pastaj menjëherë harrojmë për këtë, vërtet. 2393 01:33:37,390 --> 01:33:39,850 >> Rob: Por ne mund të bëjmë, si, këtu për disa arsye. 2394 01:33:39,850 --> 01:33:43,902 Ne mund të themi yllin e int y barabartë array kthimit. 2395 01:33:43,902 --> 01:33:47,900 Të bëjë disa gjëra me y, ndoshta shtypura përmbajtjen. 2396 01:33:47,900 --> 01:33:49,350 Dhe pastaj, në fund, ne jemi duke bërë. 2397 01:33:49,350 --> 01:33:50,626 Ne mund të lirë y. 2398 01:33:50,626 --> 01:33:51,501 STUDENT: [padëgjueshme]. 2399 01:33:51,501 --> 01:33:57,839 2400 01:33:57,839 --> 01:33:59,005 Davin: A duhet të lëvizni poshtë? 2401 01:33:59,005 --> 01:34:00,445 Thanks. 2402 01:34:00,445 --> 01:34:00,945 Rob: Bukur. 2403 01:34:00,945 --> 01:34:02,400 2404 01:34:02,400 --> 01:34:03,646 >> Davin: OK, kjo është ajo. 2405 01:34:03,646 --> 01:34:04,520 Rob: Në rregull, mirë. 2406 01:34:04,520 --> 01:34:05,070 Fat të mirë. 2407 01:34:05,070 --> 01:34:06,800 >> Davin: Nëse keni pyetje, na dërgoni me email. 2408 01:34:06,800 --> 01:34:08,670 Fat të mirë. 2409 01:34:08,670 --> 01:34:10,283