1 00:00:00,000 --> 00:00:00,960 2 00:00:00,960 --> 00:00:03,360 >> [Mūzikas atskaņošanai] 3 00:00:03,360 --> 00:00:11,050 4 00:00:11,050 --> 00:00:12,065 >> Davin: Nu labi, puiši. 5 00:00:12,065 --> 00:00:13,642 6 00:00:13,642 --> 00:00:15,350 Tātad tas ir pārskats pirmo viktorīnā. 7 00:00:15,350 --> 00:00:17,751 Vai visi gatavi viktorīna trešdien? 8 00:00:17,751 --> 00:00:18,292 ALLISON: Woo! 9 00:00:18,292 --> 00:00:18,743 STUDENTU: Woo! 10 00:00:18,743 --> 00:00:19,242 Davin: Jā. 11 00:00:19,242 --> 00:00:19,920 ALLISON: Jā! 12 00:00:19,920 --> 00:00:20,920 Davin: Tas puisis ir gatavs. 13 00:00:20,920 --> 00:00:22,200 Ka puisis, divas rokas, jauki. 14 00:00:22,200 --> 00:00:23,234 15 00:00:23,234 --> 00:00:25,900 Tātad viktorīna pārskatīšana šodien, tas būs būt apmēram pusotru stundu. 16 00:00:25,900 --> 00:00:27,940 Mēs ejam, lai iet pa visu galvenais jēdzieni jums vajadzētu zināt viktorīnas. 17 00:00:27,940 --> 00:00:31,434 Mēs ejam, lai iet pār kādu kodēšana ar rokas piemēri, kas ir uz katra viktorīnā. 18 00:00:31,434 --> 00:00:34,350 Un, ja jums ir jautājumi, nekautrējieties paaugstināt savu roku un viss 19 00:00:34,350 --> 00:00:34,945 tāpat. 20 00:00:34,945 --> 00:00:36,695 Nu, par loģistika viktorīna tiešsaistē. 21 00:00:36,695 --> 00:00:38,450 Tāpēc mēs esam gatavojas sadalīt cilvēkus augšup dažādās telpās. 22 00:00:38,450 --> 00:00:39,491 Tā ir balstīta uz viņu vārda. 23 00:00:39,491 --> 00:00:43,630 Tātad, ja Jums ir kādi jautājumi par to, kur iet vai par to, kādi materiāli ir, piemēram, 24 00:00:43,630 --> 00:00:46,810 oficiālais vārds par to, kas notiek būt par viktorīnas, pārbaudīt tiešsaistē. 25 00:00:46,810 --> 00:00:48,420 Un tas viss ir aktuāla. 26 00:00:48,420 --> 00:00:51,280 Tātad, ja nav jautājumi Pirmkārt, mēs ejam, lai sāktu. 27 00:00:51,280 --> 00:00:52,790 28 00:00:52,790 --> 00:00:53,710 Un šeit ir Allison. 29 00:00:53,710 --> 00:00:56,060 30 00:00:56,060 --> 00:00:57,000 >> [Aplaudē] 31 00:00:57,000 --> 00:00:59,300 >> ALLISON: OK, thanks, 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 būtu Pagriezts to. 35 00:01:03,050 --> 00:01:07,240 Tas ir nepilnīgs saraksts tēmas, kā parasti, kā Davin tikko teica. 36 00:01:07,240 --> 00:01:10,860 Konsultēties ar dokumentāciju tiešsaistē par viktorīnas nulles. 37 00:01:10,860 --> 00:01:13,680 Bet tas ir diezgan much-- tas ir uz mācību programmu 38 00:01:13,680 --> 00:01:15,550 ir viss, mēs esam izgājuši vairāk nekā līdz šim. 39 00:01:15,550 --> 00:01:18,290 Viss šeit ir godīga spēle, arī kā kaut kas cits 40 00:01:18,290 --> 00:01:21,380 kas var būt minēti lekcijā. 41 00:01:21,380 --> 00:01:25,070 >> Mans sadaļā šeit, ir tikai daudz pārskatīšanu. 42 00:01:25,070 --> 00:01:27,775 Ir pāris vingrinājumi Ka jūs puiši varētu strādāt. 43 00:01:27,775 --> 00:01:30,650 Bet lielākā daļa, mēs patiešām vēlaties nokļūt Davin ar tām kodu 44 00:01:30,650 --> 00:01:31,710 ar roku vingrinājumi. 45 00:01:31,710 --> 00:01:33,940 >> Tāpēc es esmu gatavojas lidot caur šo. 46 00:01:33,940 --> 00:01:36,330 Ja jums ir kādi jautājumi, mani apturēt. 47 00:01:36,330 --> 00:01:37,270 Paaugstināt savu roku. 48 00:01:37,270 --> 00:01:39,250 Es apsolu, es droši vien redzēt. 49 00:01:39,250 --> 00:01:41,042 Ja tā nav, tikai vilnis to apkārt. 50 00:01:41,042 --> 00:01:42,250 Es esmu gatavojas runāt ātri. 51 00:01:42,250 --> 00:01:43,950 Es ceru, ka visi ir OK ar to. 52 00:01:43,950 --> 00:01:48,020 >> Labi, īpašu vārdu, Davin acīmredzot aizmirsu, lai uzsist pa šiem slaidiem. 53 00:01:48,020 --> 00:01:51,880 [Smejas] Tu esi nepatikšanas, cilvēks. 54 00:01:51,880 --> 00:01:55,770 Tātad padomi viktorīnu nulles, praktizēt kodēšanas uz papīra. 55 00:01:55,770 --> 00:01:58,950 Jūs puiši gatavojas iegūt kādu prakse ar, ka tagad ar Davin, 56 00:01:58,950 --> 00:02:00,655 tāpēc jums nebūs pilnībā pats. 57 00:02:00,655 --> 00:02:03,030 Es domāju, ka mēs esam patiesībā notiek caur šīm divām funkcijām. 58 00:02:03,030 --> 00:02:04,500 Tātad jums ir labi sagatavotas tur. 59 00:02:04,500 --> 00:02:05,958 >> Esiet pazīstami ar savu problēmu kopas. 60 00:02:05,958 --> 00:02:08,150 Ir bijuši jautājumi uz iepriekšējām viktorīnas 61 00:02:08,150 --> 00:02:12,680 ka lūgs jums, piemēram, kodu up kaut ko ļoti līdzīgs Mario. 62 00:02:12,680 --> 00:02:15,060 Tāpēc ir ļoti labi pārzina jūsu problēma komplekti, kā arī 63 00:02:15,060 --> 00:02:17,827 kā jautājumi, lūdzam Jūs no sākuma par formā 64 00:02:17,827 --> 00:02:19,660 , ka jūs aizpildīt, būs kalpos jums ļoti labi. 65 00:02:19,660 --> 00:02:20,940 66 00:02:20,940 --> 00:02:23,380 >> Vai iepriekšējo testu saskaņā laika ierobežojumi. 67 00:02:23,380 --> 00:02:25,430 Šie viktorīnas ir garas. 68 00:02:25,430 --> 00:02:26,850 Laiks iet ļoti ātri. 69 00:02:26,850 --> 00:02:30,480 Un bieži vien, jums nav saprast, cik ātri tas iet, kamēr jūs faktiski 70 00:02:30,480 --> 00:02:32,180 sevi saskaņā ar šiem ierobežojumiem. 71 00:02:32,180 --> 00:02:36,500 Tātad, ja jūs varat vienkārši meklējumos, jūs zināt, 75. minūtē, vai nu šovakar vai rīt 72 00:02:36,500 --> 00:02:41,020 veikt vienu no šīm viktorīnas saskaņā ka jums būs daudz labākā formā. 73 00:02:41,020 --> 00:02:43,060 >> Un arī, izveidojot savu atsauces lapu. 74 00:02:43,060 --> 00:02:45,290 Atcerieties, ka jūs saņemsiet vienu lapa priekšā un aizmugurē 75 00:02:45,290 --> 00:02:47,040 kā atsauci jūsu viktorīnas trešdien. 76 00:02:47,040 --> 00:02:49,074 Radīt tas ir lielisks veids, kā mācīties. 77 00:02:49,074 --> 00:02:51,990 Jebkas, kas jums ir problēmas ar jūs vēlaties iekļaut tur. 78 00:02:51,990 --> 00:02:55,627 Jebkas, kas jūsu TFS bijis, piemēram, tas ir patiešām svarīgi. 79 00:02:55,627 --> 00:02:57,960 Jums vajadzētu zināt to, ir varbūt lietas, jums ir tur 80 00:02:57,960 --> 00:02:59,931 ja jums nav tos iegaumētu. 81 00:02:59,931 --> 00:03:02,680 Pat ja jūs zināt tos patiešām labi, dažreiz ar to tur 82 00:03:02,680 --> 00:03:07,030 ir tikai sava veida komfortu, lai jūs, ko es zinu, viktorīnas, ir saspringta. 83 00:03:07,030 --> 00:03:09,260 Tāpēc jebkura komforts jums var palīdzēt. 84 00:03:09,260 --> 00:03:13,072 Visas tiesības, arī, iegūt miega un ēst un patīk normālas lietas 85 00:03:13,072 --> 00:03:14,280 ka mēs jums pastāstīt par viktorīnas. 86 00:03:14,280 --> 00:03:16,320 87 00:03:16,320 --> 00:03:18,890 >> Tik, sākot off viegli, datu tipi un izmēri. 88 00:03:18,890 --> 00:03:22,720 Kā jau teicu, tas ir tikai gatavojas kas man throwing daudz sīkumi 89 00:03:22,720 --> 00:03:24,320 šeit, ka jums vajadzētu zināt. 90 00:03:24,320 --> 00:03:27,600 Tātad mums ir mūsu simboli kas ir viens baiti, Ints 91 00:03:27,600 --> 00:03:30,390 ka ir četri baiti, ilgi garš, kas ir astoņi baiti. 92 00:03:30,390 --> 00:03:33,280 Būtībā, tas ir tikai jums vēlas turēt lielākus veseli skaitļi. 93 00:03:33,280 --> 00:03:35,490 Pludiņiem, kas ir četri, dubultspēlē, kas ir astoņi. 94 00:03:35,490 --> 00:03:38,150 Atkal, tikai dod jums vairāk vieta jūsu pludiņi. 95 00:03:38,150 --> 00:03:41,290 Un tad ierakstiet zvaigzne, tāpēc jebkurš rādītāju uz 32 bitu mašīna, 96 00:03:41,290 --> 00:03:44,650 kas ir viss, kas jums ir nepieciešams, puiši zināt, ir četri baiti. 97 00:03:44,650 --> 00:03:46,542 >> Tātad visas lietas, jums vajadzētu zina, varbūt lietas 98 00:03:46,542 --> 00:03:48,250 Jūs vēlaties, lai būtu uz jūsu atsauces lapa. 99 00:03:48,250 --> 00:03:50,350 100 00:03:50,350 --> 00:03:53,520 Labi, bināro konversijas uz bināro, pārveidi 101 00:03:53,520 --> 00:03:56,860 uz heksadecimālo, uz priekšu un atpakaļ, visas lietas, jums vajadzētu zināt. 102 00:03:56,860 --> 00:03:59,480 Tātad no bināro uz decimālo. 103 00:03:59,480 --> 00:04:03,309 Jūs puiši vēlas veikt ātri minūti un mēģināt izdomāt katrs no šiem 104 00:04:03,309 --> 00:04:04,600 un tad man pateikt, kādi viņi ir? 105 00:04:04,600 --> 00:04:06,500 106 00:04:06,500 --> 00:04:10,240 >> Man arī ir konfektes manā maisā, tāpēc ikviens kurš atbildēs izpaužas konfektes, ko veidā. 107 00:04:10,240 --> 00:04:13,560 108 00:04:13,560 --> 00:04:14,480 Un man ir daudz no tā. 109 00:04:14,480 --> 00:04:15,760 110 00:04:15,760 --> 00:04:16,870 Ļaujiet man paķert to. 111 00:04:16,870 --> 00:04:18,480 Es esmu gatavojas sniegt to Gabe. 112 00:04:18,480 --> 00:04:21,829 Tātad jūs varat roku, konfektes kurš ir jauki un kooperatīvu. 113 00:04:21,829 --> 00:04:23,490 >> Labi, es redzēju tur roku uz muguras. 114 00:04:23,490 --> 00:04:26,418 115 00:04:26,418 --> 00:04:28,370 >> STUDENTU: Jā, pirmais ir 42. 116 00:04:28,370 --> 00:04:30,280 >> ALLISON: Jā, pirmais ir 42, pareizs. 117 00:04:30,280 --> 00:04:31,163 118 00:04:31,163 --> 00:04:32,038 STUDENTU: [dzirdams]. 119 00:04:32,038 --> 00:04:34,810 [Smiekli] 120 00:04:34,810 --> 00:04:37,030 ALLISON: Otrā viena, tur atpakaļ dzeltenā? 121 00:04:37,030 --> 00:04:38,910 STUDENTU: 110010. 122 00:04:38,910 --> 00:04:43,410 ALLISON: Pareizi, un šis pēdējais, uz leju šeit apakšā? 123 00:04:43,410 --> 00:04:44,570 Arī, jā, jūs zināt, vēlaties? 124 00:04:44,570 --> 00:04:45,550 Tikai mētāt konfektes. 125 00:04:45,550 --> 00:04:46,483 Kā par Candy ikvienam? 126 00:04:46,483 --> 00:04:47,510 >> STUDENTU: [dzirdams], kad mēs esam darīts. 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 Un tad pēdējais. 130 00:04:50,910 --> 00:04:52,000 Kas grib, lai atbildētu? 131 00:04:52,000 --> 00:04:52,744 Turpat. 132 00:04:52,744 --> 00:04:54,480 >> STUDENTU: 11100. 133 00:04:54,480 --> 00:04:56,820 >> ALLISON: 11100, apskatīt to. 134 00:04:56,820 --> 00:04:58,790 Apsveicam, liels darbs, ikvienam. 135 00:04:58,790 --> 00:05:03,370 Labi, visi veida saprast process, kā to darīt? 136 00:05:03,370 --> 00:05:08,700 Jūs, dodoties no binārā uz decimālo veids, kā es mēdz darīt, ir rakstiski out 137 00:05:08,700 --> 00:05:09,920 pilnvaras 2. 138 00:05:09,920 --> 00:05:18,350 Tāpēc es saku, OK, 0 reizes 2 0, tāpēc kas ir 0, 1 reizes 2 ar pirmo, 139 00:05:18,350 --> 00:05:21,400 ir 2 iet uz priekšu, ka veidā. 140 00:05:21,400 --> 00:05:25,790 Vai kāds vēlas, lai es skaidri iet cauri piemēru binārā? 141 00:05:25,790 --> 00:05:26,840 142 00:05:26,840 --> 00:05:28,140 Labi, atdzesē. 143 00:05:28,140 --> 00:05:30,390 >> Decimal uz bināro ir ļoti līdzīgs. 144 00:05:30,390 --> 00:05:31,550 145 00:05:31,550 --> 00:05:33,630 Man ir tendence rakstīt pilnvaras 2. 146 00:05:33,630 --> 00:05:38,660 Sākt ar vienu, kas ir lielākais, bet nepārsniedz garām aiz komata 147 00:05:38,660 --> 00:05:39,710 ka jūs meklējat. 148 00:05:39,710 --> 00:05:42,870 Un tad veida strādāt savu ceļu atpakaļ saskaitot lietas, kā nepieciešams. 149 00:05:42,870 --> 00:05:45,200 >> Un pēc tam ar turklāt tas ir tāpat kā parastā papildus. 150 00:05:45,200 --> 00:05:51,110 Ja jums kādreiz ir gadījums, kad jūs esat pievienojot divus 1s, tas acīmredzami kļūst 2. 151 00:05:51,110 --> 00:05:56,875 2 binārā tagad ir 1: 0, lai jums ir nepieciešams lai veiktu savu 1 arī nākamajā kolonnā. 152 00:05:56,875 --> 00:05:57,375 Atdzist. 153 00:05:57,375 --> 00:05:59,220 154 00:05:59,220 --> 00:06:03,240 >> Heksadecimālo, tas varētu būt kaut kas kas ir nedaudz mazāk pazīstami. 155 00:06:03,240 --> 00:06:06,600 Lai Rob bija tikai spēcīgi mani iepriekš, viņa triks par to 156 00:06:06,600 --> 00:06:10,210 ir vienkārši sadalīt to uz augšu četrās baitu gabalos, OK? 157 00:06:10,210 --> 00:06:11,050 Biti, sorry. 158 00:06:11,050 --> 00:06:11,720 Redzēt? 159 00:06:11,720 --> 00:06:12,220 Pateicība Rob. 160 00:06:12,220 --> 00:06:15,874 Tas ir iemesls, kāpēc tu esi šeit. [TROKSNIS] Labi, tāpēc mēs vienkārši lauzt augšup 161 00:06:15,874 --> 00:06:16,790 četrās bitu gabalos. 162 00:06:16,790 --> 00:06:21,570 Tātad ar binaries uz heksadecimālo, mēs skatāmies pirmo 4, 163 00:06:21,570 --> 00:06:25,573 kas ir, ja mums ir četri 1s in rinda, cik lielā skaitā tas, kas simbolizē? 164 00:06:25,573 --> 00:06:26,540 >> STUDENT: F. 165 00:06:26,540 --> 00:06:32,751 >> ALLISON: Tātad šajā gadījumā, kāda ir 11111111 or-- jā? 166 00:06:32,751 --> 00:06:33,250 STUDENTU: FF. 167 00:06:33,250 --> 00:06:34,600 ALLISON: Perfect, FF. 168 00:06:34,600 --> 00:06:36,900 Tik liels, konfektes jums. 169 00:06:36,900 --> 00:06:41,100 Tagad, kā heksadecimālo uz bināro, mēs tikai domāt par to veida atpakaļgaitā. 170 00:06:41,100 --> 00:06:46,420 Par katru numuru vai burtu šajā mums ir mūsu heksadecimālā, 171 00:06:46,420 --> 00:06:53,930 vienkārši pārvērst to uz četriem bit [Smejas], lai tās četras bitu konversiju. 172 00:06:53,930 --> 00:06:58,696 Tātad, 5, šajā gadījumā, kas ir 5 vai mēs pārstāv to ar četrām bitiem? 173 00:06:58,696 --> 00:06:59,608 >> STUDENTU: 010? 174 00:06:59,608 --> 00:07:00,520 Mm-hm. 175 00:07:00,520 --> 00:07:03,605 Un pēc tam, kas ir faktiski 10, varētu būt? 176 00:07:03,605 --> 00:07:06,230 177 00:07:06,230 --> 00:07:08,040 1.010. 178 00:07:08,040 --> 00:07:09,670 Tātad mums ir, ka šeit. 179 00:07:09,670 --> 00:07:13,990 Tātad konvertējot starp heksadecimālo un bināro patiesībā nav tik slikti. 180 00:07:13,990 --> 00:07:16,565 Ja paskatās uz to četrās bit gabalos, būs zelta. 181 00:07:16,565 --> 00:07:18,330 182 00:07:18,330 --> 00:07:19,300 Everyone-- jā? 183 00:07:19,300 --> 00:07:21,903 >> ROB: Tas ir muļķīgi, bet es vienmēr atceros 184 00:07:21,903 --> 00:07:23,500 Kopš s vajadzētu būt 10. 185 00:07:23,500 --> 00:07:26,230 Un bināro ir tikai 10 10, so-- 186 00:07:26,230 --> 00:07:27,310 >> ALLISON: Ah, tur mēs ejam. 187 00:07:27,310 --> 00:07:28,615 >> ROB: Hei. 188 00:07:28,615 --> 00:07:30,020 >> ALLISON: Hei, Candy Rob. 189 00:07:30,020 --> 00:07:31,707 190 00:07:31,707 --> 00:07:33,290 Ir aizliegti šokolādes sīkumi tur. 191 00:07:33,290 --> 00:07:34,180 Tātad jūs varat būt dažas. 192 00:07:34,180 --> 00:07:35,790 193 00:07:35,790 --> 00:07:36,760 Tik ASCII math. 194 00:07:36,760 --> 00:07:38,206 195 00:07:38,206 --> 00:07:38,705 Uzvesties. 196 00:07:38,705 --> 00:07:40,630 197 00:07:40,630 --> 00:07:44,720 Tātad ASCII matemātikas, kā jūs puiši droši vien labi atceros 198 00:07:44,720 --> 00:07:48,480 p komplekts 2 ar VISIONEER un Caesar, jūs daudz to. 199 00:07:48,480 --> 00:07:49,610 200 00:07:49,610 --> 00:07:51,980 Atcerieties, rakstzīmes ir Būtībā tikai cipari. 201 00:07:51,980 --> 00:07:54,780 Tātad, mēs varam darīt math ar tiem, tāpat kā mēs math ar Ints. 202 00:07:54,780 --> 00:07:58,090 >> Tāpēc mums ir tikai nedaudz vienkārša lieta šeit. 203 00:07:58,090 --> 00:08:00,940 Mums ir daži, kas ir inicializēts līdz 65. 204 00:08:00,940 --> 00:08:07,440 Un B ir vienāds ar ASCII vērtību A plus 1, palijas C vienāds ar D mīnus 1, 205 00:08:07,440 --> 00:08:09,060 un char D vienāds ar 68. 206 00:08:09,060 --> 00:08:13,130 Tātad mēs gatavojamies print visi no tiem, kā mēs redzam šeit. 207 00:08:13,130 --> 00:08:15,650 Un var kāds man pateikt Ko tas izdrukāt? 208 00:08:15,650 --> 00:08:17,335 209 00:08:17,335 --> 00:08:18,210 STUDENTU: [dzirdams]. 210 00:08:18,210 --> 00:08:20,540 ALLISON: Tieši tā, tāpēc viena lieta, lai paziņojuma ir 211 00:08:20,540 --> 00:08:22,900 ka mēs izdrukāšana simboli katru reizi, šeit. 212 00:08:22,900 --> 00:08:28,290 Mēs apzīmē kaut arī A un B ir Ints kad mēs deklarēta tos iepriekš. 213 00:08:28,290 --> 00:08:32,870 Mēs iespiešanu kā rakstzīmes, ko procenti C un mūsu printf paziņojumu, 214 00:08:32,870 --> 00:08:34,610 lai viņi visi drukāt kā rakstzīmes. 215 00:08:34,610 --> 00:08:40,730 Un, protams, ASCII vērtība 65 griba drukāt kā A. The ASCII vērtību A plus 1 216 00:08:40,730 --> 00:08:43,669 varētu būt 66, kas būtu lepni B. Tātad faktiski mēs 217 00:08:43,669 --> 00:08:49,107 nokļūt B C D Ikvienam labs tur? 218 00:08:49,107 --> 00:08:49,690 Kādi jautājumi? 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 >> Labi, darbības joma. 223 00:08:53,455 --> 00:08:55,090 224 00:08:55,090 --> 00:08:59,950 Tā darbības joma ir acīmredzami ļoti Svarīgi ir saprast, šeit. 225 00:08:59,950 --> 00:09:03,250 Daudzi no jums, ja jūs ir apkopo kļūdas, 226 00:09:03,250 --> 00:09:06,085 un tas saka, jums nav piekļuve kādu mainīgo, 227 00:09:06,085 --> 00:09:08,540 tas ir iespējams tāpēc, ka jums definēja ietvaros cilpu 228 00:09:08,540 --> 00:09:12,210 un tad mēģināja piekļūt no tā, vai vīzu versa. 229 00:09:12,210 --> 00:09:16,410 >> Tā joma tās kodols, tas tikai nosaka, kur 230 00:09:16,410 --> 00:09:20,800 mēs sakām mainīgais eksistē, kur mēs var mainīt to, kur mēs varam piekļūt. 231 00:09:20,800 --> 00:09:24,550 Tas ir tikai sava veida sakot tie ir vienīgās vietas, kur jums ir piekļuve 232 00:09:24,550 --> 00:09:26,060 līdz šim mainīgajam. 233 00:09:26,060 --> 00:09:30,080 >> Tātad divas sfēras, ka mēs runājam par laikā klasē ir globāla un vietēja. 234 00:09:30,080 --> 00:09:35,080 Tātad globālo mainīgo mēs runājam par kad esat tos definējot iepriekš galvenais. 235 00:09:35,080 --> 00:09:38,390 Tas nozīmē, ka visa jūsu Programma ir piekļuvi tai, 236 00:09:38,390 --> 00:09:42,090 un tā pastāv tik ilgi kā programma darbojas, OK? 237 00:09:42,090 --> 00:09:45,100 Vietējā nozīmē, ka tas ir vairāk tikai reģionam. 238 00:09:45,100 --> 00:09:50,520 Tātad, ja jums ir īpašas funkcijas piemēram, mijmaiņas, mēs vienmēr runājam par. 239 00:09:50,520 --> 00:09:54,380 Mēs vienmēr runājam par mijmaiņas ar A un B. un B pastāvēt šo funkciju. 240 00:09:54,380 --> 00:09:55,690 Tie nav nekur citur. 241 00:09:55,690 --> 00:09:56,860 242 00:09:56,860 --> 00:10:00,610 >> Kā arī, ja jums ir, ja paziņojumiem vai par cilpas. 243 00:10:00,610 --> 00:10:04,670 Gadījumos, kad mums ir, piemēram, cilpa mums ir int man ir vienāds ar 0. 244 00:10:04,670 --> 00:10:06,630 Mums ir dažas stāvokli, un mēs atjaunināt to. 245 00:10:06,630 --> 00:10:10,270 Man pastāv tikai bikšturi, kas, ka cilpa. 246 00:10:10,270 --> 00:10:13,270 Ja jūs mēģināt piekļūt citur, Jūsu sastādītājs varētu kliegt pie jums. 247 00:10:13,270 --> 00:10:14,560 Tas gribētu būt, piemēram, ko jūs mēģināt darīt? 248 00:10:14,560 --> 00:10:15,400 Tas neeksistē. 249 00:10:15,400 --> 00:10:16,644 250 00:10:16,644 --> 00:10:18,435 Tā, ka ir divi dažāda veida darbības jomu. 251 00:10:18,435 --> 00:10:19,486 252 00:10:19,486 --> 00:10:20,860 Vai tas ir jēga visiem? 253 00:10:20,860 --> 00:10:23,870 254 00:10:23,870 --> 00:10:27,890 >> Tā, piemēram, šeit, šis ir tikai dažas vienkāršas programmas. 255 00:10:27,890 --> 00:10:29,120 256 00:10:29,120 --> 00:10:32,890 Ko jūs guys domā ir notiks katrā punktā 257 00:10:32,890 --> 00:10:34,210 ka mēs cenšamies drukāt? 258 00:10:34,210 --> 00:10:40,150 Tātad šeit tas viens, to, kas notiks? 259 00:10:40,150 --> 00:10:43,047 260 00:10:43,047 --> 00:10:44,255 STUDENTU: Tas drukāt trīs. 261 00:10:44,255 --> 00:10:44,880 ALLISON: Labais. 262 00:10:44,880 --> 00:10:45,930 Tas būs drukāt trīs. 263 00:10:45,930 --> 00:10:47,272 Kas par šeit? 264 00:10:47,272 --> 00:10:48,230 STUDENTU: Tas nedarbosies. 265 00:10:48,230 --> 00:10:48,910 ALLISON: Tas nedarbosies. 266 00:10:48,910 --> 00:10:50,290 Jūs no darbības jomas, vai ne? 267 00:10:50,290 --> 00:10:55,160 Vietējā mainīgais neeksistē ārpus šīm bikšturi, labi? 268 00:10:55,160 --> 00:10:56,462 Un tad ko par šeit? 269 00:10:56,462 --> 00:10:57,850 >> STUDENTU: [dzirdams]. 270 00:10:57,850 --> 00:10:59,210 >> ALLISON: Kas? 271 00:10:59,210 --> 00:10:59,900 Aplaupīt, iet. 272 00:10:59,900 --> 00:11:00,854 >> ROB: es tikko teicu. 273 00:11:00,854 --> 00:11:04,200 Globālie mainīgie jābūt globālo pasvītrojums mainīgs. 274 00:11:04,200 --> 00:11:05,660 >> ALLISON: Ah, jā, sorry. 275 00:11:05,660 --> 00:11:06,200 Paldies, Rob. 276 00:11:06,200 --> 00:11:07,480 277 00:11:07,480 --> 00:11:10,170 Rob ir tāpat kā mūsu rezidents kompilatoru. 278 00:11:10,170 --> 00:11:12,684 Viņš vienkārši kliegt uz mums, kad mēs to vajag. [Smejas] Jā, tas 279 00:11:12,684 --> 00:11:14,225 jābūt globālai pasvītrojums mainīga. 280 00:11:14,225 --> 00:11:15,760 281 00:11:15,760 --> 00:11:18,430 Tā, pieņemot, ka bija globālā pasvītrojums 282 00:11:18,430 --> 00:11:20,260 mainīgs, to, kas notiks šeit? 283 00:11:20,260 --> 00:11:21,260 STUDENTU: Ka strādās. 284 00:11:21,260 --> 00:11:22,093 ALLISON: Tas būs darbs. 285 00:11:22,093 --> 00:11:24,655 Tā tas būs drukāt, tāpēc vienkārši ļoti vienkāršs piemērs. 286 00:11:24,655 --> 00:11:27,650 287 00:11:27,650 --> 00:11:29,870 Labi, prototipus. 288 00:11:29,870 --> 00:11:33,680 Tātad, protams, mēs patiešām uzsvērt jums puiši 289 00:11:33,680 --> 00:11:36,460 lai funkcijas, ja tas jēgas savās programmās. 290 00:11:36,460 --> 00:11:38,460 Bet, protams, ja jums veikt savas funkcijas, 291 00:11:38,460 --> 00:11:40,930 parasti jūs noteikt to, ka pēc galvenā. 292 00:11:40,930 --> 00:11:42,430 Un jūs mēģināt viņiem piezvanīt pamatdarbā. 293 00:11:42,430 --> 00:11:46,030 Un, ja jūs neizmantojat prototipu, Jūsu kompilators kliegt pie jums. 294 00:11:46,030 --> 00:11:49,590 >> Prototips ir būtībā vienkārši stāsta savu kompilatoru 295 00:11:49,590 --> 00:11:52,400 ka man ir šo funkciju zemāk galvenais. 296 00:11:52,400 --> 00:11:54,970 Es esmu dodas uz zvanu, pirms es to definēt. 297 00:11:54,970 --> 00:11:56,360 Vienkārši turēt uz. 298 00:11:56,360 --> 00:12:00,660 Es apsolu, ka tas ir noteikts, un jūs būs viss, kas jums nepieciešams. 299 00:12:00,660 --> 00:12:05,900 >> Tātad kā mēs to darām, ir tikai jūsu atgriešanās veids, jūsu funkcijas nosaukums, jūsu ieguldījums 300 00:12:05,900 --> 00:12:06,400 sarakstā. 301 00:12:06,400 --> 00:12:09,760 Tas būtībā pirmā rinda savu funkciju deklarācijas. 302 00:12:09,760 --> 00:12:11,510 Tas tiešām viss tas ir. 303 00:12:11,510 --> 00:12:14,440 Bet tas ir tikai Kopumā veida formātā. 304 00:12:14,440 --> 00:12:17,220 >> Tātad mūsu piemērā šeit, ko jūs guys vajadzētu 305 00:12:17,220 --> 00:12:19,700 esmu redzējis iedaļā kādā brīdī, mums ir 306 00:12:19,700 --> 00:12:23,220 daži int kubs, ka prasa zināmu t.sk. ieejas. 307 00:12:23,220 --> 00:12:25,870 Un mums ir mūsu galvenie funkcija, kas aicina kubu. 308 00:12:25,870 --> 00:12:28,670 Un kubs ir definēts pēc fakta. 309 00:12:28,670 --> 00:12:34,450 >> Tātad, ja mums nebūtu int cube ievade augšpusē, kad mēs sauc kubs 310 00:12:34,450 --> 00:12:36,620 ietvaros galvenajā, mūsu kompilators varētu saņemt mad pie mums. 311 00:12:36,620 --> 00:12:38,890 Tas gribētu būt, piemēram, tas, ko tu runā? 312 00:12:38,890 --> 00:12:40,360 Cube neeksistē. 313 00:12:40,360 --> 00:12:41,910 Es nezinu, ko jūs jautājat. 314 00:12:41,910 --> 00:12:43,490 Un es esmu tikai gatavojas pieturā. 315 00:12:43,490 --> 00:12:47,330 >> Bet tāpēc, ka mēs darījām prototipu augšpusē, mēs jau teicām, 316 00:12:47,330 --> 00:12:49,800 jūs zināt, kad jūs redzat kubs, nav jāuztraucas par to. 317 00:12:49,800 --> 00:12:51,990 Es apsolu, tas ir noteikts vēlāk. 318 00:12:51,990 --> 00:12:53,750 Un tas būs jums darīt to, ko jūs vēlaties. 319 00:12:53,750 --> 00:12:57,750 Tātad, ja jums kādreiz ir funkcija kas tiek izsludinātas pēc jūs sauc to 320 00:12:57,750 --> 00:13:00,570 pirmo reizi, jums ir nepieciešams, lai ir tas prototyped augšpusē. 321 00:13:00,570 --> 00:13:01,640 322 00:13:01,640 --> 00:13:02,720 >> Jā? 323 00:13:02,720 --> 00:13:04,412 >> ROB: Tas brusas, nevis cubing. 324 00:13:04,412 --> 00:13:05,855 >> ALLISON: Ak mans Dievs. 325 00:13:05,855 --> 00:13:09,435 Man nebija have-- Gabe, es domāju tu biji mūsu korektore. 326 00:13:09,435 --> 00:13:10,740 327 00:13:10,740 --> 00:13:12,760 Labi puiši, sedz ar mani, šeit. 328 00:13:12,760 --> 00:13:14,440 Es ceru, ka visi kļūst ideja. 329 00:13:14,440 --> 00:13:15,560 330 00:13:15,560 --> 00:13:20,380 Labi, tāpēc šis būtu ir brusas, nevis kubā. 331 00:13:20,380 --> 00:13:22,700 Bet ideja paliek tas pats. 332 00:13:22,700 --> 00:13:23,702 333 00:13:23,702 --> 00:13:26,660 Jebkura funkcija, kas mēs esam aicinot pēc fakts būtu prototipu. 334 00:13:26,660 --> 00:13:27,730 335 00:13:27,730 --> 00:13:28,970 Ikviens labi ar šo? 336 00:13:28,970 --> 00:13:30,730 337 00:13:30,730 --> 00:13:32,310 Jebkuras citas typos? 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 Jebkuras typos šeit, pirms mēs sākam, Rob? 341 00:13:36,230 --> 00:13:37,356 342 00:13:37,356 --> 00:13:42,380 [Smejas] Labi, tāpēc statņi. 343 00:13:42,380 --> 00:13:45,040 Būtībā, structs ļauj jums lai izveidotu savu datu tipu. 344 00:13:45,040 --> 00:13:49,264 Tik daudz, piemēram, int vai char vai pludiņš, tas ir tikai vēl viens veids. 345 00:13:49,264 --> 00:13:51,680 Man patīk domāt par to, kā, piemēram, izveidot savu datu tipu. 346 00:13:51,680 --> 00:13:53,740 Tātad tas ļauj jums to darīt. 347 00:13:53,740 --> 00:13:56,160 Un tas pieder dažāda veida datus. 348 00:13:56,160 --> 00:14:01,030 >> Tātad, ja jūs atceraties, masīvā, mēs var būt tikai lietas līdzīga veida. 349 00:14:01,030 --> 00:14:04,660 Structs ļauj turēt vairākus lietas, dažādu veidu. 350 00:14:04,660 --> 00:14:08,944 Tātad šajā gadījumā šeit, mēs ir struct sauc Student, 351 00:14:08,944 --> 00:14:10,650 šeit nosaukts apakšā. 352 00:14:10,650 --> 00:14:13,540 Un mums ir dažas int id un daži stīgu nosaukums. 353 00:14:13,540 --> 00:14:14,620 354 00:14:14,620 --> 00:14:17,300 Tātad tas ir tikai vēl viens datu tips. 355 00:14:17,300 --> 00:14:18,950 Mums tagad ir datu tipu sauc Student. 356 00:14:18,950 --> 00:14:20,330 357 00:14:20,330 --> 00:14:24,750 >> Tāpēc, ka mēs varam domāt par tā kā tikai citu datu tipu, 358 00:14:24,750 --> 00:14:27,760 mēs varam deklarēt mainīgos kā mēs būtu jebkurš cits. 359 00:14:27,760 --> 00:14:32,680 Tātad, nevis tikai, kam, piemēram, int students, mums vienkārši ir students, 360 00:14:32,680 --> 00:14:33,390 students 1. 361 00:14:33,390 --> 00:14:33,560 Ak, paskaties. 362 00:14:33,560 --> 00:14:34,059 Tas ir Rob. 363 00:14:34,059 --> 00:14:35,750 364 00:14:35,750 --> 00:14:38,880 Tāpēc šeit mēs esam deklarējot struktūrai, vai mainīgs 365 00:14:38,880 --> 00:14:40,940 sauc students 1 tipa students. 366 00:14:40,940 --> 00:14:45,370 Tātad, tas ir nāksies id un vārds, kas saistīts ar to. 367 00:14:45,370 --> 00:14:48,430 >> Un kā mēs piekļūt šiem elementi mūsu struct 368 00:14:48,430 --> 00:14:50,100 ir ar dot operatoru, šeit. 369 00:14:50,100 --> 00:14:51,910 370 00:14:51,910 --> 00:14:54,660 Tātad, šajā gadījumā, mēs deklarēja aptuveni students 1. 371 00:14:54,660 --> 00:14:57,080 Mēs piešķirts ID ir 1. 372 00:14:57,080 --> 00:14:58,840 Un mēs piešķirts nosaukums būt Rob. 373 00:14:58,840 --> 00:15:03,010 374 00:15:03,010 --> 00:15:04,960 Labi, labi, visi ar šo? 375 00:15:04,960 --> 00:15:06,787 Izmantojiet to tikai like-- jā? 376 00:15:06,787 --> 00:15:09,530 >> STUDENTU: Jā, typedef-- kad Vai mums ir nepieciešams, lai izmantotu typedef? 377 00:15:09,530 --> 00:15:13,190 >> ALLISON: Tātad typedef vienkārši saka that-- Rob, jūs 378 00:15:13,190 --> 00:15:16,990 var labot man par šo, ja es esmu wrong-- bet typedef ir tikai faktiski pasludinot 379 00:15:16,990 --> 00:15:19,330 tā kā veids, ka jūs varat izmantot, vai ne? 380 00:15:19,330 --> 00:15:22,550 >> ROB: Jā, tas ir pamatā, tāpēc tas ir tikai radot 381 00:15:22,550 --> 00:15:24,215 alias, vai segvārds tipam. 382 00:15:24,215 --> 00:15:25,590 Tātad jūs varat rakstīt, ka [nedzirdama]. 383 00:15:25,590 --> 00:15:27,140 384 00:15:27,140 --> 00:15:30,350 Tātad [nedzirdama] pastāv, un tagad mums vienkārši ir 385 00:15:30,350 --> 00:15:32,090 [Dzirdams] līdzekļi tieši tas pats. 386 00:15:32,090 --> 00:15:37,210 Un tāpēc šeit, mēs esam drukāti, es domāju, daži struct 2 tipa [nedzirdama]. 387 00:15:37,210 --> 00:15:40,680 Tātad tas ir tikai segvārds attiecībā uz konkrētu veidu. 388 00:15:40,680 --> 00:15:44,344 >> STUDENTU: String [dzirdams] bibliotēka tika drukāti uz augšu, piemēram char zvaigzne. 389 00:15:44,344 --> 00:15:51,380 390 00:15:51,380 --> 00:15:54,390 >> ALLISON: Mūsu mērķiem šeit, ja jūs deklarējot struct, 391 00:15:54,390 --> 00:15:55,600 vienkārši darīt typedef struktūrai. 392 00:15:55,600 --> 00:15:57,680 393 00:15:57,680 --> 00:16:04,490 Labi, tāpēc iepriekš, tas ir tikai normāla mainīgais šeit. 394 00:16:04,490 --> 00:16:06,390 Mēs tai piekļūt ar punktu. 395 00:16:06,390 --> 00:16:08,580 ja mums ir rādītāju uz struktūrai, mēs varam reāli 396 00:16:08,580 --> 00:16:10,700 izmantot bultiņu, kas ir diezgan atdzist. 397 00:16:10,700 --> 00:16:17,130 >> Tātad šajā gadījumā, mums ir rādītāju uz students 1, kas ir tipa students. 398 00:16:17,130 --> 00:16:19,020 Atceros, ar savu rādītājs būvniecība, 399 00:16:19,020 --> 00:16:23,710 Jūs vēlaties, neatkarīgi ievadiet rādītāju ir vērsta uz būt sākumā. 400 00:16:23,710 --> 00:16:25,960 Tātad mums ir dažas students 1, šeit. 401 00:16:25,960 --> 00:16:27,370 402 00:16:27,370 --> 00:16:31,050 Un kopš šī students 1 tagad norādīja, 403 00:16:31,050 --> 00:16:36,520 mēs patiešām varam iet students 1 arrow nosaukumu nevis dot, jo tas ir rādītājs, 404 00:16:36,520 --> 00:16:37,640 un piešķirt Rob. 405 00:16:37,640 --> 00:16:40,720 Un tagad, ja mēs gribam, lai mainīt Rob uz Davin, 406 00:16:40,720 --> 00:16:43,570 tas ir tikai parāda jums atšķirīgs veids, kā to darīt. 407 00:16:43,570 --> 00:16:48,850 >> Tā vietā, izmantojot bultiņas, jūs var also-- Es pabeigt šo un tad 408 00:16:48,850 --> 00:16:52,860 pieņemt, ka question-- jūs varētu arī darīt atsauces students 1. 409 00:16:52,860 --> 00:16:56,170 Ka saka, piemēram, doties uz kāds ir students 1, kas 410 00:16:56,170 --> 00:16:58,840 būtu mūsu students struktūrai. 411 00:16:58,840 --> 00:17:03,910 Piekļūt ar punktu un elementu ka jūs vēlaties, un pēc tam pārdalīt to. 412 00:17:03,910 --> 00:17:05,326 Tur bija jautājums. 413 00:17:05,326 --> 00:17:08,034 STUDENTU: Jā, tad kā nāk jums ir izmantot [dzirdams], ja esat 414 00:17:08,034 --> 00:17:10,367 darot studentu zvaigzne bez [Dzirdams] students? 415 00:17:10,367 --> 00:17:12,200 ALLISON: Tā kā šī rada rādītāju. 416 00:17:12,200 --> 00:17:13,616 ROB: Mēs runāsim par to. 417 00:17:13,616 --> 00:17:16,119 ALLISON: Mēs ejam, lai runātu par to vēlāk pārskatā. 418 00:17:16,119 --> 00:17:17,660 Tik vienkārši turēt uz šo domu. 419 00:17:17,660 --> 00:17:20,560 Ja tas joprojām traucē jums gals, nāk runāt ar kādu no mums. 420 00:17:20,560 --> 00:17:23,380 >> Tātad šie darīt tieši to pašu. 421 00:17:23,380 --> 00:17:25,579 Mēs esam tikai parāda jums divi dažādi veidi, kā to darīt. 422 00:17:25,579 --> 00:17:29,470 Student 1 tagad ir rādītājs, tāpēc Jūs varat piekļūt nosaukums elementu 423 00:17:29,470 --> 00:17:30,960 ietvaros struktūrai ar bultiņu. 424 00:17:30,960 --> 00:17:36,440 Vai jūs varat dereference jūsu rādītājs, un tad tai piekļūt kā parasti. 425 00:17:36,440 --> 00:17:38,430 Vai tas ir jēga, lai katru vienu? 426 00:17:38,430 --> 00:17:39,480 427 00:17:39,480 --> 00:17:43,890 Ja viss rādītājs lietas ir nedaudz mulsinoši, Gabe runās par to, 428 00:17:43,890 --> 00:17:45,740 un tad varbūt tas būs lielāka jēga. 429 00:17:45,740 --> 00:17:46,240 Jā? 430 00:17:46,240 --> 00:17:48,387 >> STUDENTU: Jā, tā kā ir tas atšķiras no? 431 00:17:48,387 --> 00:17:49,470 ALLISON: Iepriekšējā viens? 432 00:17:49,470 --> 00:17:52,330 Tātad students 1 šajā lieta nav rādītājs. 433 00:17:52,330 --> 00:17:54,380 Tas ir tikai jūsu faktiskā struktūrai. 434 00:17:54,380 --> 00:17:55,400 >> STUDENTU: OK. 435 00:17:55,400 --> 00:17:57,645 >> ALLISON: tā kā šo vienu ir rādītājs, lai struktūrai. 436 00:17:57,645 --> 00:17:58,910 437 00:17:58,910 --> 00:18:02,060 >> STUDENTU: OK, bet to dara veida galu galā strādā to pašu [nedzirdama]. 438 00:18:02,060 --> 00:18:03,310 >> ALLISON: Tā efektīvi darbojas tā pati. 439 00:18:03,310 --> 00:18:04,560 Tavs sintakse ir tikai atšķirīgs. 440 00:18:04,560 --> 00:18:05,185 STUDENTU: OK. 441 00:18:05,185 --> 00:18:07,600 >> ALLISON: Jā, tie ir viens un tas pats. 442 00:18:07,600 --> 00:18:11,321 Tas ir tikai atkarībā no konteksta, Jūs varat viens pār otru. 443 00:18:11,321 --> 00:18:11,820 Jā? 444 00:18:11,820 --> 00:18:13,956 >> STUDENTU: Kad jūs atsauces uz 1-- 445 00:18:13,956 --> 00:18:14,580 ALLISON: Mm-hm? 446 00:18:14,580 --> 00:18:16,880 STUDENTU: Kāpēc jums ir iekavas? 447 00:18:16,880 --> 00:18:19,575 ALLISON: Tā students 1 ir rādītājs. 448 00:18:19,575 --> 00:18:22,200 Tātad jums ir nepieciešams, lai pārliecinātos, ka jūs esat vienkārši dereferencing rādītāju. 449 00:18:22,200 --> 00:18:23,380 >> STUDENTU: OK. 450 00:18:23,380 --> 00:18:26,700 >> ALLISON: Tātad šajā gadījumā šeit, iekavās ap to 451 00:18:26,700 --> 00:18:29,875 nozīmē, ka jūs esat dereferencing students 1. 452 00:18:29,875 --> 00:18:35,390 Tātad jūs gatavojas kur students 1 punkti, kas ir jūsu struktūrai. 453 00:18:35,390 --> 00:18:38,010 Tātad tagad jūs varat iedomāties par to, kā šī struktūrai, 454 00:18:38,010 --> 00:18:39,785 lai mēs varētu izmantot mūsu parasto dot darbību. 455 00:18:39,785 --> 00:18:42,752 456 00:18:42,752 --> 00:18:43,585 Jebkādi citi jautājumi? 457 00:18:43,585 --> 00:18:45,840 458 00:18:45,840 --> 00:18:48,120 Atdzist, awesome. 459 00:18:48,120 --> 00:18:51,359 >> Tātad pēdējā lieta, es domāju, ir mans pēdējais slaids, bildināt! 460 00:18:51,359 --> 00:18:52,775 Labi, tā peldošā komata neprecizitātes. 461 00:18:52,775 --> 00:18:54,090 462 00:18:54,090 --> 00:18:56,820 Mēs runājām īsi par šis lekciju laikā. 463 00:18:56,820 --> 00:19:00,030 Būtībā, mēs esam bezgala daudz reāliem skaitļiem. 464 00:19:00,030 --> 00:19:02,237 Un, ja kāds no jums, puiši mīlu matemātiku, tur ir 465 00:19:02,237 --> 00:19:03,570 visādas cool stuff ar mums. 466 00:19:03,570 --> 00:19:05,010 467 00:19:05,010 --> 00:19:07,190 >> Bet ir bezgala daudzi reāliem skaitļiem. 468 00:19:07,190 --> 00:19:09,850 Bet viņi tikai ierobežots daudz bitu, kas mums ir. 469 00:19:09,850 --> 00:19:13,240 Tātad jūs vienmēr gatavojas ir neprecizitātes, ir viss. 470 00:19:13,240 --> 00:19:16,269 Un tas, ka ir tikai sava veida piemēram, kaut ko jums vajadzētu zināt. 471 00:19:16,269 --> 00:19:19,060 Ka, piemēram, mēs varētu jautāt, kāpēc to dara peldošais komats neprecizitāte pastāv? 472 00:19:19,060 --> 00:19:20,004 473 00:19:20,004 --> 00:19:21,420 Tātad, tikai kaut kas jums vajadzētu zināt. 474 00:19:21,420 --> 00:19:23,770 Un ar to, ka es esmu pagrieziena tas pār Norādes. 475 00:19:23,770 --> 00:19:27,720 476 00:19:27,720 --> 00:19:28,520 >> Binky: Sveiki, puiši. 477 00:19:28,520 --> 00:19:29,616 Mans vārds ir mīkstās. 478 00:19:29,616 --> 00:19:30,990 Es esmu gatavojas runāt par norādes. 479 00:19:30,990 --> 00:19:33,247 480 00:19:33,247 --> 00:19:35,830 Jā, tāpēc norādes ir faktiski mana mīļākā daļa šajā kursā. 481 00:19:35,830 --> 00:19:39,740 Tik vienkārši, lai skaidrs, ko Allison runāju par šeit, tāpēc iemeslu 482 00:19:39,740 --> 00:19:43,810 why-- vienīgā atšķirība šeit liela atšķirība bija ceļš 483 00:19:43,810 --> 00:19:44,760 mēs paziņojam lietas. 484 00:19:44,760 --> 00:19:47,560 Tātad students zvaigzne nozīmē, ka šis ir rādītājs, lai students. 485 00:19:47,560 --> 00:19:52,960 Tā kā slaidu pirms, students Faktiskais struktūrai, piemēram, faktisko students, 486 00:19:52,960 --> 00:19:54,400 satur kādu no šīm lietām. 487 00:19:54,400 --> 00:19:57,050 >> Un iemesls, kāpēc mēs gribu kuri paredzēti, jā, Davin? 488 00:19:57,050 --> 00:19:58,630 >> Davin: Ko bultiņa nozīmē? 489 00:19:58,630 --> 00:20:04,240 >> Binky: Bulta līdzekļi tieši tāds pats kā šis. 490 00:20:04,240 --> 00:20:06,150 Tātad jums nav tiešām ir nepieciešams uz bultiņas. 491 00:20:06,150 --> 00:20:11,060 Tāpat kā, ja jūs esat vienīgā programma C, jūs varat izmantot šo. 492 00:20:11,060 --> 00:20:12,850 Atvainojiet, es nedomāju, kas tas ir. 493 00:20:12,850 --> 00:20:14,920 Jūs varat izmantot šo sintaksi. 494 00:20:14,920 --> 00:20:17,430 >> Bet daži cilvēki, kad tie projektēšana C, 495 00:20:17,430 --> 00:20:19,870 viņi izpētījuši, ka cilvēki izmanto šo sintaksi tik daudz, 496 00:20:19,870 --> 00:20:23,970 ka viņi patīk vienkārši nākt klajā ar sintakses struktūru to. 497 00:20:23,970 --> 00:20:26,820 Un tas notika veidā šī bulta. 498 00:20:26,820 --> 00:20:29,210 Un tas ir patiešām jauki, jo tas simbolizē kaut ko 499 00:20:29,210 --> 00:20:33,670 piemēram, mēs esam patiešām pēc šī bultiņa, šis rādītājs, 500 00:20:33,670 --> 00:20:35,300 uz kādu telpu atmiņā. 501 00:20:35,300 --> 00:20:40,410 Un, kad mēs tur nokļūt, mēs vēlamies skatīties uz nosaukuma, ka students, 502 00:20:40,410 --> 00:20:42,150 ja tas ir jēga. 503 00:20:42,150 --> 00:20:43,000 OK? 504 00:20:43,000 --> 00:20:44,290 >> Tātad, šis ir tieši tāds pats. 505 00:20:44,290 --> 00:20:46,310 Tas ir tieši tas pats, jo tas. 506 00:20:46,310 --> 00:20:48,130 Viņiem apkopoti tieši tas pats, OK? 507 00:20:48,130 --> 00:20:50,100 508 00:20:50,100 --> 00:20:55,580 Un iemesls, kāpēc šeit mēs malloc kaut kas ir tāpēc, ka šajā gadījumā, 509 00:20:55,580 --> 00:20:59,120 Mūsu mainīgais ir faktiski tikai rādītājs mainīgs. 510 00:20:59,120 --> 00:21:02,900 Tātad mums ir tikai dažas vietas atmiņu, kas ir saimniecības rādītāju. 511 00:21:02,900 --> 00:21:06,570 Mums nav īsti nekādas telpu kas tur faktisko struct. 512 00:21:06,570 --> 00:21:08,660 >> Tāpēc tas ir jādara divos posmos. 513 00:21:08,660 --> 00:21:11,545 Mums ir jārada atmiņa likt struct in. 514 00:21:11,545 --> 00:21:14,445 Un mums ir jārada atmiņa likt bultiņu. 515 00:21:14,445 --> 00:21:16,570 Lai viņi būtībā divi dažādi mainīgie, šeit. 516 00:21:16,570 --> 00:21:19,730 Viens no tiem ir tipa students, izņemot to, nav īsti ir vārds. 517 00:21:19,730 --> 00:21:21,900 Un otrs ir tipa studentu zvaigzni. 518 00:21:21,900 --> 00:21:24,900 Un tad studentu 1 punkti tur, ja, jēgas. 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 >> Tātad, iemesls, kāpēc mēs izmantojam norādes ir tāpēc, ka viss 523 00:21:31,860 --> 00:21:35,510 datorā, katrs mainīgais datorā ir divas lietas. 524 00:21:35,510 --> 00:21:36,580 Tā ir sava vērtība. 525 00:21:36,580 --> 00:21:38,420 Un tas ir tā adrese. 526 00:21:38,420 --> 00:21:41,390 Un labs veids, kā konceptualizēt tas tur 527 00:21:41,390 --> 00:21:44,230 daudzas problēmas, kad jūs mēģināt izmantot funkcijas. 528 00:21:44,230 --> 00:21:47,200 Un mēs braucam, lai mēģinātu izskatās vienā no tiem. 529 00:21:47,200 --> 00:21:50,370 Proti, tas notiek, lai domāju, ka atmiņā kā kastes. 530 00:21:50,370 --> 00:21:52,810 >> Jūs vienmēr domāja par mainīgajiem ja jūs sakāt na vienāds 5. 531 00:21:52,810 --> 00:21:54,430 Jūs domājat, liekot 5 kastē. 532 00:21:54,430 --> 00:21:55,520 533 00:21:55,520 --> 00:22:00,030 Tātad, ko tad, ja jūs vēlaties, lai iet ka int uz funkciju? 534 00:22:00,030 --> 00:22:03,230 Jūs vienkārši pass-- man nav know-- x uz funkciju. 535 00:22:03,230 --> 00:22:06,090 Bet kas notiek, ir normāli kā cilvēkiem, jūs 536 00:22:06,090 --> 00:22:09,050 Varētu domāt, kaut kā es esmu iet lodziņu personai. 537 00:22:09,050 --> 00:22:12,070 Un tas nav īsti notikt datoriem. 538 00:22:12,070 --> 00:22:17,770 Kas notiek, ir jums kopēt vērtību kastes uz personas lodziņā. 539 00:22:17,770 --> 00:22:22,440 >> Tātad, ko es cenšos pateikt, ir tas, ka tad, ja Jums ir function-- sorry-- šeit 540 00:22:22,440 --> 00:22:27,700 ja mums ir funkcijas, piemēram, līdz pieciem augšu tur, ja jūs mēģināt nodot mainīgo, 541 00:22:27,700 --> 00:22:29,450 tas ir tikai gatavojas kopēt. 542 00:22:29,450 --> 00:22:35,771 Ja Initialize nx vienāds 3, tas būs kopēt šo vērtību līdz mainīgā a 543 00:22:35,771 --> 00:22:36,270 tur augšā. 544 00:22:36,270 --> 00:22:37,005 545 00:22:37,005 --> 00:22:39,630 OK, un tas ir sava veida iemesla kāpēc mēs vēlamies izmantot norādes. 546 00:22:39,630 --> 00:22:42,550 Jo tā vietā, dodot tikai vērtību, 547 00:22:42,550 --> 00:22:44,850 nevis tikai iet tikai vērtību funkcijai 548 00:22:44,850 --> 00:22:46,530 mēs vēlamies, lai iet ar atsauci. 549 00:22:46,530 --> 00:22:50,630 Ko mēs saucam caurlaide ar atsauci ir laipns dot lodziņu funkcijai, 550 00:22:50,630 --> 00:22:53,890 tā, ka funkcijas var arī mainīt vērtības šajā ailē ietvaros. 551 00:22:53,890 --> 00:22:57,280 >> Labi, lai tikai dažas pamata rādītājs sīkumi ir radīt norādes, 552 00:22:57,280 --> 00:23:00,300 jūs vienkārši pasludināt to veidu, un jūs varat ievietot zvaigzni uzreiz pēc tā. 553 00:23:00,300 --> 00:23:02,307 Un veids ir vienkārši ko jūs norādot uz. 554 00:23:02,307 --> 00:23:04,390 Tātad, ja tas ir int zvaigzne, jūs norādot uz int. 555 00:23:04,390 --> 00:23:05,940 Ja tas ir char zvaigzne, jūs norādot uz diagrammu. 556 00:23:05,940 --> 00:23:07,790 Un, ja tas ir students zvaigzne, jūs norādot uz students. 557 00:23:07,790 --> 00:23:08,770 OK? 558 00:23:08,770 --> 00:23:10,510 >> Un viņi visi 4 baiti. 559 00:23:10,510 --> 00:23:13,010 Jo šim mainīgajam tas nav reāli 560 00:23:13,010 --> 00:23:15,380 nepieciešams rīkot char, int, vai students. 561 00:23:15,380 --> 00:23:16,890 Tas tikai nepieciešams rīkot adresi. 562 00:23:16,890 --> 00:23:21,390 Tieši tāpēc viņi visi 4 baiti ilgi normālu 32-bit mašīna. 563 00:23:21,390 --> 00:23:21,890 OK? 564 00:23:21,890 --> 00:23:25,600 Tātad šeit, x ir mainīgais, kas norāda int. y norāda uz palijas. z punkti 565 00:23:25,600 --> 00:23:26,580 uz apgrozāmos līdzekļus. 566 00:23:26,580 --> 00:23:27,480 Kādi jautājumi šeit? 567 00:23:27,480 --> 00:23:29,841 568 00:23:29,841 --> 00:23:30,340 Atdzist. 569 00:23:30,340 --> 00:23:32,550 Un tur ir divi dažādi simboli viņi ir 570 00:23:32,550 --> 00:23:34,341 paturēt prātā, kad tuvojas rādītāja. 571 00:23:34,341 --> 00:23:36,540 Tik norādes un dereferencing ir lielie. 572 00:23:36,540 --> 00:23:38,100 573 00:23:38,100 --> 00:23:41,602 Tātad Ampersends no mainīgā nosaukums dod jums? 574 00:23:41,602 --> 00:23:42,310 STUDENTU: adrese. 575 00:23:42,310 --> 00:23:43,380 Binky: adrese. 576 00:23:43,380 --> 00:23:47,330 Tātad, ja jums paziņot, int vienāds ar 5, tad aizvieto & zīmes 577 00:23:47,330 --> 00:23:49,214 no gatavojas sniegt jums adresi. 578 00:23:49,214 --> 00:23:51,130 Un jūs faktiski var mēģināt izdrukāt to un redzēt 579 00:23:51,130 --> 00:23:54,640 kāda adrese atmiņā Jūsu mainīgais ir. 580 00:23:54,640 --> 00:23:57,380 Un tad dereferencing-- Tā, ka bija norādes, 581 00:23:57,380 --> 00:24:00,380 kļūst address-- dereferencing ir tieši pretējs. 582 00:24:00,380 --> 00:24:04,120 OK, tāpat kā reizēm ir pretējs sadalīšanu, 583 00:24:04,120 --> 00:24:06,060 zvaigzne ir pretējs Ampersends. 584 00:24:06,060 --> 00:24:09,710 Tātad dereferencing līdzekļiem iet uz turieni. 585 00:24:09,710 --> 00:24:14,280 Tātad, ja jūs piešķirat star-- I nav know-- 50, kas ir 586 00:24:14,280 --> 00:24:20,320 gatavojas izmēģināt, lai dotos uz adresi numurs 50 iekšpusē datora. 587 00:24:20,320 --> 00:24:22,840 Labi, un kāpēc mēs redzam ka tie viens otru? 588 00:24:22,840 --> 00:24:27,320 Tāpēc, ka tas, kas notiek, ja jūs darāt kaut kā zvaigzne Ampersends? 589 00:24:27,320 --> 00:24:28,470 590 00:24:28,470 --> 00:24:33,460 Nu, & zīme dod jums adresi ir mainīgs, adrese. 591 00:24:33,460 --> 00:24:35,830 Bet zvaigzne nozīmē iet uz turieni. 592 00:24:35,830 --> 00:24:38,930 >> Tātad, kas notiek, ja jums dodieties uz adresi? 593 00:24:38,930 --> 00:24:40,400 Jūs vienkārši nokļūt, vai ne? 594 00:24:40,400 --> 00:24:41,410 595 00:24:41,410 --> 00:24:43,600 Tā iet uz adresi ir tas pats, kas. 596 00:24:43,600 --> 00:24:47,580 Tieši tāpēc viņi parasti minēts same-- šo 597 00:24:47,580 --> 00:24:50,480 un tas ir minēts kā pretī uzņēmēji. 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 Tik foršs. 601 00:24:53,790 --> 00:24:57,240 >> Saskaņā ar kapuci, piemēram, ja mēs paziņojam int x ir vienāds ar 5, 602 00:24:57,240 --> 00:24:58,040 mums ir mainīgs. 603 00:24:58,040 --> 00:25:00,790 Un atcerieties, ka es teicu katrs variable-- un šī ir laba lieta 604 00:25:00,790 --> 00:25:03,820 paturēt mind-- tas ir divas dažādas lietas, kas saistītas ar. 605 00:25:03,820 --> 00:25:06,460 Tas ir adresēts un vērtību. 606 00:25:06,460 --> 00:25:07,140 OK? 607 00:25:07,140 --> 00:25:09,180 >> Tā vērtība, kas šajā gadījumā ir 5. 608 00:25:09,180 --> 00:25:12,140 Un adrese is-- teiksim, es esmu padarot kaut up-- tas ir 0x04. 609 00:25:12,140 --> 00:25:13,180 610 00:25:13,180 --> 00:25:17,200 Un vienīgais iemesls, kāpēc mēs parasti pārstāvēt adreses heksadecimālo 611 00:25:17,200 --> 00:25:19,770 ir viens, jo tas ir tāpat kā laba. 612 00:25:19,770 --> 00:25:21,600 Tas notiek arī ar bināro. 613 00:25:21,600 --> 00:25:23,500 Tas ir viegli konvertēt uz un no bināro. 614 00:25:23,500 --> 00:25:26,890 Un tas nav pārāk liels, ja Jums ir ļoti liels skaits. 615 00:25:26,890 --> 00:25:29,990 Tāpēc mēs vēlētos izmantot heksadecimālo tipogrāfijas adresēm. 616 00:25:29,990 --> 00:25:31,890 Bet es varētu pārstāvēt to kā veselam skaitlim. 617 00:25:31,890 --> 00:25:32,750 Tas ir jauki. 618 00:25:32,750 --> 00:25:35,450 >> Un tā tas ir adrese 4 un vērtību 5. 619 00:25:35,450 --> 00:25:38,080 Un tad es teicu int zvaigzne rādītājs. 620 00:25:38,080 --> 00:25:40,070 Tātad tas ir atšķirīgs veids, paziņojums. 621 00:25:40,070 --> 00:25:43,220 Int zvaigzne rādītājs ir vienāds adrese x. 622 00:25:43,220 --> 00:25:46,425 Tātad, kas būs vērtība PTR? 623 00:25:46,425 --> 00:25:47,710 624 00:25:47,710 --> 00:25:51,600 Tas būs adrese x, uz leju šeit. 625 00:25:51,600 --> 00:25:54,190 Labi, tā vērtība ir gatavojas būt tāds pats kā adresi. 626 00:25:54,190 --> 00:25:56,130 Tas ir uzdevums darboties es daru. 627 00:25:56,130 --> 00:25:59,380 Un tad PTR nāksies savu adresi, kas izrādās, 628 00:25:59,380 --> 00:26:02,050 Šajā gadījumā, 8, OK? 629 00:26:02,050 --> 00:26:03,850 630 00:26:03,850 --> 00:26:05,900 >> Un tad es varu izveidot jaunu skaitlim kopiju. 631 00:26:05,900 --> 00:26:08,790 Un es saku int kopija vienāds iet uz turieni. 632 00:26:08,790 --> 00:26:11,140 Lai iet uz to, kas PTR ir vērsta uz. 633 00:26:11,140 --> 00:26:13,940 Nu, ko tas PTR ir? 634 00:26:13,940 --> 00:26:14,740 PTR ir 0x04. 635 00:26:14,740 --> 00:26:16,060 636 00:26:16,060 --> 00:26:18,400 Kas notiek, ja es cenšos iet uz turieni? 637 00:26:18,400 --> 00:26:23,650 Es atradīs puisis, kurš ir adrese x un kurai ir adrese 4. 638 00:26:23,650 --> 00:26:25,970 Un kurš ir jārisina četri ir x. 639 00:26:25,970 --> 00:26:26,950 Vai tas ir jēga? 640 00:26:26,950 --> 00:26:28,295 641 00:26:28,295 --> 00:26:28,795 Jā? 642 00:26:28,795 --> 00:26:32,060 >> Students: Šajā gadījumā ir rādītājs kaudze? 643 00:26:32,060 --> 00:26:36,024 >> Binky: Šajā gadījumā, it's-- labs jautājums. 644 00:26:36,024 --> 00:26:38,690 Es īsti par to domāju Veicot šos adreses. 645 00:26:38,690 --> 00:26:42,570 Bet, ja tas ir, piemēram, visi tie ir vietējie mainīgie, 646 00:26:42,570 --> 00:26:46,372 Tad x gatavojas dzīvot in-- visu gatavojas dzīvot kaudze. 647 00:26:46,372 --> 00:26:48,330 Tātad viss notiek būt norādot kaudze. 648 00:26:48,330 --> 00:26:49,360 649 00:26:49,360 --> 00:26:52,700 Jūs tikai iegūt uz kaudzi kad tas sākat lietot malloc, vai ne? 650 00:26:52,700 --> 00:26:59,430 >> Tātad, ja jūs atceraties steks ir katru reizi jūs zvanu funkciju savā programmā, 651 00:26:59,430 --> 00:27:02,800 tāpat, galvenais piemēram, vai jebkurš citas funkcijas, piemēram, printf. 652 00:27:02,800 --> 00:27:06,334 Visi vietējie mainīgie ir gatavojas saņemt ielikt kaudze rāmī. 653 00:27:06,334 --> 00:27:08,500 Un viņi gatavojas saņemt tāpat sakrauti kaudze. 654 00:27:08,500 --> 00:27:09,930 Tas ir tas, ko sauc kaudze. 655 00:27:09,930 --> 00:27:12,200 Un visi šie vietējie mainīgie gribam būt tur. 656 00:27:12,200 --> 00:27:14,940 Un heap-- un mēs braucam runāt vairāk par šo later-- 657 00:27:14,940 --> 00:27:19,050 kaudze ir, ja visi dinamiski piešķirta atmiņas dzīvi. 658 00:27:19,050 --> 00:27:20,270 Forši? 659 00:27:20,270 --> 00:27:21,680 >> Mēs ejam uz šo slaidu. 660 00:27:21,680 --> 00:27:22,800 Jā? 661 00:27:22,800 --> 00:27:25,490 >> STUDENTU: Kāpēc nav int kopēt atgriežoties 0x04? 662 00:27:25,490 --> 00:27:27,870 663 00:27:27,870 --> 00:27:30,066 >> Binky: Kāpēc nav int kopēt atgriežoties 0x04? 664 00:27:30,066 --> 00:27:32,450 >> STUDENTU: Kāpēc nav, ka [dzirdams]? 665 00:27:32,450 --> 00:27:35,530 >> Binky: Tāpēc, ka to, kas ir vērtība, PTR? 666 00:27:35,530 --> 00:27:37,394 667 00:27:37,394 --> 00:27:38,370 >> STUDENTU: 0x04. 668 00:27:38,370 --> 00:27:38,960 >> Binky: 0x04. 669 00:27:38,960 --> 00:27:40,910 Kas notiek, ja jums iet uz 0x04? 670 00:27:40,910 --> 00:27:41,620 Ko jūs saņemsiet? 671 00:27:41,620 --> 00:27:42,371 >> STUDENTU: Ak, OK. 672 00:27:42,371 --> 00:27:42,995 Binky: Redzi? 673 00:27:42,995 --> 00:27:43,536 STUDENTU: Jā. 674 00:27:43,536 --> 00:27:44,890 Binky: Tātad jums 5. 675 00:27:44,890 --> 00:27:49,170 Tā kopija ir nāksies 5, ja tas ir jēga. 676 00:27:49,170 --> 00:27:49,809 Jā? 677 00:27:49,809 --> 00:27:52,803 >> STUDENTU: Vai mēs esam gotten 5 vērtības kastē [dzirdams] 678 00:27:52,803 --> 00:27:55,300 ja mēs int kopēt [nedzirdama]. 679 00:27:55,300 --> 00:27:56,710 >> Binky: Int-- mēs to darītu, jā. 680 00:27:56,710 --> 00:27:59,080 Tas būtu darījis diezgan daudz pats. 681 00:27:59,080 --> 00:28:02,080 Bet šādā veidā, mēs varam nodot adresēt funkcijām. 682 00:28:02,080 --> 00:28:05,050 Un tas ir cool lieta mēs esam gatavojas darīt tieši tagad. 683 00:28:05,050 --> 00:28:06,770 684 00:28:06,770 --> 00:28:13,090 >> Tātad šāda veida izmantošanas vienmēr nāk uz augšu on-- ļoti parasti nāk līdzi viktorīnas. 685 00:28:13,090 --> 00:28:15,870 Tātad, tas ir ļoti labi, lai mēģinātu darīt šāda veida lieta sevi. 686 00:28:15,870 --> 00:28:21,210 Tātad mēģiniet, lai sekotu kāda adreses ir un vēlas vērtības mainīgajiem 687 00:28:21,210 --> 00:28:22,620 ir katrā punktā. 688 00:28:22,620 --> 00:28:24,370 Tātad, tas ir tieši tas, ko mēs gatavojamies darīt. 689 00:28:24,370 --> 00:28:26,988 Šeit mums ir soļus, viens, divi, trīs, četri, pieci. 690 00:28:26,988 --> 00:28:30,530 Viens, divi, trīs, četri, pieci. 691 00:28:30,530 --> 00:28:33,330 Un mēs ejam, lai sekotu no vērtībām x un. 692 00:28:33,330 --> 00:28:34,650 693 00:28:34,650 --> 00:28:40,530 >> Tad ko tas dara, ja tas ir buggy kodu, mēs cenšamies to darīt līdz pieciem. 694 00:28:40,530 --> 00:28:43,610 Tāpēc mēs cenšamies iegūt mainīga un mainīt savu vērtību 5. 695 00:28:43,610 --> 00:28:44,630 696 00:28:44,630 --> 00:28:49,900 Un atcerieties manu analoģiju ar kaste un nododot lodziņu, lai kāds? 697 00:28:49,900 --> 00:28:51,515 Tātad galvenais ir šo lodziņu sauc x. 698 00:28:51,515 --> 00:28:52,570 699 00:28:52,570 --> 00:28:54,170 Un tas satur vērtību 3. 700 00:28:54,170 --> 00:28:55,230 701 00:28:55,230 --> 00:28:57,455 Un es cenšos nodot šo lodziņu, lai līdz pieciem. 702 00:28:57,455 --> 00:28:58,560 703 00:28:58,560 --> 00:29:01,510 >> Un es gribu, lai pieciem mainīt vērtība šo lodziņu, lai 5. 704 00:29:01,510 --> 00:29:03,080 705 00:29:03,080 --> 00:29:05,120 Un tad es vienkārši izdrukāt vērtību x. 706 00:29:05,120 --> 00:29:06,475 707 00:29:06,475 --> 00:29:08,850 Tas ir tas, ko mans function-- tas ir tas, ko es cenšos darīt. 708 00:29:08,850 --> 00:29:12,450 Es esmu tikai mēģina atjaunināt vērtība x 5. 709 00:29:12,450 --> 00:29:13,512 710 00:29:13,512 --> 00:29:14,970 Tas ir skaidrs, ko funkcija dara? 711 00:29:14,970 --> 00:29:16,210 712 00:29:16,210 --> 00:29:21,440 >> Labi, lai to, ko būs vērtības x un tieši šeit, 713 00:29:21,440 --> 00:29:27,734 pirmajā rindā, tieši pirms pirmā line-- es say-- programmas? 714 00:29:27,734 --> 00:29:28,940 >> STUDENTU: Iespējams atkritumu. 715 00:29:28,940 --> 00:29:30,023 >> Binky: Just atkritumu sīkumi. 716 00:29:30,023 --> 00:29:32,590 Tāpēc es vienkārši ielieciet N / A. Tā mēs īsti nezinām. 717 00:29:32,590 --> 00:29:37,400 Tāpat, nav pat pastāv vēl, jo mēs neesam aicināti pieci. 718 00:29:37,400 --> 00:29:38,980 Int nav deklarēta. 719 00:29:38,980 --> 00:29:40,030 720 00:29:40,030 --> 00:29:42,920 Un x gatavojas pastāvēt šeit, bet mums nav īsti 721 00:29:42,920 --> 00:29:45,370 piešķirts jebkuru vērtību, tāpēc, OK? 722 00:29:45,370 --> 00:29:46,570 723 00:29:46,570 --> 00:29:52,340 >> Un tad, kādi gribam būt vērtības x un A divām skaits? 724 00:29:52,340 --> 00:29:54,530 725 00:29:54,530 --> 00:29:55,410 >> STUDENTU: [dzirdams]. 726 00:29:55,410 --> 00:29:57,540 >> Binky: Tātad x būs 3. 727 00:29:57,540 --> 00:29:59,650 Tas ir viegli, jo mēs piešķirot 3, lai to. 728 00:29:59,650 --> 00:30:03,500 Un vēl neeksistē jo vienkārši dzīvo līdz pieciem. 729 00:30:03,500 --> 00:30:05,800 Tāpēc es esmu nāksies 3 un nekas. 730 00:30:05,800 --> 00:30:08,590 vai, piemēram, atkritumu, neatkarīgi, nav īsti definēts. 731 00:30:08,590 --> 00:30:11,640 732 00:30:11,640 --> 00:30:13,140 Un tagad, tas ir svarīgi līnija. 733 00:30:13,140 --> 00:30:14,931 Lūk, mēs ejam faktiski zvanīt līdz pieciem. 734 00:30:14,931 --> 00:30:17,140 735 00:30:17,140 --> 00:30:18,680 Un atceries, ko es teicu. 736 00:30:18,680 --> 00:30:20,240 Mēs nekad iet lodziņā. 737 00:30:20,240 --> 00:30:23,110 Mēs tikko kopēt vērtību kaste uz citu lodziņā. 738 00:30:23,110 --> 00:30:27,000 Tas viss ir datori, kopēt lietas no vienas vietas uz citu. 739 00:30:27,000 --> 00:30:33,550 >> Tātad līdz pieciem, kas tas patiesībā dara Vai tas kopijas vērtība x līdz. 740 00:30:33,550 --> 00:30:35,130 Tātad, kas būs šeit? 741 00:30:35,130 --> 00:30:36,210 Par x un vērtības. 742 00:30:36,210 --> 00:30:38,670 743 00:30:38,670 --> 00:30:43,360 3 un 3, mēs vienkārši kopēt tas pāri no x līdz. 744 00:30:43,360 --> 00:30:44,710 745 00:30:44,710 --> 00:30:45,320 Atdzist. 746 00:30:45,320 --> 00:30:46,140 >> Tagad mēs esam šeit. 747 00:30:46,140 --> 00:30:47,610 748 00:30:47,610 --> 00:30:49,430 Un tagad mēs ejam atjaunināt vienāds 5. 749 00:30:49,430 --> 00:30:50,900 750 00:30:50,900 --> 00:30:53,070 Kas notiks atbilstoši četriem? 751 00:30:53,070 --> 00:30:55,120 752 00:30:55,120 --> 00:30:56,010 >> STUDENTU: [dzirdams]. 753 00:30:56,010 --> 00:30:59,685 >> Binky: izpaužas atjaunina, bet x nesaņēma atjaunināts. 754 00:30:59,685 --> 00:31:02,050 755 00:31:02,050 --> 00:31:05,250 Jo x joprojām dzīvo galvenokārt, tas ir pilnīgi atšķirīgs bloks atmiņas. 756 00:31:05,250 --> 00:31:06,970 Tas ir atšķirīgs mainīgs. 757 00:31:06,970 --> 00:31:07,900 ir vēl viens mainīgais. 758 00:31:07,900 --> 00:31:10,000 Viņiem gadās būt pati vērtība, jo I 759 00:31:10,000 --> 00:31:13,980 pārkopēti vērtību x līdz. 760 00:31:13,980 --> 00:31:20,070 Bet tagad, kad man ir vienāds ar 5, to nav īsti ietekmēt x jebkādā veidā. 761 00:31:20,070 --> 00:31:21,450 Tas ir sarežģītāks daļa. 762 00:31:21,450 --> 00:31:23,380 Vai ir kāda jēga visiem? 763 00:31:23,380 --> 00:31:24,093 Jā? 764 00:31:24,093 --> 00:31:25,717 STUDENTU: Vēl viens jautājums, jums ir 3. 765 00:31:25,717 --> 00:31:27,741 Kāpēc already-- ak, nē, tas ir 3. 766 00:31:27,741 --> 00:31:28,490 Atvainojiet, nekad prātā. 767 00:31:28,490 --> 00:31:29,310 Es izlasīju 5. 768 00:31:29,310 --> 00:31:30,415 >> Binky: Jā, 3, 3. 769 00:31:30,415 --> 00:31:31,540 >> STUDENTU: [nedzirdama], jā. 770 00:31:31,540 --> 00:31:35,290 Binky: Un tad mēs piešķirt 5 līdz , bet nav īsti mainīt x. 771 00:31:35,290 --> 00:31:36,369 Labs? 772 00:31:36,369 --> 00:31:36,910 STUDENTU: Jā. 773 00:31:36,910 --> 00:31:37,410 Binky: Jā? 774 00:31:37,410 --> 00:31:42,330 Vai varat izskaidrot to, cik izpaužas kopēt [dzirdams]? 775 00:31:42,330 --> 00:31:48,480 >> Binky: Labi, tad, kad jūs zvanīt uz pieciem x, tāpēc šo līniju kodu šeit. 776 00:31:48,480 --> 00:31:50,100 777 00:31:50,100 --> 00:31:52,340 līdz pieciem no x, kas ir x? 778 00:31:52,340 --> 00:31:55,160 779 00:31:55,160 --> 00:31:58,340 x ir tikai 3 šajā brīdī, vai ne? 780 00:31:58,340 --> 00:32:03,320 Lai jūs varētu tikai iedomāties liekot 3 šeit un aizmirstot par x. 781 00:32:03,320 --> 00:32:04,410 Vienkārši ielieciet 3 šeit. 782 00:32:04,410 --> 00:32:10,880 Tāpat kā mēs ejam, lai kopētu vairāk vērtība x int a, kas ir tur augšā. 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 >> Tā vērtība x ir 3. 786 00:32:14,780 --> 00:32:17,680 Mēs ejam uz 3. kopēt pār. 787 00:32:17,680 --> 00:32:20,040 Un tas viss cits bloks atmiņa, tas citi vērtspapīri ar nefiksētu 788 00:32:20,040 --> 00:32:22,640 sauc būs 3, kā arī. 789 00:32:22,640 --> 00:32:23,580 Vai tas ir jēga? 790 00:32:23,580 --> 00:32:24,780 791 00:32:24,780 --> 00:32:25,794 Jā? 792 00:32:25,794 --> 00:32:31,008 >> STUDENTU: Ja jūs dotu pieci līdzīgi ir tā kā vesels skaitlis x, nevis, 793 00:32:31,008 --> 00:32:32,910 tas var noteikt visu? 794 00:32:32,910 --> 00:32:36,290 >> Binky: Ja tas ir integer-- nē, kas nav noteikt visu. 795 00:32:36,290 --> 00:32:37,590 Tā ka ir ļoti labs jautājums. 796 00:32:37,590 --> 00:32:40,480 Tas nav īsti jautājums, ko tu sauc tos faktorus. 797 00:32:40,480 --> 00:32:44,510 Atkal, tas būs jautājums par darbības jomu, tāpēc, ka viņi nav tas pats x. 798 00:32:44,510 --> 00:32:46,526 Viņi pilnībā dažādas telpas atmiņā. 799 00:32:46,526 --> 00:32:47,400 STUDENTU: [dzirdams]. 800 00:32:47,400 --> 00:32:49,020 Binky: Tātad tas nav īsti svarīgi, ko jūs viņiem piezvanīt. 801 00:32:49,020 --> 00:32:50,480 Tas nenozīmē, ka noteikt lietas, OK? 802 00:32:50,480 --> 00:32:53,390 803 00:32:53,390 --> 00:32:54,430 Vairāk jautājumu? 804 00:32:54,430 --> 00:32:55,762 Jā? 805 00:32:55,762 --> 00:32:58,498 >> STUDENTU: Kā tas ir atpakaļ skaitlis pieci [dzirdams]? 806 00:32:58,498 --> 00:32:59,661 807 00:32:59,661 --> 00:33:01,160 Binky: Labi, mēs neesam darījuši, ka vēl. 808 00:33:01,160 --> 00:33:03,432 Iesim uz numuru pieci, tad. 809 00:33:03,432 --> 00:33:04,650 >> STUDENTU: [dzirdams]? 810 00:33:04,650 --> 00:33:05,565 >> Binky: Kas? 811 00:33:05,565 --> 00:33:08,179 >> STUDENTU: Vai jums ir atgriezties vispār? 812 00:33:08,179 --> 00:33:09,970 Binky: Mums nav atgriešanos, nevis galvenais. 813 00:33:09,970 --> 00:33:12,940 Bet galvenie atgriež 0 automātiski ja jums nav atgriezties neko. 814 00:33:12,940 --> 00:33:14,400 815 00:33:14,400 --> 00:33:15,188 Jā? 816 00:33:15,188 --> 00:33:22,658 >> STUDENTU: Vai jūs veicat main-- vai jūs varētu darīt līdz pieciem atgriezties? 817 00:33:22,658 --> 00:33:24,170 818 00:33:24,170 --> 00:33:27,990 >> Binky: Mēs varētu būt līdz pieciem atgriezties, jā. 819 00:33:27,990 --> 00:33:32,527 Bet tad mums būtu jāpiešķir x vienāds atgriešanās vērtību līdz pieciem, 820 00:33:32,527 --> 00:33:34,360 kas būtu nedaudz atšķirīga programma. 821 00:33:34,360 --> 00:33:35,440 Tas strādā. 822 00:33:35,440 --> 00:33:38,730 Bet tas, ko mēs vēlamies darīt, ir tas, kas ir sauc kaut ko mainīt savā vietā. 823 00:33:38,730 --> 00:33:41,690 Tāpēc mēs vēlamies, lai faktiski mainīt šo lodziņu un nav jāuztraucas 824 00:33:41,690 --> 00:33:44,390 par ņemot, lai atgrieztos vērtībām vai neko. 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 >> Tas ir tāpat kā mijmaiņas funkciju David parādīja lekciju, izņemot es esmu 828 00:33:50,150 --> 00:33:51,740 tikai nodarbojas ar vienu mainīgo. 829 00:33:51,740 --> 00:33:55,960 Un viņš izmantoja divas, tāpēc int un b un Pēc tam pagaidu mainīgo un plauktiņš. 830 00:33:55,960 --> 00:33:57,020 OK? 831 00:33:57,020 --> 00:33:58,070 Tātad, kas ir pēdējais rindā? 832 00:33:58,070 --> 00:34:04,400 Pēc pieciem skaitļiem, tas ir vienkārši gatavojas doties prom. 833 00:34:04,400 --> 00:34:06,120 834 00:34:06,120 --> 00:34:10,179 Mums nebūs vairs, un tikai x vēl dzīvos. 835 00:34:10,179 --> 00:34:12,130 >> Un guess what? x nemainīja savu vērtību, 836 00:34:12,130 --> 00:34:15,520 galu galā, jo mēs esam tikai mainot vērtību. 837 00:34:15,520 --> 00:34:17,370 Tieši tāpēc x bija 3 visā. 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 Labi. 841 00:34:21,130 --> 00:34:23,560 Tātad šī programma nav sasniegt to, ko mēs vēlējāmies. 842 00:34:23,560 --> 00:34:24,760 Tagad pieņemsim salabot. 843 00:34:24,760 --> 00:34:27,440 >> Un noteikt programma ir, izmantojot norādes. 844 00:34:27,440 --> 00:34:32,300 Ko mēs darām, ir mums ir trīs līnijas, kas ir atšķirīgas. 845 00:34:32,300 --> 00:34:34,020 Pirmie ir, mēs esam ne iet x. 846 00:34:34,020 --> 00:34:35,535 Mēs iet adresi x. 847 00:34:35,535 --> 00:34:37,330 848 00:34:37,330 --> 00:34:40,876 Tā vietā kopēšanas vairāk vērtība no kastes, 849 00:34:40,876 --> 00:34:42,500 Es joprojām gatavojas kopēt pār kaut ko. 850 00:34:42,500 --> 00:34:45,380 Bet es esmu kopēšana pāri adrese kastē. 851 00:34:45,380 --> 00:34:48,780 >> Tātad, ja es iet adresi kaste, lai līdz pieciem, tad līdz pieciem 852 00:34:48,780 --> 00:34:51,560 varēs atrast, ka atmiņu un mainīt tās vērtību. 853 00:34:51,560 --> 00:34:53,980 854 00:34:53,980 --> 00:34:59,580 >> Tik un tad tur augšā, man ir ka nav int vairs. 855 00:34:59,580 --> 00:35:00,882 ir int zvaigzni. 856 00:35:00,882 --> 00:35:02,090 Tas ir rādītājs līdz veselam skaitlim. 857 00:35:02,090 --> 00:35:03,790 858 00:35:03,790 --> 00:35:07,310 Un tad, jo es esmu iet risināt šeit, un pēc tam, ko es daru 859 00:35:07,310 --> 00:35:10,530 nav vienāds ar 5, jo aizvadīs adresi. 860 00:35:10,530 --> 00:35:16,710 Tātad, ko es gribu darīt, ir iet uz turieni, un atjaunināt saturu šajā adresē 861 00:35:16,710 --> 00:35:18,305 ar 5. 862 00:35:18,305 --> 00:35:21,130 >> Labi, tāpēc iesim cauri visas līnijas, pa vienam. 863 00:35:21,130 --> 00:35:22,410 864 00:35:22,410 --> 00:35:26,024 Tātad, kad es sāku šeit, es joprojām ir n / a, N /, N / A 865 00:35:26,024 --> 00:35:28,440 par visu pirmais līnija, jo man nav īsti 866 00:35:28,440 --> 00:35:29,390 deklarēta sīkumi vēl. 867 00:35:29,390 --> 00:35:30,980 868 00:35:30,980 --> 00:35:35,110 Un tad līnija divas, man ir x ir vienāds ar 3. 869 00:35:35,110 --> 00:35:38,020 Int zvaigzne neeksistē, pats kā pirms tam. 870 00:35:38,020 --> 00:35:39,160 871 00:35:39,160 --> 00:35:40,640 >> Tagad tas kļūst interesanti. 872 00:35:40,640 --> 00:35:42,300 Tāpēc es esmu gatavojas iet. 873 00:35:42,300 --> 00:35:45,720 Un pieņemsim, ka adresē X ir 12 heksadecimālo. 874 00:35:45,720 --> 00:35:46,880 875 00:35:46,880 --> 00:35:48,420 Pieņemsim tikai pieņemt to. 876 00:35:48,420 --> 00:35:49,221 Es to uz augšu. 877 00:35:49,221 --> 00:35:51,680 878 00:35:51,680 --> 00:35:53,500 Tātad, ko es garām šeit ir līdz pieciem. 879 00:35:53,500 --> 00:35:54,460 Es esmu iet 12. 880 00:35:54,460 --> 00:35:56,390 881 00:35:56,390 --> 00:35:58,610 >> Tātad, kāda vērtība ir? 882 00:35:58,610 --> 00:36:04,785 883 00:36:04,785 --> 00:36:06,210 >> STUDENTU: [dzirdams]. 884 00:36:06,210 --> 00:36:06,950 >> Binky: Sorry? 885 00:36:06,950 --> 00:36:08,145 >> STUDENTU: [dzirdams]. 886 00:36:08,145 --> 00:36:10,520 Binky: Jā, piemēram, to pieņemsim Pieņemsim, ka mēs esam šeit, tagad. 887 00:36:10,520 --> 00:36:11,540 888 00:36:11,540 --> 00:36:12,040 Es esmu jautā. 889 00:36:12,040 --> 00:36:12,915 >> STUDENTU: [dzirdams]. 890 00:36:12,915 --> 00:36:13,590 891 00:36:13,590 --> 00:36:14,890 >> Binky: Tas ir uzsākta. 892 00:36:14,890 --> 00:36:15,860 >> STUDENTU: [dzirdams]. 893 00:36:15,860 --> 00:36:17,985 Binky: Tāpēc, ka mēs pagājis kaut funkcijai. 894 00:36:17,985 --> 00:36:19,431 895 00:36:19,431 --> 00:36:19,930 Jā? 896 00:36:19,930 --> 00:36:20,899 >> STUDENTU: adrese x. 897 00:36:20,899 --> 00:36:22,690 Binky: Tas būs ir adrese x. 898 00:36:22,690 --> 00:36:25,800 Un adrese x ir 12, labs. 899 00:36:25,800 --> 00:36:30,990 Tātad x būs 3, jo mēs neesam mainījušies x vēl. 900 00:36:30,990 --> 00:36:36,700 Un pēc tam būs 0x12, lai adrese x, jo tas ir 901 00:36:36,700 --> 00:36:38,840 ko mēs nodots līdz pieciem. 902 00:36:38,840 --> 00:36:40,940 >> Un tad, kas notiek ja mēs cenšamies iet uz turieni? 903 00:36:40,940 --> 00:36:42,145 Ko mēs atrast? 904 00:36:42,145 --> 00:36:47,120 Tātad, ja jūs mēģināt drukāt zvaigzne, Mēs ejam, lai sekotu šo adresi 905 00:36:47,120 --> 00:36:48,620 un iegūt vērtību iekšā. 906 00:36:48,620 --> 00:36:50,470 Un vērtība ir tikai pati vērtība, ka x 907 00:36:50,470 --> 00:36:53,980 ir tāpēc, ka tas ir adrese x, kas būs 3. 908 00:36:53,980 --> 00:36:55,440 909 00:36:55,440 --> 00:36:56,930 Mēs esam labs? 910 00:36:56,930 --> 00:36:59,990 >> OK, un tad tagad mēs faktiski iet tur. 911 00:36:59,990 --> 00:37:05,510 Un mēs atjaunināt neatkarīgi Tieši šajā adresē 12. 912 00:37:05,510 --> 00:37:07,390 Mēs panākot 5. 913 00:37:07,390 --> 00:37:10,560 Tāpēc tagad gan x un zvaigzne ir 5. 914 00:37:10,560 --> 00:37:13,170 915 00:37:13,170 --> 00:37:13,680 >> Kāpēc tā? 916 00:37:13,680 --> 00:37:17,070 Sakarā adrese X ir 12. 917 00:37:17,070 --> 00:37:20,920 Un ir arī 12, kā tās vērtību. 918 00:37:20,920 --> 00:37:23,780 Tātad, ja mēs sekojam 12, mēs esam tikai gatavojas, lai atrastu x. 919 00:37:23,780 --> 00:37:27,400 Tātad neatkarīgi mēs ar zvaigzne notiks 920 00:37:27,400 --> 00:37:30,790 x, jo satur adrese 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 >> Un tas ir kā mīkla no fiksēt. 925 00:37:37,750 --> 00:37:41,500 Tāpēc tagad mēs esam spējīgi, no līdz pieciem, faktiski 926 00:37:41,500 --> 00:37:43,840 piekļuves atmiņa, kas dzīvoja galvenais. 927 00:37:43,840 --> 00:37:47,980 Tāpēc šis atmiņu nedzīvo uz piecas, tāpat kā agrāk, šī adrese 12. 928 00:37:47,980 --> 00:37:50,980 Un mums bija iespēja iet uz turieni un mainīt tās vērtību 5. 929 00:37:50,980 --> 00:37:53,990 >> Un tad, kad mēs atgriežamies, mēs aizmirstam par. 930 00:37:53,990 --> 00:37:55,720 Mēs aizmirstam par zvaigžņu a. 931 00:37:55,720 --> 00:37:57,020 Un x ir vēl pieci. 932 00:37:57,020 --> 00:37:58,327 933 00:37:58,327 --> 00:38:00,160 Tātad, ja jūs vēlaties, lai īstenot mijmaiņas funkciju, 934 00:38:00,160 --> 00:38:05,010 jūs vienkārši darīt tieši to pašu, izņemot gadījumus, jums ir nepieciešams, lai int zvaigznes šeit 935 00:38:05,010 --> 00:38:06,140 un tā tālāk, un tā tālāk. 936 00:38:06,140 --> 00:38:06,976 OK? 937 00:38:06,976 --> 00:38:07,475 Mēs esam labs? 938 00:38:07,475 --> 00:38:09,860 939 00:38:09,860 --> 00:38:10,610 Atdzist. 940 00:38:10,610 --> 00:38:12,410 >> Tik Pointer aritmētika. 941 00:38:12,410 --> 00:38:13,960 Tas ir nedaudz grūts jautājums. 942 00:38:13,960 --> 00:38:16,554 Tātad izrādās, ka norādes ir tikai veseli skaitļi. 943 00:38:16,554 --> 00:38:17,970 Jūs varat domāt par to kā veseli skaitļi. 944 00:38:17,970 --> 00:38:21,080 Jo atmiņā, jums ir, piemēram atmiņas adrese nulle, viens, divi, trīs, 945 00:38:21,080 --> 00:38:21,900 četriem, pieciem. 946 00:38:21,900 --> 00:38:23,900 Tātad, mēs varam apkopot atmiņas adreses. 947 00:38:23,900 --> 00:38:27,230 >> Un tas parasti ir tas, ko jūs darāt, kad tu esi un masīvs, piemēram. 948 00:38:27,230 --> 00:38:30,540 Masīvs, tāpat kā blakus bloks atmiņas, ar daudz chars, 949 00:38:30,540 --> 00:38:31,840 piemēram, daudz Ints. 950 00:38:31,840 --> 00:38:34,420 Tātad, ja jūs vēlaties doties uz otrais int vai uz trešo int, 951 00:38:34,420 --> 00:38:37,830 Jūs varat vienkārši apkopot kaut ko pirmais adresi, un jūs gatavojas, lai saņemtu tur. 952 00:38:37,830 --> 00:38:39,620 Tātad, tas ir patiešām noderīga, kas. 953 00:38:39,620 --> 00:38:41,850 >> Un lieta, lai saglabātu prātā, lai gan, ir 954 00:38:41,850 --> 00:38:45,140 ka tas ir ne tikai, piemēram, normāli aritmētika tādā nozīmē 955 00:38:45,140 --> 00:38:50,304 ka, ja jums ir darīšana ar, teiksim, int zvaigzne, un jūs pievienojat 1 uz to, 956 00:38:50,304 --> 00:38:52,220 tad jūs nebrauksim pievienot 1 līdz adresei 957 00:38:52,220 --> 00:38:53,950 jūs gatavojas pievienot 4. uz adresi. 958 00:38:53,950 --> 00:38:55,030 959 00:38:55,030 --> 00:38:56,670 Jo int ir 4 baiti. 960 00:38:56,670 --> 00:38:57,720 961 00:38:57,720 --> 00:38:59,540 >> Tātad, tas ir tāpat kā iešana uz masīvu. 962 00:38:59,540 --> 00:39:05,260 Ja mums ir masīvs daudz Ints un tad mēs cenšamies iet uz otru, 963 00:39:05,260 --> 00:39:08,790 tas ir būtībā tikai summējot adrese pirmā plus 1. 964 00:39:08,790 --> 00:39:10,040 965 00:39:10,040 --> 00:39:13,425 Bet, kas būs ne tikai be-- teiksim ka adrese pirmā no tām ir 4. 966 00:39:13,425 --> 00:39:14,560 967 00:39:14,560 --> 00:39:16,250 Šeit, šajā gadījumā. 968 00:39:16,250 --> 00:39:19,780 969 00:39:19,780 --> 00:39:22,850 Un, ja mēs Rezumējot, tāpēc šis ir tas, kas notiek. 970 00:39:22,850 --> 00:39:23,530 Mums ir int. 971 00:39:23,530 --> 00:39:25,640 Int x ir vienāds ar 5. 972 00:39:25,640 --> 00:39:26,950 X ir vērtība 5. 973 00:39:26,950 --> 00:39:31,240 Un mēs sāktu šo rādītāju, int y int star y ir vienāds adresi x. 974 00:39:31,240 --> 00:39:33,660 >> Pieņemsim adrese x ir 4. 975 00:39:33,660 --> 00:39:36,960 Kas notiks tagad, ja es summa pievienot 1 līdz y? 976 00:39:36,960 --> 00:39:39,110 977 00:39:39,110 --> 00:39:44,790 Tas notiek, lai reāli summa 4 nevis tikai 1. 978 00:39:44,790 --> 00:39:50,920 Tāpēc es pievienot 1, bet tas faktiski piebilda 4, jo datora gudri. 979 00:39:50,920 --> 00:39:55,275 Tātad, tas notiek, lai faktiski papildināt ar i reizes izmērs no rādītāja veida. 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 >> Tātad, ja tas ir char, piemēram, ja tas būtu char zvaigzne y, 984 00:40:02,440 --> 00:40:07,141 un, ja mēs pievienot 1, tad tas būtu ir 5, jo char ir 1 baitu garš. 985 00:40:07,141 --> 00:40:07,640 Labs? 986 00:40:07,640 --> 00:40:10,560 987 00:40:10,560 --> 00:40:13,190 >> Un, visbeidzot, mēs saņēmām norādes un masīvi. 988 00:40:13,190 --> 00:40:16,451 Izrādās, ka katru reizi jūs nodarbojas ar masīvu, 989 00:40:16,451 --> 00:40:18,075 jūs faktiski nodarbojas ar rādītāju. 990 00:40:18,075 --> 00:40:19,720 991 00:40:19,720 --> 00:40:24,777 Ļoti jauki konceptuālais iemesls tas, ka masīvi ir ļoti liels. 992 00:40:24,777 --> 00:40:27,360 Tāpēc atcerieties, ka es teicu, ka katru reizi, kad jūs iet sīkumi apkārt, 993 00:40:27,360 --> 00:40:29,097 jums kopēt visu. 994 00:40:29,097 --> 00:40:31,180 Tātad, ja jums ir masīvs tas ir ļoti, ļoti liels, 995 00:40:31,180 --> 00:40:32,990 jums nav tiešām vēlaties kopēt visu, katru reizi 996 00:40:32,990 --> 00:40:35,710 jūs nodot to apkārt uz otru funkcija, jo tas ir tikai 997 00:40:35,710 --> 00:40:37,190 milzīgas summas no darba. 998 00:40:37,190 --> 00:40:39,710 Tātad, kas jums jādara, ir tikai pagātnes adrese pirmo baitu. 999 00:40:39,710 --> 00:40:40,969 1000 00:40:40,969 --> 00:40:44,010 Un tad funkcija būs pieejama visiem elementiem šajā masīvā. 1001 00:40:44,010 --> 00:40:48,670 Tātad jūs izturējis masīvs tās adresi, tā adrese pirmo baitu. 1002 00:40:48,670 --> 00:40:53,010 >> Tātad, ja mēs paziņojam int masīvs 3, šeit, mēs zinām 1003 00:40:53,010 --> 00:40:57,470 kā piekļūt uz pirmo elementu izmantojot stiprinājuma notācija. 1004 00:40:57,470 --> 00:41:02,410 Ja jūs atceraties kronšteinu apzīmējums, masīvs kronšteinu 0 ir vienāds ar 1. 1005 00:41:02,410 --> 00:41:06,330 Nu, tas būtu tieši tāds pats, kā tikai iet tur un nodot 1. 1006 00:41:06,330 --> 00:41:07,370 1007 00:41:07,370 --> 00:41:09,110 OK, ir tieši tas pats. 1008 00:41:09,110 --> 00:41:13,010 Tāpēc stiprinājuma notācija šeit būs tāds pats kā šīs līnijas. 1009 00:41:13,010 --> 00:41:18,600 >> Un uzmini kronšteinu notācija par masīva grupā 1. būs? 1010 00:41:18,600 --> 00:41:20,440 Tas būs tikai pats kā šī. 1011 00:41:20,440 --> 00:41:22,500 Tātad pievienot vienu masīvu. 1012 00:41:22,500 --> 00:41:24,370 Pārvietot vienu gar atmiņā. 1013 00:41:24,370 --> 00:41:26,310 Iet tur, un nodot 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 Un šī līnija ir tas pats. 1017 00:41:29,870 --> 00:41:34,860 Mēs vēlamies, lai dotos uz trešo kaste, tāpēc masīvs plus 2. 1018 00:41:34,860 --> 00:41:37,465 Iet tur, un nodot 3. 1019 00:41:37,465 --> 00:41:39,340 Tātad atmiņā, kas ir gatavojas notikt, ir, ka mēs esam 1020 00:41:39,340 --> 00:41:44,400 iet uz have 1, 2 un 3, kas trīs elementi šī masīvā. 1021 00:41:44,400 --> 00:41:46,970 >> Mēs būtu varējuši izdarīt to, izmantojot Mūsu pazīstami kronšteins notācija. 1022 00:41:46,970 --> 00:41:49,410 Es tikai vēlos, lai jūs guys zināt ka tie ir viens un tas pats. 1023 00:41:49,410 --> 00:41:50,530 1024 00:41:50,530 --> 00:41:53,010 Labi, jautājumi par šo? 1025 00:41:53,010 --> 00:41:56,115 1026 00:41:56,115 --> 00:41:56,615 Jauki. 1027 00:41:56,615 --> 00:41:57,990 1028 00:41:57,990 --> 00:41:59,880 Tagad, es esmu gatavojas nodot tas pār Hannah, 1029 00:41:59,880 --> 00:42:00,330 >> HANNAH: Yay, yee-nū. 1030 00:42:00,330 --> 00:42:02,246 >> Binky: Runājot par atmiņu un rakstu sīkumi. 1031 00:42:02,246 --> 00:42:06,554 [Aplausi] 1032 00:42:06,554 --> 00:42:10,150 >> HANNAH: Hi, atdzesē, tāpēc mēs esam gatavojas runāt mazliet vairāk 1033 00:42:10,150 --> 00:42:13,090 par atmiņu, kuru mēs tikko jārisina, izmantojot norādes. 1034 00:42:13,090 --> 00:42:16,060 Tātad ir divas galvenās daļas atmiņu, kas mēs esam saistīti ar. 1035 00:42:16,060 --> 00:42:18,830 Mums ir kaudze, kas aug up apakšā, un kaudzē, kas 1036 00:42:18,830 --> 00:42:20,600 iet uz leju no augšas. 1037 00:42:20,600 --> 00:42:24,690 Un kaudze gatavojas rīkot visas mūsu instances mainīgie. 1038 00:42:24,690 --> 00:42:28,860 Tātad katrs zvani funkcija izpaužas sava maza kadru uz skursteņa. 1039 00:42:28,860 --> 00:42:32,160 Lai Gabe minēts iepriekš, ja mēs zvanu funkciju atkal un atkal, 1040 00:42:32,160 --> 00:42:34,180 mēs ejam, lai kaudze lietas līdzi kaudze. 1041 00:42:34,180 --> 00:42:35,220 1042 00:42:35,220 --> 00:42:38,570 >> Un līdzīgi, kaudze, kas sākas augšā 1043 00:42:38,570 --> 00:42:42,660 notiek, lai noturētu visus no atmiņas ka mēs dinamiski piešķirt. 1044 00:42:42,660 --> 00:42:45,110 Un tā kā mēs dinamiski piešķirt atmiņu, 1045 00:42:45,110 --> 00:42:47,580 tas nāk uz leju, uz leju. 1046 00:42:47,580 --> 00:42:51,340 Pāris lietas, kas ir jāapzinās, kad mēs esam izmantojot kaudze un kaudze, 1047 00:42:51,340 --> 00:42:55,200 ar steku, ja mums ir pārāk many-- pieņemsim say-- rekursīvs zvanu, 1048 00:42:55,200 --> 00:42:58,392 un mēs esam aicinot funkciju atkal, un atkal, un atkal, un atkal, 1049 00:42:58,392 --> 00:43:00,350 un tas ir kraušanas up, kraušanas up, kraušanas up. 1050 00:43:00,350 --> 00:43:01,570 Un tas notiek, lai crash uz kaudzes. 1051 00:43:01,570 --> 00:43:03,040 Mēs ejam, lai palaistu no atmiņas. 1052 00:43:03,040 --> 00:43:05,100 Kas notiek, lai radītu problēma ar datoru. 1053 00:43:05,100 --> 00:43:06,770 Un ka sauc kaudze pārplūdes. 1054 00:43:06,770 --> 00:43:09,728 Tātad tas ir noteikti kaut tevi jāapzinās un mēģināt izvairīties. 1055 00:43:09,728 --> 00:43:10,228 1056 00:43:10,228 --> 00:43:14,050 Un kaudze, ir jāatceras, nav nejauši noplūdes atmiņu. 1057 00:43:14,050 --> 00:43:17,950 Jebkurā laikā jūs izmantojat malloc, nav aizmirst, lai atbrīvotu šo atmiņu. 1058 00:43:17,950 --> 00:43:20,040 Pretējā gadījumā tas būs tikai būt kaudze izšķērdēta, 1059 00:43:20,040 --> 00:43:23,230 un dators nevar zināt, ka tas ir bez maksas izmantot šo atmiņu. 1060 00:43:23,230 --> 00:43:25,810 Tātad tie ir pāris lietas jābūt ļoti uzmanīgiem ar kad 1061 00:43:25,810 --> 00:43:28,580 jums ir darīšana ar kaudze un kaudze. 1062 00:43:28,580 --> 00:43:30,412 Visus jautājumus ar šo? 1063 00:43:30,412 --> 00:43:31,304 Awesome. 1064 00:43:31,304 --> 00:43:31,900 >> Labi, atdzesē. 1065 00:43:31,900 --> 00:43:32,940 1066 00:43:32,940 --> 00:43:36,810 Tātad šāda veida ir tāda pati ideja kā kaudze pārplūdi, kur 1067 00:43:36,810 --> 00:43:39,850 mēs ejam tālāk robežas, kuras atmiņa 1068 00:43:39,850 --> 00:43:41,960 ir, mēs esam vajadzēja, lai varētu izmantot. 1069 00:43:41,960 --> 00:43:45,077 Tātad, ņem, piemēram, buferi, vai tu varētu tikai domāt par to kā masīva. 1070 00:43:45,077 --> 00:43:47,660 Un mēs teicām, Labi, mēs ejam, lai izveidot šo jauku maz masīvs. 1071 00:43:47,660 --> 00:43:49,140 Tas būs virkne. 1072 00:43:49,140 --> 00:43:50,630 Vai tas notiek, lai saglabātu rakstzīmes. 1073 00:43:50,630 --> 00:43:51,720 Un tas ir tikai gatavojas teikt sveiki. 1074 00:43:51,720 --> 00:43:52,678 Un tas ir nenoteikts. 1075 00:43:52,678 --> 00:43:53,990 Viss. 1076 00:43:53,990 --> 00:43:58,240 >> Bet, ja es būtu kāds ļauns un vēlējās darīt kaut ko sliktu ar šo masīvu, ko 1077 00:43:58,240 --> 00:44:02,310 Es varētu darīt, ir mēģināt rakstīt garām beigām virkni. 1078 00:44:02,310 --> 00:44:04,490 Un, kā jūs redzat, ja Es rakstīt pietiekami tālu, 1079 00:44:04,490 --> 00:44:06,980 Es patiesībā var ietekmēt atgriešanās adresi. 1080 00:44:06,980 --> 00:44:09,530 Un, ja es sāktu ietekmēt atgriešanās adrese, 1081 00:44:09,530 --> 00:44:11,730 Es ietekmē to, kā programma faktiski darbojas. 1082 00:44:11,730 --> 00:44:15,900 Un tā vietā atpakaļ, jums zinu, laimīgu virkni, piemēram, sveiki, es 1083 00:44:15,900 --> 00:44:19,460 varētu darīt kaut ko sliktu, piemēram, dodieties uz kaut kur citur savā datorā, joprojām 1084 00:44:19,460 --> 00:44:22,146 atmiņa, mainīt, ko es gribu darīt. 1085 00:44:22,146 --> 00:44:25,020 Tātad tas, ko tas varētu izskatīties ir, ja es tikko veida piepilda to uz augšu 1086 00:44:25,020 --> 00:44:27,400 ar izlases atkritumu vērtību, šajā gadījumā tieši. 1087 00:44:27,400 --> 00:44:30,490 Un tad, kad es tiešām nokļuvis atmiņas adresi, 1088 00:44:30,490 --> 00:44:33,740 Es sāku aizpildot to ar kaut ko ka darīja to, ko es gribēju to darīt. 1089 00:44:33,740 --> 00:44:34,952 1090 00:44:34,952 --> 00:44:36,410 Jebkuri jautājumi ar bufera pārpildes? 1091 00:44:36,410 --> 00:44:38,450 1092 00:44:38,450 --> 00:44:40,730 Awesome, kas peld pa labi caur šo stuff. 1093 00:44:40,730 --> 00:44:43,530 >> Labi, tāpēc mēs runājām daudz par rādītāju ar Gabe. 1094 00:44:43,530 --> 00:44:45,790 Kā mēs faktiski saņemt rādītāju? 1095 00:44:45,790 --> 00:44:48,070 Kā mēs varam iegūt adresi atmiņā? 1096 00:44:48,070 --> 00:44:51,040 Nu, mēs varam izmantot šo jauka funkcija zvans malloc, kas 1097 00:44:51,040 --> 00:44:53,370 ir gatavojas iegūt maz gabals atmiņas, 1098 00:44:53,370 --> 00:44:55,480 īpaši kaudze, kā mēs apspriedām, 1099 00:44:55,480 --> 00:44:59,780 un tas notiek, lai dotu jums atpakaļ rādītāju uz šo adresi atmiņā. 1100 00:44:59,780 --> 00:45:01,950 Un arguments, ka mēs ir dot malloc 1101 00:45:01,950 --> 00:45:04,280 ir, cik daudz vietas atmiņā mēs gribam. 1102 00:45:04,280 --> 00:45:06,100 >> Tātad jūs varat redzēt izmēru baitu. 1103 00:45:06,100 --> 00:45:08,670 Teiksim, piemēram, vai faktiski, šajā piemērā, 1104 00:45:08,670 --> 00:45:12,040 Mēs piešķirt pietiekami telpa 10 veselu skaitļu. 1105 00:45:12,040 --> 00:45:15,640 Tātad, iespējams, ko mēs esam gatavojas vēlaties likt šeit ir masīvs 10 veseli skaitļi. 1106 00:45:15,640 --> 00:45:19,641 Tāpēc mēs arī tā lielumu Ints, kurā Mēs uzzinājām, bija, cik daudz baitu? 1107 00:45:19,641 --> 00:45:20,140 STUDENTU: 4. 1108 00:45:20,140 --> 00:45:22,920 HANNAH: 4, skaista, un mēs gribu 10 no tiem pēc kārtas, 1109 00:45:22,920 --> 00:45:28,050 tāpēc, ka mums ir pietiekami daudz vietas, lai uzglabāt visus 10 veselos skaitļus, šajā gadījumā. 1110 00:45:28,050 --> 00:45:31,290 Kaut kas super svarīgs, jebkurā laikā jūs zvanu malloc, 1111 00:45:31,290 --> 00:45:32,880 Jums ir, lai pārbaudītu null. 1112 00:45:32,880 --> 00:45:37,310 Ja jums nav pārbaudīt null, labi, malloc, ja tas sākas no kosmosa 1113 00:45:37,310 --> 00:45:40,400 un vairs nevar sniegt jums jebkādu vairāk atmiņas, tas atgriezīsies null. 1114 00:45:40,400 --> 00:45:42,060 1115 00:45:42,060 --> 00:45:45,630 Tātad, ja jums nav pārbaudīt, malloc var atgriezties null. 1116 00:45:45,630 --> 00:45:51,265 Un tad, ja mēs cenšamies dereference null rādītājs, 1117 00:45:51,265 --> 00:45:54,960 mēs spēsim iegūt segmentāciju vaina, kurā mēs runājam par tieši tagad. 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 >> Labi, jautājumi ar malloc? 1121 00:45:58,300 --> 00:46:00,044 1122 00:46:00,044 --> 00:46:00,544 Jā? 1123 00:46:00,544 --> 00:46:05,460 >> STUDENTU: Vai pārbaudes null [Dzirdams] nedariet to viktorīnu? 1124 00:46:05,460 --> 00:46:08,100 >> HANNAH: Protams, jautājums bija tas matter-- uz viktorīnu, 1125 00:46:08,100 --> 00:46:10,420 jūs saņemsiet punktus off, ja Jums nav pārbaudīt null? 1126 00:46:10,420 --> 00:46:12,794 Jā, jūs saņemsiet punktus off ja jums nav pārbaudīt null. 1127 00:46:12,794 --> 00:46:16,030 Jebkurā laikā jūs aicinu malloc, gan viktorīna un jūsu psets un reālajā dzīvē, 1128 00:46:16,030 --> 00:46:17,155 Jums ir, lai pārbaudītu null. 1129 00:46:17,155 --> 00:46:18,330 Labs jautājums. 1130 00:46:18,330 --> 00:46:19,689 >> Gabe: Ko darīt, ja man nav brīvu? 1131 00:46:19,689 --> 00:46:21,730 HANNAH: Gabe vēlas zināt Ko darīt, ja mums nav bezmaksas. 1132 00:46:21,730 --> 00:46:25,030 Tad mums būs atmiņas noplūde mūsu kaudzē. 1133 00:46:25,030 --> 00:46:26,140 Jebkādi citi jautājumi? 1134 00:46:26,140 --> 00:46:27,550 Jā? 1135 00:46:27,550 --> 00:46:30,120 >> STUDENTU: Vai you-- iet pāri bufera pārpildes nekustamo ātri atkal? 1136 00:46:30,120 --> 00:46:30,530 >> HANNAH: Protams. 1137 00:46:30,530 --> 00:46:33,071 Jautājums bija, mēs varam iet pa bufera pārpildes tiešām ātri. 1138 00:46:33,071 --> 00:46:35,050 Ejam atpakaļ uz šiem slaidiem. 1139 00:46:35,050 --> 00:46:37,430 Tātad buferis, jūs varat vienkārši domā par to kā masīvu, labi? 1140 00:46:37,430 --> 00:46:39,360 Jums ir dažas vietas atmiņā. 1141 00:46:39,360 --> 00:46:43,580 Un, kad mēs pirmo reizi veidot mūsu masīvs, mēs zinām, bloki ir noteikts izmērs, 1142 00:46:43,580 --> 00:46:45,470 vai mūsu buferis ir fiksēts lielums. 1143 00:46:45,470 --> 00:46:51,360 >> Tātad pieņemsim, ka šajā gadījumā mums ir vienkārši pietiekami daudz vietas, lai rakstītu virkni sveiki. 1144 00:46:51,360 --> 00:46:57,340 Ja mēs ejam garām, ka saistoša, ja mēs ejam garām ko mūsu masīvs mēs teicām, ka varētu būt, 1145 00:46:57,340 --> 00:46:59,780 mēs patiešām varētu sākt rakstiski atmiņā 1146 00:46:59,780 --> 00:47:01,780 ka dators nav vēlas, lai mēs rakstīt par. 1147 00:47:01,780 --> 00:47:02,810 1148 00:47:02,810 --> 00:47:05,580 Un jo īpaši, ja mēs hit kaut kā atgriešanās 1149 00:47:05,580 --> 00:47:08,700 adrese, funkcijas, kas, tāpat kā jebkurš cits gabals atmiņas, 1150 00:47:08,700 --> 00:47:11,420 ir tikai kaut kur jūsu dators, jūs faktiski var 1151 00:47:11,420 --> 00:47:14,080 mainīt šo un sākt darīt ļaunu. 1152 00:47:14,080 --> 00:47:15,272 Atbildētu uz jūsu jautājumu? 1153 00:47:15,272 --> 00:47:16,230 Awesome, kaut kas cits? 1154 00:47:16,230 --> 00:47:17,466 Jā? 1155 00:47:17,466 --> 00:47:21,948 >> STUDENTU: Tātad kaudze [dzirdams], varat teica aiziet no apakšas iet uz augšu. 1156 00:47:21,948 --> 00:47:25,434 Robežās kaudze diapazonā, vai atmiņa aiziet no, piemēram, 1157 00:47:25,434 --> 00:47:27,230 augšu uz leju, kas attiecas uz katra starpbrīža? 1158 00:47:27,230 --> 00:47:28,646 1159 00:47:28,646 --> 00:47:32,100 >> HANNAH: Kā you-- piekāpjas Rob par šo vienu. 1160 00:47:32,100 --> 00:47:35,370 1161 00:47:35,370 --> 00:47:38,213 >> ROB: Tas būs augt pats virziens kā kaudze aug. 1162 00:47:38,213 --> 00:47:38,712 HANNAH: OK. 1163 00:47:38,712 --> 00:47:40,967 ROB: Tātad man apmulst. 1164 00:47:40,967 --> 00:47:42,331 Šis būs abstrakcijas. 1165 00:47:42,331 --> 00:47:42,831 HANNAH: OK. 1166 00:47:42,831 --> 00:47:44,000 ROB: Tas ir pareizi. 1167 00:47:44,000 --> 00:47:49,420 Tātad, ja kaudze aug augšu, tad generally-- to 1168 00:47:49,420 --> 00:47:52,380 nav jābūt kā šis. bet jūs varat paziņot int x. 1169 00:47:52,380 --> 00:47:54,120 Tad jums paziņot, int y. 1170 00:47:54,120 --> 00:47:57,300 Tad int x kopumā būs zemāks par skursteņa nekā int y. 1171 00:47:57,300 --> 00:47:59,300 Bet tas ir tikai fakts. 1172 00:47:59,300 --> 00:48:02,410 Tas nav kā svarīgu sēklu lieta. 1173 00:48:02,410 --> 00:48:06,800 >> ROB: Tātad jautājums atkal bija tikai kas notiek, katrs kadrs uzkrājas. 1174 00:48:06,800 --> 00:48:08,960 Tātad katra funkcija izpaužas maz gabals kaudze. 1175 00:48:08,960 --> 00:48:13,030 Un kā jums iet uz augšu, ievērojot, ka maz gabals, šajā rāmī, 1176 00:48:13,030 --> 00:48:16,710 mēs sakām, ka mainīgie šajā rāmī arī virzīties uz augšu. 1177 00:48:16,710 --> 00:48:17,473 Jautājums? 1178 00:48:17,473 --> 00:48:18,688 >> ROB: Tikai, lai būtu uz mic. 1179 00:48:18,688 --> 00:48:19,396 HANNAH: Ak, jā. 1180 00:48:19,396 --> 00:48:20,440 ROB: Es runāju uz jums. 1181 00:48:20,440 --> 00:48:21,410 HANNAH: Ak, jā, OK. 1182 00:48:21,410 --> 00:48:24,150 ROB: Izņēmums ir par masīvu un statņi, 1183 00:48:24,150 --> 00:48:27,470 kur bloki, zemāks indekss masīvā, 1184 00:48:27,470 --> 00:48:29,930 un statņi pie augstāka lauks ar structs 1185 00:48:29,930 --> 00:48:35,040 tiek garantēta zemākā adreses nekā vēlāk vērtību masīvā. 1186 00:48:35,040 --> 00:48:36,720 Tātad tie ir garantēta. 1187 00:48:36,720 --> 00:48:40,310 Bet kādas īpašas mainīgie ietvaros, piemēram, int x un int y ietvaros funkciju, 1188 00:48:40,310 --> 00:48:43,030 tur nav nepieciešama saistība starp to adresēm. 1189 00:48:43,030 --> 00:48:44,882 1190 00:48:44,882 --> 00:48:46,340 HANNAH: Vēl viens nekā šeit jautājums? 1191 00:48:46,340 --> 00:48:51,620 STUDENTU: Tātad buferī plūsma, tikai bufera pārpildes 1192 00:48:51,620 --> 00:48:54,980 tikai tad notika, kad jūs ir, piemēram, piešķir 1193 00:48:54,980 --> 00:49:01,056 summa masīva ka tad ir lielāka? 1194 00:49:01,056 --> 00:49:03,230 Tāpat kā, jūs varat? 1195 00:49:03,230 --> 00:49:05,435 Tātad, ja jūs esat lūdzot kaut kas no user-- 1196 00:49:05,435 --> 00:49:06,018 >> HANNAH: Mm-hm. 1197 00:49:06,018 --> 00:49:08,600 STUDENTU: Vai viņi piespiedu kārtā sniegt jums kaut ko atpakaļ 1198 00:49:08,600 --> 00:49:11,777 kas ir lielāks, nekā kāds Jūs esat piešķirti par viņiem? 1199 00:49:11,777 --> 00:49:13,610 HANNAH: Protams, tāpēc Jautājums bija pamatā, 1200 00:49:13,610 --> 00:49:16,217 var lietotājs sniegt jums vairāk, nekā jūs lūgt? 1201 00:49:16,217 --> 00:49:16,800 STUDENTU: Jā. 1202 00:49:16,800 --> 00:49:18,480 HANNAH: Nu, jūs varētu novērst lietotājs no darot to. 1203 00:49:18,480 --> 00:49:21,350 Tu varētu konkrēti pateikt nav iedodiet man vairāk nekā x skaitu pa baitu 1204 00:49:21,350 --> 00:49:24,330 Esmu tikai devis jums telpa x skaitu baitu, x rakstzīmju skaitu. 1205 00:49:24,330 --> 00:49:25,700 Tātad, tas ir kaut kas jūs vēlaties, lai novērstu. 1206 00:49:25,700 --> 00:49:26,199 Jā? 1207 00:49:26,199 --> 00:49:30,270 Kāda ir atšķirība starp kaudze pārplūdes un bufera pārpildes? 1208 00:49:30,270 --> 00:49:32,140 >> HANNAH: Labi, tāpēc kaudze overflow-- ak, kādi 1209 00:49:32,140 --> 00:49:34,790 ir starpība starp skursteni pārplūdes un bufera pārpildes? 1210 00:49:34,790 --> 00:49:37,581 Tāpēc mēs vēlamies domāt par kaudze pārplūdes notiek, kad mēs esam patiesībā 1211 00:49:37,581 --> 00:49:39,530 kraušanas šos funkciju zvani. 1212 00:49:39,530 --> 00:49:42,991 Pieņemsim, ka jums ir rekursīvo funkciju, jo mēs zinām, ka katru reizi, kad 1213 00:49:42,991 --> 00:49:45,240 zvanu funkciju, tas izpaužas savu rāmi uz skursteņa. 1214 00:49:45,240 --> 00:49:47,950 >> Tātad mēs kaudze pārāk augsts, un tad sākam pārplūst. 1215 00:49:47,950 --> 00:49:50,530 Un mēs izmantot pārāk daudz atmiņas, un mums nav nekur pa kreisi. 1216 00:49:50,530 --> 00:49:51,590 Mēs saņemam šo kļūdu. 1217 00:49:51,590 --> 00:49:53,930 >> Bufera pārpildes ir programmas ietvaros. 1218 00:49:53,930 --> 00:49:57,180 Mēs vēlamies, lai, iespējams, ne vienmēr ir darbināt no atmiņas tādā pašā veidā, 1219 00:49:57,180 --> 00:50:00,080 ka mēs varētu, ja mēs esam kraušanas up tik daudz funkciju zvani, 1220 00:50:00,080 --> 00:50:04,540 bet mēs rakstīt pagātnes atmiņu ka mēs zinām, mēs varam izmantot. 1221 00:50:04,540 --> 00:50:06,170 Un tas ļauj mums darīt ļaunu. 1222 00:50:06,170 --> 00:50:08,060 1223 00:50:08,060 --> 00:50:08,560 Yeah? 1224 00:50:08,560 --> 00:50:10,950 >> ROB: Jā, jūs varētu vēlēties lai tikai atkārtot to, 1225 00:50:10,950 --> 00:50:12,699 bet jūs varat arī domāju skursteņus pārplūdi 1226 00:50:12,699 --> 00:50:15,374 kā, piemēram, īpaša veida bufera pārpildes. 1227 00:50:15,374 --> 00:50:17,665 Vai tu tikai domā par savu kaudze kā ļoti liels buferis. 1228 00:50:17,665 --> 00:50:20,724 Tad, kad jūs pārpilda jūs kaudze, tas ir veids kā bufera pārpildes. 1229 00:50:20,724 --> 00:50:23,390 Bet kaudze pārplūdes ir tikai izmanto īpašu terminu, kad kaudze 1230 00:50:23,390 --> 00:50:24,310 pati pārplūst. 1231 00:50:24,310 --> 00:50:27,500 >> HANNAH: Tiesības, tāpēc, lai atkārtot uz video, 1232 00:50:27,500 --> 00:50:31,756 tā jūs varat iedomāties kaudze pārplūdes kā īpaša veida bufera pārpildes. 1233 00:50:31,756 --> 00:50:33,040 Forši? 1234 00:50:33,040 --> 00:50:34,562 Kādi jautājumi, pirms mēs ejam tālāk? 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 >> Labi, atdzesē, tāpēc parunāsim par dažas kopīgas kļūdu ziņojumus. 1239 00:50:39,727 --> 00:50:42,060 Tas ir kaut kas ir parādīts līdzi vairākiem viktorīnas, 1240 00:50:42,060 --> 00:50:44,740 lai kaut kas ir tā vērts ņemot otru apskatīt. 1241 00:50:44,740 --> 00:50:46,860 Es esmu pārliecināts, ka jūs esat saskārušās vismaz daži no šiem 1242 00:50:46,860 --> 00:50:48,690 kā jūs darāt jūsu problēma komplekti. 1243 00:50:48,690 --> 00:50:50,980 Tātad, pārliecinieties, ka jūs varat runāt par tiem uz viktorīnas. 1244 00:50:50,980 --> 00:50:52,990 >> Tātad, pirmais ir segmentēšana vaina. 1245 00:50:52,990 --> 00:50:55,250 Un tas ir jebkurā laikā mēs mēģināt piekļūt atmiņas 1246 00:50:55,250 --> 00:50:57,130 ka mēs esam nav atļauts piekļūt. 1247 00:50:57,130 --> 00:51:00,280 Tātad jums migh ir redzējuši šo, piemēram, starplaikos. 1248 00:51:00,280 --> 00:51:03,390 Ja atklāt sadursmes atgriezties null, un tad jūs 1249 00:51:03,390 --> 00:51:05,500 mēģināja kaut ko darīt ar šo Null vērtību, 1250 00:51:05,500 --> 00:51:08,147 dators dotu Jūs segmentēšana vaina. 1251 00:51:08,147 --> 00:51:10,730 Tik viens, svarīga lieta darīt, lai mēģinātu izvairīties no šī 1252 00:51:10,730 --> 00:51:12,000 ir vienmēr pārbaudīt null. 1253 00:51:12,000 --> 00:51:13,300 1254 00:51:13,300 --> 00:51:16,180 >> Jums varētu būt arī redzējis netiešs deklarācija funkciju. 1255 00:51:16,180 --> 00:51:18,370 Tātad, tas ir tas, kas notiek kad Allison parādīja tevi 1256 00:51:18,370 --> 00:51:20,150 kā mēs prototipu, labi? 1257 00:51:20,150 --> 00:51:23,440 Tātad pieņemsim, ka mums ir daži funkcija, kas mēs definējam. 1258 00:51:23,440 --> 00:51:24,440 Teiksim kubu. 1259 00:51:24,440 --> 00:51:27,120 Un kas iet apakšā mūsu funkcijas, saskaņā ar galveno. 1260 00:51:27,120 --> 00:51:35,205 >> Ja mēs aizmirstam pateikt datoru par kubs, kad galvenais mēģina zvanīt kubu, 1261 00:51:35,205 --> 00:51:36,830 dators būs, piemēram, ak mans Dievs. 1262 00:51:36,830 --> 00:51:38,300 Man nav ne jausmas, ko tas nozīmē. 1263 00:51:38,300 --> 00:51:39,760 Es nezinu, ko darīt, šeit. 1264 00:51:39,760 --> 00:51:41,594 Tātad prototips saka neuztraucieties. 1265 00:51:41,594 --> 00:51:42,510 Es esmu dodas uz jums. 1266 00:51:42,510 --> 00:51:43,132 >> Tas būs nāk. 1267 00:51:43,132 --> 00:51:43,840 Nelietojiet kliegt uz mani. 1268 00:51:43,840 --> 00:51:46,697 Nedod man netieši deklarācija funkciju. 1269 00:51:46,697 --> 00:51:49,280 Tātad, ja jums šo kļūdu, viena lieta, jūs gatavojas vēlaties darīt 1270 00:51:49,280 --> 00:51:50,821 ir pārliecināties, jums ir jūsu prototipu. 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 >> Un pēdējais, bet ne mazāk svarīgi, nedeklarētu identifikators 1274 00:51:55,680 --> 00:52:00,570 būtībā, ja jūs mēģināt izmantot mainīgais, ka jums nav deklarētas. 1275 00:52:00,570 --> 00:52:03,449 Lai visi pēkšņi sākat nesakām kā n plus plus. 1276 00:52:03,449 --> 00:52:04,740 Un dators saka to, kas ir n? 1277 00:52:04,740 --> 00:52:06,660 Tu nekad man teica n bija lieta. 1278 00:52:06,660 --> 00:52:10,930 >> Tātad viena lieta, jums ir pārliecināties, jums darīja ir pateikt datoram, ko n ir. 1279 00:52:10,930 --> 00:52:13,320 Tā, piemēram, n var būt vesels skaitlis. 1280 00:52:13,320 --> 00:52:14,999 Un tad jums būs izvairīties no šo kļūdu. 1281 00:52:14,999 --> 00:52:16,290 Visus jautājumus par kopīgām kļūdas? 1282 00:52:16,290 --> 00:52:17,260 Jā? 1283 00:52:17,260 --> 00:52:19,344 >> STUDENTU: Par netieši deklarācija funkciju, 1284 00:52:19,344 --> 00:52:22,343 tas arī varētu būt, ka jūs izlaist vienu no bibliotēkas jums bija paredzēts 1285 00:52:22,343 --> 00:52:24,400 lai iekļautu, nevis prototips? 1286 00:52:24,400 --> 00:52:26,359 >> HANNAH: Pareizi, tāpēc jautājums bija, vai jūs varētu 1287 00:52:26,359 --> 00:52:28,650 arī saņemt šo kļūdu, ja jums aizmirsa: bibliotēka. 1288 00:52:28,650 --> 00:52:29,085 >> STUDENTU: Jā. 1289 00:52:29,085 --> 00:52:30,876 >> HANNAH: Pilnīgi jo tādā pašā veidā 1290 00:52:30,876 --> 00:52:33,540 ka mēs vēlamies, lai mūsu prototipus pirms galvenā funkcija, 1291 00:52:33,540 --> 00:52:37,717 ja mums ir bibliotēka, tie dodas būtībā ietver prototipus, 1292 00:52:37,717 --> 00:52:39,425 ietver definīcijas no funkcijām. 1293 00:52:39,425 --> 00:52:40,585 Liels jautājums. 1294 00:52:40,585 --> 00:52:43,230 >> STUDENTU: Par segmentāciju vaina, tas, ka arī 1295 00:52:43,230 --> 00:52:47,350 notiktu, ja mēs, piemēram, mēģināja piekļūt mainīgo, 1296 00:52:47,350 --> 00:52:51,947 tāpat, kas atšķiras [nedzirdama] nekā tas tika deklarēts? 1297 00:52:51,947 --> 00:52:54,030 HANNAH: Protams, lai būtu mēs saņemt segmentāciju vaina 1298 00:52:54,030 --> 00:52:56,270 ja mēs mēģinājis piekļūt mainīgais ārpus darbības jomas? 1299 00:52:56,270 --> 00:52:57,104 Bija tas, ka jautājums? 1300 00:52:57,104 --> 00:52:57,645 STUDENTU: Jā. 1301 00:52:57,645 --> 00:52:58,430 HANNAH: Beautiful. 1302 00:52:58,430 --> 00:53:01,840 Tātad, iespējams, jūs gatavojas saņemt nedeklarētu identifikators kļūda vietā. 1303 00:53:01,840 --> 00:53:04,006 Tātad tas ir tikai gatavojas teikt Es nezinu, kas tas ir. 1304 00:53:04,006 --> 00:53:04,920 1305 00:53:04,920 --> 00:53:05,920 Forši, kaut kas cits? 1306 00:53:05,920 --> 00:53:07,744 1307 00:53:07,744 --> 00:53:08,980 Jā, labi, skaisti. 1308 00:53:08,980 --> 00:53:10,330 1309 00:53:10,330 --> 00:53:12,400 >> Visi righty, tāpēc rekursijas. 1310 00:53:12,400 --> 00:53:15,160 Tāpēc es teicu pāris reizes lai mēs varētu saņemt kaudze pārplūdes 1311 00:53:15,160 --> 00:53:17,919 tāpēc, ka mēs aicinām mūsu rekursīvs funkciju tik daudzas reizes. 1312 00:53:17,919 --> 00:53:20,210 Mēs esam iegūt visus šos kaudze rāmji, blah, blah, blah. 1313 00:53:20,210 --> 00:53:22,420 Kas vēl ir rekursīvs funkcija? 1314 00:53:22,420 --> 00:53:25,680 Nu, rekursīva funkcija ir kāda funkcija, kas sevi dēvē. 1315 00:53:25,680 --> 00:53:26,820 1316 00:53:26,820 --> 00:53:30,160 >> Dažas lietas, kas ir jāapzinās, ja jūs īsteno rekursīvā funkcija, 1317 00:53:30,160 --> 00:53:31,940 neaizmirstiet iekļaut bāzes lietu. 1318 00:53:31,940 --> 00:53:34,010 Gadījumu, ir brīdis, kad mēs galu. 1319 00:53:34,010 --> 00:53:38,740 Tātad, piemēram, ja mēs kodēšana, , Teiksim, Fibonači rekursīvi, 1320 00:53:38,740 --> 00:53:43,210 mēs vēlamies, lai pārliecinātos, ka tad, kad mēs līdz 0 vai pirmais Fibonači skaitļi, 1321 00:53:43,210 --> 00:53:46,220 šie divi skaitļi ir šīs lietas, tāpēc, ka tie nav atkarīgi 1322 00:53:46,220 --> 00:53:47,700 par lietām, kas bija pirms tam. 1323 00:53:47,700 --> 00:53:48,990 Tiem ir savas vērtības. 1324 00:53:48,990 --> 00:53:51,270 1325 00:53:51,270 --> 00:53:55,320 >> Daži plusi uz recursion, kas ir jautājums, mēs esam redzējuši uz pagātnes viktorīnas. 1326 00:53:55,320 --> 00:53:57,930 Tie var izraisīt vairāk kodolīgs, elegants kods. 1327 00:53:57,930 --> 00:54:00,510 Un daudz funkciju, dažādu algoritmu daudz, 1328 00:54:00,510 --> 00:54:02,350 faktiski aizdot sevi recursion. 1329 00:54:02,350 --> 00:54:05,510 Viņu definīcija varētu būt rekursīvs un pats par sevi. 1330 00:54:05,510 --> 00:54:06,980 Tātad Fibonači ir viens. 1331 00:54:06,980 --> 00:54:07,860 Faktoriāls ir viens. 1332 00:54:07,860 --> 00:54:10,480 Apvienot kārtošanas ir one-- visu lietas, ko varat apskatīt. 1333 00:54:10,480 --> 00:54:12,650 1334 00:54:12,650 --> 00:54:13,460 Labi, kādi jautājumi? 1335 00:54:13,460 --> 00:54:13,960 Jā? 1336 00:54:13,960 --> 00:54:15,644 1337 00:54:15,644 --> 00:54:19,612 >> STUDENTU: Vai stūra gadījums līdzīgi bāzes lietu? 1338 00:54:19,612 --> 00:54:22,590 Vai ir tā, ka daži citi veida [dzirdams]? 1339 00:54:22,590 --> 00:54:25,170 >> HANNAH: Protams, tāpēc stūra lieta ir tik any-- 1340 00:54:25,170 --> 00:54:27,580 ir stūra gadījums tāds pats kā bāzes scenārija? 1341 00:54:27,580 --> 00:54:32,825 Stūra lieta ir kaut kas jūsu kods varētu uzvesties nedaudz savādāk. 1342 00:54:32,825 --> 00:54:34,450 1343 00:54:34,450 --> 00:54:38,610 Bāze lieta ir sava veida līdzīgi, jo ka viņi, piemēram, atsevišķos gadījumos 1344 00:54:38,610 --> 00:54:40,240 ka jūs vēlaties apskatīt. 1345 00:54:40,240 --> 00:54:43,240 Bet ideja par bāzes lietas ir tas, ka Jūs vēlaties, lai jūsu rekursīvā funkcija 1346 00:54:43,240 --> 00:54:44,870 apstāties kādā brīdī. 1347 00:54:44,870 --> 00:54:46,490 To nevar turēt zvanot sevi uz visiem laikiem. 1348 00:54:46,490 --> 00:54:47,781 Tas nepieciešams, lai apturētu kādā brīdī. 1349 00:54:47,781 --> 00:54:49,340 1350 00:54:49,340 --> 00:54:53,460 >> Rob: Jā, bieži, jūsu bāzes gadījumi varētu būt piemēri stūra bāzēm. 1351 00:54:53,460 --> 00:54:55,876 >> HANNAH: Pa labi, forši, kaut ko? 1352 00:54:55,876 --> 00:54:58,732 >> STUDENTU: Vai jūs varētu paskaidrot balsta mazliet vairāk? 1353 00:54:58,732 --> 00:55:01,600 Man nav īsti saprotams [Dzirdams] bāzes gadījumi. 1354 00:55:01,600 --> 00:55:02,676 >> HANNAH: No bāzes gadījumos? 1355 00:55:02,676 --> 00:55:03,140 >> STUDENTU: bāzes lietas, jā. 1356 00:55:03,140 --> 00:55:03,770 >> HANNAH: Ak jā, protams. 1357 00:55:03,770 --> 00:55:04,270 Paskatīsimies. 1358 00:55:04,270 --> 00:55:05,480 Vai mēs esam krīta nekā šeit? 1359 00:55:05,480 --> 00:55:06,690 1360 00:55:06,690 --> 00:55:07,320 Jā, mēs darām. 1361 00:55:07,320 --> 00:55:09,530 Labi, tāpēc ļoti ātri, es ņemšu mēģināt rakstīt pietiekami lielas 1362 00:55:09,530 --> 00:55:11,320 lai jūs varētu redzēt uz ekrāna. 1363 00:55:11,320 --> 00:55:13,490 Parunāsim par, patiešām ātri, Fibonači. 1364 00:55:13,490 --> 00:55:15,550 Tāpēc es došu jums Fibonači secība. 1365 00:55:15,550 --> 00:55:17,090 Jūs varat meklēt definīciju. 1366 00:55:17,090 --> 00:55:26,050 >> Būtībā, katrs numurs secībā ir no diviem iepriekšējiem skaitļu summa. 1367 00:55:26,050 --> 00:55:29,720 Labi, tāpēc, ka es tikko aprakstīju Fibonacci, 1368 00:55:29,720 --> 00:55:31,530 jūs varētu dzirdēt rekursijas, labi? 1369 00:55:31,530 --> 00:55:35,280 Kad es teicu, katrs numurs ir summa no diviem iepriekšējiem skaitļiem, 1370 00:55:35,280 --> 00:55:36,420 mēs varētu teikt OK. 1371 00:55:36,420 --> 00:55:38,570 Nu, n Fibonači number-- tāpēc pieņemsim 1372 00:55:38,570 --> 00:55:42,260 saka, ka mums ir šī funkcija sauc fib-- melot n 1373 00:55:42,260 --> 00:55:48,260 būs vienāds ar melot no n mīnus 1 plus-- žēl, 1374 00:55:48,260 --> 00:55:51,240 mēs došanās uz nākamo rindiņu vairāk here-- melot n mīnus 2. 1375 00:55:51,240 --> 00:55:52,790 1376 00:55:52,790 --> 00:55:56,790 >> Labi, tā tas darbojas lieliski, ja jūs esat Aplūkojot, piemēram, nulle, viens, 1377 00:55:56,790 --> 00:55:59,410 divi, trīs, četri, Piektais Fibonači skaitļi, 1378 00:55:59,410 --> 00:56:03,561 kur jūs varat teikt, ka 5 ir vienāds ar 2 plus 3. 1379 00:56:03,561 --> 00:56:05,060 Bet ja tu esi sākumā? 1380 00:56:05,060 --> 00:56:07,184 Ko darīt, ja jūs vienkārši hitting šie pirmie divi vērtības? 1381 00:56:07,184 --> 00:56:08,470 1382 00:56:08,470 --> 00:56:11,330 >> Lai iegūtu šo 1, jūs nevarat saka pievienot iepriekšējiem diviem, 1383 00:56:11,330 --> 00:56:13,930 tāpēc, ka nulles and-- es nezinu. 1384 00:56:13,930 --> 00:56:15,390 Tāpēc kādā brīdī, mums ir nepieciešams, lai apturētu. 1385 00:56:15,390 --> 00:56:21,250 Kādā brīdī, mums ir nepieciešams teikt, ka šie divi vienkārši ir savas definīcijas. 1386 00:56:21,250 --> 00:56:23,890 0 Fibonači skaitļi ir 0. 1387 00:56:23,890 --> 00:56:26,115 Un pirmais Fibonači skaitļi ir 1. 1388 00:56:26,115 --> 00:56:34,120 >> Tāpēc veids, kā es varētu kods, es teiktu, ja n ir mazāks par diviem, 1389 00:56:34,120 --> 00:56:35,130 tad vienkārši atgriezties n. 1390 00:56:35,130 --> 00:56:36,494 Un tas būtu mans bāze gadījums. 1391 00:56:36,494 --> 00:56:38,660 Tas ir, kā es zinu, lai apturētu ar rekursīvo funkciju. 1392 00:56:38,660 --> 00:56:40,640 1393 00:56:40,640 --> 00:56:41,410 Vai tas skaidrs? 1394 00:56:41,410 --> 00:56:41,940 Awesome. 1395 00:56:41,940 --> 00:56:43,260 Kaut kas cits par recursion? 1396 00:56:43,260 --> 00:56:44,890 1397 00:56:44,890 --> 00:56:45,930 Skaisti. 1398 00:56:45,930 --> 00:56:48,750 >> Let 's ātri runāt meklēt un kārtot palaist reizes. 1399 00:56:48,750 --> 00:56:52,660 Un tad es dos Davin daži laiks, lai runātu par kodēšanu piemērus. 1400 00:56:52,660 --> 00:56:56,490 Tātad, šeit ir galvenais meklēšanas un veidu, ka jums vajadzētu zināt. 1401 00:56:56,490 --> 00:56:59,500 Guarantee-- Es nevaru garantēt, jo es neesmu redzējis quiz-- 1402 00:56:59,500 --> 00:57:01,940 bet tas nāk uz augšu viktorīnā Pēc viktorīnas pēc atmest. 1403 00:57:01,940 --> 00:57:04,050 Tāpēc noteikti izmantojiet šo tabulu. 1404 00:57:04,050 --> 00:57:05,682 Tāpat, izmantot šo diagrammu. 1405 00:57:05,682 --> 00:57:06,890 Ielieciet to uz jūsu apkrāptu lapas. 1406 00:57:06,890 --> 00:57:07,931 Jūs būsiet laimīgs cilvēks. 1407 00:57:07,931 --> 00:57:09,010 1408 00:57:09,010 --> 00:57:12,590 >> Tas stāsta mums palaist reizes katras Šo kārtošanas un meklēšanas algoritmiem. 1409 00:57:12,590 --> 00:57:14,020 1410 00:57:14,020 --> 00:57:18,850 Tātad lineārā meklēšanu, jūs varat redzēt, palaist laiku, un pats ar bināro meklēšanu. 1411 00:57:18,850 --> 00:57:21,490 Iet pa kādiem šiem algoritmiem do, vispārēju priekšstatu. 1412 00:57:21,490 --> 00:57:24,220 Paskaties kaut pseudocode, ja ne kodēt sevi. 1413 00:57:24,220 --> 00:57:25,610 1414 00:57:25,610 --> 00:57:30,380 >> Jūs redzēsiet, ka burbulis ir sava augšējā saistoši sliktākajā gadījumā n brusas. 1415 00:57:30,380 --> 00:57:31,490 1416 00:57:31,490 --> 00:57:34,680 Tātad, ja mūsu masīvs bija pilnīgi atpakaļ pirms mēs vēlējāmies, lai sakārtotu to, 1417 00:57:34,680 --> 00:57:37,090 mēs teiktu, ka tas ir gatavojas veikt n rūtiņām soļus. 1418 00:57:37,090 --> 00:57:38,160 1419 00:57:38,160 --> 00:57:41,730 Bet labākajā gadījumā, tāpēc pazemināts par labākajā gadījumā 1420 00:57:41,730 --> 00:57:44,300 būs, ja tas ir jau perfekti sakārtots. 1421 00:57:44,300 --> 00:57:46,671 Tad viss, kas mums jādara, ir pārbaudiet, vai tas ir sakārtoti. 1422 00:57:46,671 --> 00:57:47,921 Vai ir jautājums nekā šeit? 1423 00:57:47,921 --> 00:57:49,805 >> STUDENTU: Kad būtu vēlaties izmantot sava? 1424 00:57:49,805 --> 00:57:50,747 Kārtošanas. 1425 00:57:50,747 --> 00:57:52,160 Es esmu tikai ziņkārīgs. 1426 00:57:52,160 --> 00:57:53,510 >> HANNAH: Kad Jūs vēlaties izmantot atlases veida? 1427 00:57:53,510 --> 00:57:54,010 Tas viens? 1428 00:57:54,010 --> 00:57:55,705 Viens, ka ir n brusas abos gadījumos? 1429 00:57:55,705 --> 00:57:56,860 >> STUDENTU: [dzirdams]. 1430 00:57:56,860 --> 00:57:58,151 >> HANNAH: Tātad, tas ir ļoti atšķirīgs. 1431 00:57:58,151 --> 00:58:00,760 Ja jums ir īpaša prasības attiecībā uz savu programmu, 1432 00:58:00,760 --> 00:58:04,887 piemēram, lietām, piemēram, ja mēs tikko teica īstenot search-- sorry-- 1433 00:58:04,887 --> 00:58:06,720 īstenot veida, jūs iespējams, vēlaties doties 1434 00:58:06,720 --> 00:58:09,950 par vienu no tiem, kas ir labākajā gadījumā n, 1435 00:58:09,950 --> 00:58:12,410 vai zemākā robeža labākajā gadījumā n. 1436 00:58:12,410 --> 00:58:14,790 Bet tur varētu būt dažas lietas, piemēram, teiksim, 1437 00:58:14,790 --> 00:58:16,767 mijmaiņas līgumi ir patiešām dārgi kāda iemesla dēļ. 1438 00:58:16,767 --> 00:58:18,850 Tad jūs vēlaties darīt burbulis kārtot, jo jums 1439 00:58:18,850 --> 00:58:20,641 ir jādara tik daudz mijmaiņas līgumi, lietas, piemēram, ka. 1440 00:58:20,641 --> 00:58:21,710 1441 00:58:21,710 --> 00:58:23,098 Jebkurš other-- jā? 1442 00:58:23,098 --> 00:58:25,488 >> STUDENTU: Vai tas būtu [dzirdams] teikt, ka [dzirdams]? 1443 00:58:25,488 --> 00:58:30,077 1444 00:58:30,077 --> 00:58:31,910 HANNAH: Tas ir viena lieta kas pateiks 1445 00:58:31,910 --> 00:58:33,670 ja jūs meklējat pie īstenošanai. 1446 00:58:33,670 --> 00:58:35,850 Kā es tiešām domāju par to, kāpēc tas ir n 1447 00:58:35,850 --> 00:58:40,840 brusas ir tas, ka mums jāskrien caur mūsu masīva garumu n, 1448 00:58:40,840 --> 00:58:42,765 katru reizi padarot lielākajā daļā, n mijmaiņas darījumiem. 1449 00:58:42,765 --> 00:58:43,980 1450 00:58:43,980 --> 00:58:46,220 Un mums ir jādara šo procesu n reizes. 1451 00:58:46,220 --> 00:58:51,130 >> Tātad, ja jums ir, lai ne vairāk, n mijmaiņas darījumiem un n iet cauri masīva, 1452 00:58:51,130 --> 00:58:52,380 tur būs n brusas. 1453 00:58:52,380 --> 00:58:55,480 Bet jā, tas tiks atklāts caur šo divtik cilpas, 1454 00:58:55,480 --> 00:58:59,428 kā jautājums asked-- vai ligzdot cilpas, es teiktu. 1455 00:58:59,428 --> 00:59:00,890 OK? 1456 00:59:00,890 --> 00:59:03,375 >> Un tad apvienot kārtot, kas ir ātrākais kārtošanas mums tagad, 1457 00:59:03,375 --> 00:59:07,560 vai arī, ka mēs esam uz in CS50, zinu, ka galvenais algoritms 1458 00:59:07,560 --> 00:59:10,150 šī ideja ielauzties šķirotas gabali, un pēc tam 1459 00:59:10,150 --> 00:59:11,980 apvienojot kopā šos sakārtoti bitiem. 1460 00:59:11,980 --> 00:59:14,170 Un saņems mūs log n log n. 1461 00:59:14,170 --> 00:59:17,110 Visus jautājumus par meklējumiem un veidu pirms es dot? 1462 00:59:17,110 --> 00:59:19,840 1463 00:59:19,840 --> 00:59:21,040 Paskatīsimies. 1464 00:59:21,040 --> 00:59:21,800 >> Ak, kas saistīts sarakstus. 1465 00:59:21,800 --> 00:59:23,210 Atvainojiet, man ir vēl viena tēma. 1466 00:59:23,210 --> 00:59:25,000 Labi, awesome, saistīts sarakstus. 1467 00:59:25,000 --> 00:59:27,900 Problēma ar masīvu, tie ir noteikta izmēra. 1468 00:59:27,900 --> 00:59:30,634 Tātad, ja jūs nezināt, cik liels jūsu ieguldījums būs, 1469 00:59:30,634 --> 00:59:32,050 Jūs nevēlaties, lai izveidotu masīva. 1470 00:59:32,050 --> 00:59:34,080 Jo, ja mēs radām masīvs, kas ir pārāk mazs, 1471 00:59:34,080 --> 00:59:35,930 mēs varētu uzskriet bufera pārpildes. 1472 00:59:35,930 --> 00:59:38,890 >> Tā vietā, mēs varētu darīt kaut ko ar saistītiem sarakstiem, kas 1473 00:59:38,890 --> 00:59:44,280 ļauj mums būt dinamiski izmēra datu struktūra 1474 00:59:44,280 --> 00:59:48,970 kas ļaus mums uzglabāt elastīgāku datu daudzums. 1475 00:59:48,970 --> 00:59:54,030 Tātad katrā mezglu mūsu saistīta sarakstu, mums ir divi gabali. 1476 00:59:54,030 --> 00:59:56,820 Mums ir faktisko vērtību, ka tas saglabā. 1477 00:59:56,820 --> 00:59:59,530 Tātad tas ir tikai lieta, jūs varētu redzēt masīva, for example. 1478 00:59:59,530 --> 01:00:04,600 Un tad mēs arī sekot līdzi rādītāju uz nākamo lieta atmiņā. 1479 01:00:04,600 --> 01:00:06,430 >> Atšķirībā bloki, kas mēs zinām, visi dodas 1480 01:00:06,430 --> 01:00:10,890 lai be-- masīva elementiem visi esam viens pēc otra memory-- saistīta 1481 01:00:10,890 --> 01:00:13,300 saraksti varētu būt jebkur atmiņā. 1482 01:00:13,300 --> 01:00:14,590 Viņi patvaļīgi vietās. 1483 01:00:14,590 --> 01:00:16,410 Tātad, ja mēs tiešām iet tos atrastu, mēs 1484 01:00:16,410 --> 01:00:19,770 nepieciešams, lai sekotu Nākamā lieta, mūsu sarakstā. 1485 01:00:19,770 --> 01:00:22,840 >> Un pēc tam, lai zina, kur šis saraksts, jo viss ir, 1486 01:00:22,840 --> 01:00:26,276 viss, kas mums ir, lai sekotu ir Pats pirmais elements mūsu saistīts sarakstā. 1487 01:00:26,276 --> 01:00:27,900 Un kas būs mums ļauj sekot caur. 1488 01:00:27,900 --> 01:00:31,020 1489 01:00:31,020 --> 01:00:33,070 >> Tātad, tas ir, kā jūs varētu definēt režīmā. 1490 01:00:33,070 --> 01:00:36,160 Šī ir lieliska iespēja izmantot statņi. 1491 01:00:36,160 --> 01:00:39,660 Tāpēc, ka jums ir šī ideja, labi, par attiecīgo mezglu, man ir divi gabali. 1492 01:00:39,660 --> 01:00:41,770 Man ir faktiskā vērtība pati. 1493 01:00:41,770 --> 01:00:45,610 Un tad man ir rādītāju uz Nākamais elements saistīts sarakstā. 1494 01:00:45,610 --> 01:00:49,150 Tātad jūs redzat, mums ir vesels skaitlis n, kas būs faktiskā vērtība, 1495 01:00:49,150 --> 01:00:53,150 un pēc tam rādītāju līdz mezglu, ko sauc par nākamo. 1496 01:00:53,150 --> 01:00:56,431 Tāpēc, ka ir būs nākamais elements mūsu saistīts sarakstā. 1497 01:00:56,431 --> 01:00:56,972 STUDENTU: Jā? 1498 01:00:56,972 --> 01:01:01,920 Vai jums ir jānorāda, ka zvaigzne ir kā struktūrai? 1499 01:01:01,920 --> 01:01:05,620 >> HANNAH: Jā, tāpēc, ka šis ir gandrīz kā sava veida, 1500 01:01:05,620 --> 01:01:07,980 šķiet, piemēram rekursīvo definīcija, ka mēs 1501 01:01:07,980 --> 01:01:12,080 nepieciešams zināt, kas mezgls ir iekšā, lai atrastu mezglu. 1502 01:01:12,080 --> 01:01:14,450 Tā kā tas nav reāli zināt, kas mezgls ir pilnīgi 1503 01:01:14,450 --> 01:01:17,283 kamēr mēs nokļūt līdz beigām this-- un pēc tam mēs varam tikai to saucam 1504 01:01:17,283 --> 01:01:21,935 node-- iekšpusē šo definīciju, mums ir nepieciešams, lai izsauktu to struct mezglā. 1505 01:01:21,935 --> 01:01:22,560 Liels jautājums. 1506 01:01:22,560 --> 01:01:23,580 1507 01:01:23,580 --> 01:01:25,214 Kaut kas cits? 1508 01:01:25,214 --> 01:01:26,198 Jā? 1509 01:01:26,198 --> 01:01:29,150 >> STUDENTU: Kāpēc mēs jāsaka mezglu divreiz? 1510 01:01:29,150 --> 01:01:33,578 Jo, kad mēs bijām [dzirdams] mēs tikko bija to darīt semikolu, 1511 01:01:33,578 --> 01:01:37,352 bet tagad mums ir jāatrod, ka struct mezglā? [Nedzirdama]. 1512 01:01:37,352 --> 01:01:39,060 HANNAH: Tāpēc es uzskatu, ka pēdējā piemēram, 1513 01:01:39,060 --> 01:01:42,110 mēs bijām tikai radot jebkurā laikā vēlējās izmantot students pēc tam, jūs 1514 01:01:42,110 --> 01:01:46,430 nācās izmantot struct node-- Es esmu sorry-- struct students. 1515 01:01:46,430 --> 01:01:51,575 Tas ļāva mums, pēc fakta, tikai izmantošana mezglu pievienot jaunu veidu, būtībā. 1516 01:01:51,575 --> 01:01:53,324 1517 01:01:53,324 --> 01:01:53,990 Ka jēga? 1518 01:01:53,990 --> 01:01:54,984 1519 01:01:54,984 --> 01:01:57,150 Tātad mēs ir jāiet atpakaļ un apskatīt kodu pirms. 1520 01:01:57,150 --> 01:01:59,025 Bet es domāju, ka mēs neizmantoja typedef. 1521 01:01:59,025 --> 01:02:02,050 Un mēs uzdeva jautājumu, kāpēc mums ir nepieciešams, lai izmantotu typedef? 1522 01:02:02,050 --> 01:02:05,540 Typedef ļauj izvairīties vārdu struct sākumā. 1523 01:02:05,540 --> 01:02:06,221 Jā? 1524 01:02:06,221 --> 01:02:08,095 STUDENTU: Kāda veida jautājumi būtu jānāk klajā 1525 01:02:08,095 --> 01:02:10,400 izteiksmē ziņā mezglu un saistīti saraksti? 1526 01:02:10,400 --> 01:02:15,110 >> HANNAH: Tātad viena lieta ir, mēs varētu pateikt, cik jūs varētu meklēt, izmantojot saistītu sarakstu? 1527 01:02:15,110 --> 01:02:16,930 OK, jo tas ir nedaudz sarežģītāks 1528 01:02:16,930 --> 01:02:18,520 nekā tad, ja mēs esam meklēšanu izmantojot masīvu. 1529 01:02:18,520 --> 01:02:21,472 Mēs varam tikai apskatīt elements nulles, elements viens, elements divi, 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 Ja mēs gribam, lai meklētu caur saistīta sarakstā 1533 01:02:24,420 --> 01:02:27,229 mēs gribētu tiešām ir jāievēro tas maz labirints norādes. 1534 01:02:27,229 --> 01:02:29,270 Tāpēc pieņemsim faktiski iet caur šo tiešām ātri. 1535 01:02:29,270 --> 01:02:30,460 1536 01:02:30,460 --> 01:02:32,860 Ko mēs varētu darīt, pasūtīt kuri paredzēti, teiksim mēs 1537 01:02:32,860 --> 01:02:35,430 gribu tikai atkārtot, izmantojot Mūsu pilnībā saistīts saraksts. 1538 01:02:35,430 --> 01:02:37,450 Mēs varētu sākt pie galvas. 1539 01:02:37,450 --> 01:02:39,890 Un pēc tam, lai pārvietot uz nākamo elementu, 1540 01:02:39,890 --> 01:02:43,680 nevis tikai palielināšanai par vienu piemēram, mēs varētu dodas cauri masīva, 1541 01:02:43,680 --> 01:02:45,720 mēs patiešām gatavojas sekot nākamo rādītāju, 1542 01:02:45,720 --> 01:02:48,360 lai mēs varētu atrast, kur atmiņa nākamais elements ir. 1543 01:02:48,360 --> 01:02:49,357 1544 01:02:49,357 --> 01:02:51,690 Tāpēc es zinu, tas nav pietiekami, lai ņemt to visu tieši tagad, 1545 01:02:51,690 --> 01:02:52,650 bet jums ir šīs slaidi. 1546 01:02:52,650 --> 01:02:54,730 Tātad, jūs varat iet cauri tas nedaudz lēnāk. 1547 01:02:54,730 --> 01:02:56,890 Bet būtībā tas, ko mēs gribam darīt, ir sekot šiem norādes 1548 01:02:56,890 --> 01:02:58,550 caur kopumā no saistītā sarakstā. 1549 01:02:58,550 --> 01:03:00,258 Tātad tas ir jautājums jums var pajautāt. 1550 01:03:00,258 --> 01:03:01,920 1551 01:03:01,920 --> 01:03:03,980 >> Kaut ko pamanīt ar ievietošanas, teiksim 1552 01:03:03,980 --> 01:03:07,925 mēs vēlējāmies, lai izveidotu jaunu elementu priekšā mūsu saistīts saraksts. 1553 01:03:07,925 --> 01:03:10,800 Mums ir jābūt ļoti uzmanīgiem par kārtību, kādā mēs 1554 01:03:10,800 --> 01:03:12,760 no jauna uz norādes. 1555 01:03:12,760 --> 01:03:15,230 Jo teiksim es tikko teicu OK. 1556 01:03:15,230 --> 01:03:18,930 Veikt galvas norāda uz šo jauno elementu. 1557 01:03:18,930 --> 01:03:23,550 Tikai padara to norāda uz 1 Tad mēs esam būtībā zaudēja pārējo mūsu sarakstā, 1558 01:03:23,550 --> 01:03:25,860 jo es neatceros, kur 2 dzīvi. 1559 01:03:25,860 --> 01:03:27,730 >> Tātad mums ir jādara, ļoti īpašu rīkojumu. 1560 01:03:27,730 --> 01:03:31,500 Pirmkārt, mēs jauno elements norāda uz galvas. 1561 01:03:31,500 --> 01:03:33,970 Un tad mēs galvu norāda uz jaunu elementu. 1562 01:03:33,970 --> 01:03:38,455 Tātad, pieņemsim redzēt, ko tas izskatās ar arrows-- tieši tāpat. 1563 01:03:38,455 --> 01:03:42,080 Tātad vispirms ir jaunais elements norāda uz veco galvu. 1564 01:03:42,080 --> 01:03:45,990 Un tagad mums ir galvu norāda uz jaunu pirmo elementu. 1565 01:03:45,990 --> 01:03:47,187 Visus jautājumus ar šo? 1566 01:03:47,187 --> 01:03:49,870 1567 01:03:49,870 --> 01:03:54,350 >> Labi, šeit ir daži kodu vēlreiz, kaut apskatīt mazliet vēlāk. 1568 01:03:54,350 --> 01:03:58,630 Un tagad es savukārt to pa Davin par GDB un mazliet prakses 1569 01:03:58,630 --> 01:03:59,480 kodēšanas uz papīra. 1570 01:03:59,480 --> 01:04:00,597 1571 01:04:00,597 --> 01:04:01,096 Skaisti. 1572 01:04:01,096 --> 01:04:01,810 >> ROB: Un Rob. 1573 01:04:01,810 --> 01:04:02,360 >> HANNAH: Ak, Davin un Rob. 1574 01:04:02,360 --> 01:04:03,055 Es atvainojos. 1575 01:04:03,055 --> 01:04:03,596 >> STUDENTU: Woo! 1576 01:04:03,596 --> 01:04:08,140 1577 01:04:08,140 --> 01:04:09,110 >> ROB: Paldies. 1578 01:04:09,110 --> 01:04:11,209 >> Davin: Vai jūs vēlaties teikt viss nekustamo ātri? 1579 01:04:11,209 --> 01:04:11,875 ROB: Jā, jā. 1580 01:04:11,875 --> 01:04:12,845 Davin: Kad es esmu uz augšu. 1581 01:04:12,845 --> 01:04:16,240 1582 01:04:16,240 --> 01:04:19,520 Labi, bet Robs tikmēr liek mikrofons, lai to, kas GDB? 1583 01:04:19,520 --> 01:04:23,945 Ikvienam vajadzētu būt redzējis GDB in klases un arī darba laika. 1584 01:04:23,945 --> 01:04:25,070 Un jums vajadzētu būt, izmantojot to. 1585 01:04:25,070 --> 01:04:25,750 Tātad, kas ir GDB? 1586 01:04:25,750 --> 01:04:28,030 1587 01:04:28,030 --> 01:04:28,850 Kāds? 1588 01:04:28,850 --> 01:04:29,540 >> STUDENTU: Tas ir atkļūdotājs. 1589 01:04:29,540 --> 01:04:30,250 >> Davin: Tas ir atkļūdotājs. 1590 01:04:30,250 --> 01:04:31,624 Un ko tas ļauj jums darīt? 1591 01:04:31,624 --> 01:04:33,064 Tāpat kā, kāpēc mums patīk GDB? 1592 01:04:33,064 --> 01:04:34,480 STUDENTU: Lai palēninātu programmu. 1593 01:04:34,480 --> 01:04:36,740 Davin: Pa labi, lai jūs varētu staigāt caur to patīk cilvēka tempu. 1594 01:04:36,740 --> 01:04:38,490 Un tā, kādi ir daži komandas jūs varat darīt? 1595 01:04:38,490 --> 01:04:40,407 Nu, pārtraukums ir iespējams savu iemīļoto komandu. 1596 01:04:40,407 --> 01:04:43,240 Jo tas ļauj jums pauze programma un faktiski staigāt pa to 1597 01:04:43,240 --> 01:04:44,280 pozīcijai. 1598 01:04:44,280 --> 01:04:46,500 >> Palaist ļauj palaist to. 1599 01:04:46,500 --> 01:04:48,210 Tālāk, tāpat kā pastiprināšanu, izmantojot. 1600 01:04:48,210 --> 01:04:49,820 Kas ir starp nākamo un soli? 1601 01:04:49,820 --> 01:04:52,190 1602 01:04:52,190 --> 01:04:53,190 Pagaidiet, saka, ka skaļi. 1603 01:04:53,190 --> 01:04:54,060 Tas bija pareizs. 1604 01:04:54,060 --> 01:04:55,280 >> STUDENTU: [dzirdams]. 1605 01:04:55,280 --> 01:04:56,190 >> Davin: Jā, awesome. 1606 01:04:56,190 --> 01:04:59,210 Tātad, piemēram, nākamais solis un, ja you're-- pieņemsim, ka jums ir funkcija jums 1607 01:04:59,210 --> 01:04:59,950 definēt. 1608 01:04:59,950 --> 01:05:03,350 Teiksim dažus jūsu galvenā funkcija, un jūs tikai hitting nākamo, nākamais, 1609 01:05:03,350 --> 01:05:03,850 nākamo. 1610 01:05:03,850 --> 01:05:05,910 Jūs tiešām gatavojas izpildīt šo funkciju, 1611 01:05:05,910 --> 01:05:07,285 bet jūs gatavojas lēkt pār to. 1612 01:05:07,285 --> 01:05:09,711 Ja jūs hit solis, vai s vai kāds, jūs esat 1613 01:05:09,711 --> 01:05:11,460 gatavojas faktiski lēkt par šo funkciju, 1614 01:05:11,460 --> 01:05:14,110 un tad jūs varat hit nākamo redzēt dažādus zvanus 1615 01:05:14,110 --> 01:05:16,170 iekšā, ka konkrēto funkciju. 1616 01:05:16,170 --> 01:05:16,670 Yeah? 1617 01:05:16,670 --> 01:05:18,670 >> STUDENTU: Vai ir veids, kā lēkt, piemēram, atpakaļ ārā? 1618 01:05:18,670 --> 01:05:20,750 Davin: Finish, jā, apdare ar izlēkt jums out. 1619 01:05:20,750 --> 01:05:22,570 Tātad, tas notiek, lai pabeigtu, ka funkcija, un tad jūs 1620 01:05:22,570 --> 01:05:24,153 būs atpakaļ galvenais, for example. 1621 01:05:24,153 --> 01:05:25,250 1622 01:05:25,250 --> 01:05:27,370 Print būs izdrukāt vienu reizi. 1623 01:05:27,370 --> 01:05:29,381 Kaut ko es vienmēr izmantot, ir displejs. 1624 01:05:29,381 --> 01:05:31,880 Displejs izdrukājiet to nepārtraukti visā pilnībā 1625 01:05:31,880 --> 01:05:32,470 Jūsu programmā. 1626 01:05:32,470 --> 01:05:33,810 >> Piemēram, ja jūs esat in cilpas, un jūs 1627 01:05:33,810 --> 01:05:37,018 gribu redzēt, kā kaut kas mainīsies, un jūs nevēlaties, lai, piemēram, pastāvīgi 1628 01:05:37,018 --> 01:05:38,940 darīt tāpat kā drukātā, drukāt, drukāt, displejs 1629 01:05:38,940 --> 01:05:43,230 būs redzams, ka mainīgo pastāvīgi, katru reizi, kad jūs hit Tālāk. 1630 01:05:43,230 --> 01:05:44,310 Un turpināt. 1631 01:05:44,310 --> 01:05:45,905 Tātad GBD, tas ir GDB. 1632 01:05:45,905 --> 01:05:47,160 1633 01:05:47,160 --> 01:05:49,180 >> STUDENTU: Kas ir viens kur jūs [dzirdams]? 1634 01:05:49,180 --> 01:05:50,150 1635 01:05:50,150 --> 01:05:50,900 Davin: Kas tas ir? 1636 01:05:50,900 --> 01:05:52,310 1637 01:05:52,310 --> 01:05:54,390 >> STUDENTU: Kas ir the-- vietējie mainīgie. 1638 01:05:54,390 --> 01:05:55,364 1639 01:05:55,364 --> 01:05:57,780 ROB: Tur ir kaut kas tiešām piemēram, vietējie vai kaut ko. 1640 01:05:57,780 --> 01:05:58,140 Es can't-- 1641 01:05:58,140 --> 01:05:59,930 >> Davin: Tas varētu būt kaut kā tā, jā. 1642 01:05:59,930 --> 01:06:00,830 >> HANNAH: Ar vietējiem iedzīvotājiem? 1643 01:06:00,830 --> 01:06:01,510 >> Davin: Tas ir tas. 1644 01:06:01,510 --> 01:06:02,134 Tas ir viens. 1645 01:06:02,134 --> 01:06:03,040 ROB: Beautiful. 1646 01:06:03,040 --> 01:06:04,030 >> Davin: Jā. 1647 01:06:04,030 --> 01:06:06,010 >> STUDENTU: Kāda turpināt darīt? 1648 01:06:06,010 --> 01:06:08,010 >> Davin: Tas continues-- tāpēc tas ir tikai gatavojas turpināt savu programmu. 1649 01:06:08,010 --> 01:06:09,843 Tātad, ja jūs pauze un hit turpināsies, tas būs 1650 01:06:09,843 --> 01:06:13,119 vienkārši palaist šo programmu līdz tas hits ka pārtraukuma atkal. 1651 01:06:13,119 --> 01:06:14,910 Tā, piemēram, ja jūs izputējis funkciju, 1652 01:06:14,910 --> 01:06:16,720 un jūs gatavojas darīt, piemēram, par cilpa, vai kaut kas tamlīdzīgs, 1653 01:06:16,720 --> 01:06:19,869 un jūs hit turpināsies, tas būs turpināt un doties atpakaļ uz šo pārtraukumu. 1654 01:06:19,869 --> 01:06:22,660 Vai tur nav pārtraukuma, tas būs turpināt un pabeigt programmu. 1655 01:06:22,660 --> 01:06:25,000 >> ROB: Tātad, tāpat kā palaist apstājas tajā pašā pirmajā pārtraukumpunkts 1656 01:06:25,000 --> 01:06:27,010 jūs hit, ja jūs tad hit turpināsies, tas būs glabāt 1657 01:06:27,010 --> 01:06:28,070 iet, kamēr tas ir nākamais pārtraukumpunkts. 1658 01:06:28,070 --> 01:06:30,111 Un pēc tam turpināt iet uz nākamo lūzuma punktu. 1659 01:06:30,111 --> 01:06:31,264 1660 01:06:31,264 --> 01:06:32,680 Davin: Citi jautājumi par GDB? 1661 01:06:32,680 --> 01:06:33,577 1662 01:06:33,577 --> 01:06:35,410 Tāpēc es domāju, ka agrāk, mēs esam jautāja jums to, ko 1663 01:06:35,410 --> 01:06:37,690 GDB ir un dot piemērs dažām lietām, kas jums 1664 01:06:37,690 --> 01:06:40,770 var darīt ar GDB, tāpēc reāla vienkārši, bet jā. 1665 01:06:40,770 --> 01:06:42,280 Tur jums iet. 1666 01:06:42,280 --> 01:06:43,250 Un mezgli? 1667 01:06:43,250 --> 01:06:49,571 >> ROB: Jā, tik kādā virzienā tas bija? 1668 01:06:49,571 --> 01:06:50,851 1669 01:06:50,851 --> 01:06:51,726 STUDENTU: Tas bija tā. 1670 01:06:51,726 --> 01:06:52,160 Davin: Pagaidiet. 1671 01:06:52,160 --> 01:06:52,270 ROB: Šis puisis? 1672 01:06:52,270 --> 01:06:52,936 Davin: Ka viens. 1673 01:06:52,936 --> 01:06:54,660 ROB: Šis puisis, ak, es nesapratu. 1674 01:06:54,660 --> 01:06:56,940 Tāpēc mums nebija skaidri par to, ko the-- man nav 1675 01:06:56,940 --> 01:06:58,680 zināt, kas tas was-- bet jautājums. 1676 01:06:58,680 --> 01:07:01,180 Mēs nezinām, tieši to, ko jūs jautāji par to, lai tikai 1677 01:07:01,180 --> 01:07:04,800 lai noskaidrotu kaut ko. 1678 01:07:04,800 --> 01:07:07,750 Tātad, pirmkārt, tāpat kā es teicu iepriekš, typedef jūs vienmēr izmanto tikai 1679 01:07:07,750 --> 01:07:09,305 izveidot iesauku tipam. 1680 01:07:09,305 --> 01:07:13,420 Tātad tieši šeit, segvārds mēs esam radot Tieši šī tipa struct mezglā. 1681 01:07:13,420 --> 01:07:18,070 >> Tātad, pirmkārt, ignorējot šo mezglu typedef, tāpēc šis struct mezglā cirtaini 1682 01:07:18,070 --> 01:07:21,060 balstītu uz leju līdz nākamajam cirtaini lencēm ir struct mezglā veids. 1683 01:07:21,060 --> 01:07:23,470 Un mums ir nepieciešams, lai šo mezglu tur augšā, jo mēs 1684 01:07:23,470 --> 01:07:25,190 nepieciešams atsauces mezglā šeit. 1685 01:07:25,190 --> 01:07:29,380 Tātad šāda veida rekursīvo struktūrai, jums ir nepieciešams, lai dotu šo struct nosaukumu, 1686 01:07:29,380 --> 01:07:31,340 vai arī jums nevarēja saka struct mezglā šeit. 1687 01:07:31,340 --> 01:07:33,340 Tā kā pirms ar studentu kad mēs bijām drukāti, es domāju, 1688 01:07:33,340 --> 01:07:35,423 mums nebija jāsaka students tur augšā, jo mēs 1689 01:07:35,423 --> 01:07:40,370 nebija jāsaka struct students iekšpusē struktūrai pati. 1690 01:07:40,370 --> 01:07:43,730 Tātad, tas ir rekursīvs ka liek mums teikt mezglu tur. 1691 01:07:43,730 --> 01:07:46,610 >> Šis mezgls ir tikai nosaukums, mēs esam dodot mezglu par typedef. 1692 01:07:46,610 --> 01:07:48,520 Tāpēc, ka mezgls nav tāds pats kā mezglā. 1693 01:07:48,520 --> 01:07:51,567 Bet tas struct mezglā ir tāds pats kā minētajā struct mezglā. 1694 01:07:51,567 --> 01:07:54,150 Davin: Tātad, ja jums zvana, piemēram, mezglu savu galveno funkciju, 1695 01:07:54,150 --> 01:07:55,350 jūs neesat gatavojas jāsaka struct mezglā. 1696 01:07:55,350 --> 01:07:58,360 Jūs varat teikt mezglā, jo mezgls ir different-- būtībā 1697 01:07:58,360 --> 01:07:59,440 jūs sakāt, OK. 1698 01:07:59,440 --> 01:08:01,490 Tā vietā, lai izsauktu struct mezglā manā kodu, 1699 01:08:01,490 --> 01:08:04,050 Es tikai gribu, lai pārdēvētu to kā mezglu, lai būtu vieglāk. 1700 01:08:04,050 --> 01:08:06,800 >> ROB: Ja jūs vienmēr izmantot typedef, tad šī 1701 01:08:06,800 --> 01:08:11,240 ir vienīgā vieta, kur jūs esat nāksies atzīt mainīgo ar struct mezglā 1702 01:08:11,240 --> 01:08:11,740 zvaigzne, jā. 1703 01:08:11,740 --> 01:08:14,650 1704 01:08:14,650 --> 01:08:20,801 >> Davin: Labi, tāpēc pēdējā daļa ir grūti mācīt because-- 1705 01:08:20,801 --> 01:08:22,185 1706 01:08:22,185 --> 01:08:22,685 ROB: Kas? 1707 01:08:22,685 --> 01:08:24,098 1708 01:08:24,098 --> 01:08:25,649 >> Davin: Jo tas kodēšanas uz papīra. 1709 01:08:25,649 --> 01:08:28,689 Tātad, katru gadu mēs esam kodu uz papīra jautājumiem. 1710 01:08:28,689 --> 01:08:32,510 Tāpēc es domāju, ka pagājušajā gadā, 12 no 80 punkti bija kodu uz papīra. 1711 01:08:32,510 --> 01:08:36,720 Gadu pirms tam, 10 no 80, Gadu pirms, ka 20 no 100, 1712 01:08:36,720 --> 01:08:37,939 tāpēc diezgan maz no tām. 1713 01:08:37,939 --> 01:08:40,970 Tātad jūs nāksies jāspēj kodēt up šīs funkcijas ar rokām. 1714 01:08:40,970 --> 01:08:45,340 >> Tāpēc es sapratu, mēs varētu iet cauri no tiem pāris, un redzēt, kā cilvēki, 1715 01:08:45,340 --> 01:08:47,340 veida staigāt pa tos lēnām ar cilvēkiem. 1716 01:08:47,340 --> 01:08:48,790 1717 01:08:48,790 --> 01:08:52,420 Tātad kopumā, strlen un atoi ir ļoti populāri. 1718 01:08:52,420 --> 01:08:55,670 Pagājušajā gadā, es domāju, ka mums bija GetPositiveInt un RandomInt. 1719 01:08:55,670 --> 01:08:58,591 Bet Pow, tāpēc jauda, ​​arī pozitīvs too. 1720 01:08:58,591 --> 01:09:00,965 Pieņemsim tikai iet cauri varbūt viens vai divi no tiem kopā. 1721 01:09:00,965 --> 01:09:02,510 1722 01:09:02,510 --> 01:09:03,729 Ko cilvēki vēlas redzēt? 1723 01:09:03,729 --> 01:09:05,037 1724 01:09:05,037 --> 01:09:05,767 >> STUDENTU: atoi. 1725 01:09:05,767 --> 01:09:06,350 STUDENTU: Jā. 1726 01:09:06,350 --> 01:09:06,859 Davin: atoi? 1727 01:09:06,859 --> 01:09:07,800 STUDENTU: [dzirdams]. 1728 01:09:07,800 --> 01:09:09,682 Davin: Labi, es dodos to darīt uz kuģa. 1729 01:09:09,682 --> 01:09:11,765 Vai jums ir priekšroka ja es varu to darīt šeit vai tur? 1730 01:09:11,765 --> 01:09:13,580 1731 01:09:13,580 --> 01:09:14,550 Tur, Gabe saka tur. 1732 01:09:14,550 --> 01:09:16,729 1733 01:09:16,729 --> 01:09:19,580 >> ROB: Un tas ir vispārīgi domas par šiem kodēšanas jautājumiem. 1734 01:09:19,580 --> 01:09:21,705 Mēģināt rakstīt kaut ko. 1735 01:09:21,705 --> 01:09:22,580 Neatstājiet to tukšu. 1736 01:09:22,580 --> 01:09:23,080 >> Davin: Jā. 1737 01:09:23,080 --> 01:09:25,520 ROB: Ja jūs varat saņemt atgriešanās tips pareizs, 1738 01:09:25,520 --> 01:09:27,090 vai varbūt mēs varētu dot to jums, bet, ja jūs varat, piemēram, 1739 01:09:27,090 --> 01:09:30,256 rakstīt vispārējo funkciju parakstu, Ja jūs varat saņemt pamatteritorijas lietas pareizi, 1740 01:09:30,256 --> 01:09:32,244 vai stūra gadījumos, vai atceroties čeku par null, 1741 01:09:32,244 --> 01:09:34,160 tik ilgi, kamēr jums ir dažas lietas, tad varbūt mēs 1742 01:09:34,160 --> 01:09:35,880 var sniegt jums pāris norāda uz problēmu. 1743 01:09:35,880 --> 01:09:36,810 Vai ne tikai atstāt to tukšu. 1744 01:09:36,810 --> 01:09:38,560 >> Davin: Jā, un, ja jūs ir tikai pilnīgi 1745 01:09:38,560 --> 01:09:40,580 stumped uz to, kā faktiski pārvēršas kodu. 1746 01:09:40,580 --> 01:09:43,140 Ja jūs rakstīt pseudocode, tas ir diezgan labi too. 1747 01:09:43,140 --> 01:09:46,390 Tātad, tas ir, piemēram, tas ir sešu punktu jautājums, un rakstīt pareizo pseudocode, 1748 01:09:46,390 --> 01:09:47,858 jūs saņemsiet vismaz divus punktus. 1749 01:09:47,858 --> 01:09:49,149 Tātad ne tikai atstāt tos tukšu. 1750 01:09:49,149 --> 01:09:50,279 Mēģināt likt kaut ko. 1751 01:09:50,279 --> 01:09:51,770 >> ROB: Tai ir jābūt pareizs pseudocode, though. 1752 01:09:51,770 --> 01:09:52,270 >> Davin: Jā. 1753 01:09:52,270 --> 01:09:55,381 ROB: Tātad mēs esam parasti ir mazāk saudzīgs ar bugs pseudocode. 1754 01:09:55,381 --> 01:09:57,130 Davin: OK, lai jūs puiši gribēja redzēt atoi. 1755 01:09:57,130 --> 01:09:58,480 1756 01:09:58,480 --> 01:10:02,820 Labi, lai tikai really-- lai to, ko jūs vēlaties darīt 1757 01:10:02,820 --> 01:10:04,969 ir jūs esat būs ņemot vērā dažus veida numuru. 1758 01:10:04,969 --> 01:10:07,010 Bet šis skaitlis nav būs int, vai ne? 1759 01:10:07,010 --> 01:10:08,574 Kas tas būs? 1760 01:10:08,574 --> 01:10:09,480 >> STUDENTU: [dzirdams]. 1761 01:10:09,480 --> 01:10:11,146 >> Davin: Tas būs stīgu, vai ne? 1762 01:10:11,146 --> 01:10:13,160 Tātad, ja jums tika dota string-- pieņemsim say-- 1763 01:10:13,160 --> 01:10:15,228 >> ROB: man vajadzētu uzvilkt redaktors? 1764 01:10:15,228 --> 01:10:16,200 Es varu pull up-- 1765 01:10:16,200 --> 01:10:16,800 >> Davin: Ak, jūs vēlaties to darīt on-- 1766 01:10:16,800 --> 01:10:17,420 >> ROB: Vai jūs gribētu kuģa? 1767 01:10:17,420 --> 01:10:18,800 >> Davin: Ko jūs vēlaties darīt? 1768 01:10:18,800 --> 01:10:19,900 Es domāju, jūs vēlaties to darīt ar rokām? 1769 01:10:19,900 --> 01:10:21,460 Vai jūs vēlaties to darīt ar datoru? 1770 01:10:21,460 --> 01:10:22,180 >> ROB: Vai to ar rokām. 1771 01:10:22,180 --> 01:10:22,805 >> Davin: [smejas] 1772 01:10:22,805 --> 01:10:23,950 ROB: Vai to ar rokām. 1773 01:10:23,950 --> 01:10:25,469 >> Davin: Labi, tāpēc tas būs atoi. 1774 01:10:25,469 --> 01:10:27,760 Tātad, kas ir it-- es domāju, mēs iespējams, dod to jums. 1775 01:10:27,760 --> 01:10:29,106 Bet to, kas tas notiek, lai atgrieztos? 1776 01:10:29,106 --> 01:10:29,452 >> STUDENTU: Int. 1777 01:10:29,452 --> 01:10:31,076 >> Davin: Tas ir gatavojas atgriezties int, vai ne? 1778 01:10:31,076 --> 01:10:33,772 So-- Es nevēlos to darīt tur. 1779 01:10:33,772 --> 01:10:34,510 Es darīšu to šeit. 1780 01:10:34,510 --> 01:10:36,596 >> ROB: Jūs varat vilkt to uz leju un tad push up par to. 1781 01:10:36,596 --> 01:10:38,500 1782 01:10:38,500 --> 01:10:40,385 >> Davin: jā. 1783 01:10:40,385 --> 01:10:43,880 [Smejas] Spēle pārmaiņas. 1784 01:10:43,880 --> 01:10:50,950 Labi, tā tas būs int atoi, un to, kas tā gatavojas veikt? 1785 01:10:50,950 --> 01:10:52,180 1786 01:10:52,180 --> 01:10:57,780 Char zvaigzne, tāpēc vienkārši stīgu, zvaigzne s, piemēram, ka. 1787 01:10:57,780 --> 01:10:59,240 >> ROB: Nice zvaigzne, jauki. 1788 01:10:59,240 --> 01:11:02,582 1789 01:11:02,582 --> 01:11:04,040 Davin: Tas varētu būt tur, OK. 1790 01:11:04,040 --> 01:11:04,540 ROB: Jā. 1791 01:11:04,540 --> 01:11:06,670 Davin: Labi, tāpēc pirmais lieta, ko jūs vēlaties, lai do-- I 1792 01:11:06,670 --> 01:11:08,490 nezinu, ja kāds izskatījās pie prakses solutions-- 1793 01:11:08,490 --> 01:11:10,150 bet tas, ko jūs gatavojas to vēlas darīt, ir jūs 1794 01:11:10,150 --> 01:11:11,570 gatavojas vēlaties, lai būtu cilpa, jo jūs esat 1795 01:11:11,570 --> 01:11:14,100 gatavojas vēlaties, lai faktiski soli pa šīs virknes. 1796 01:11:14,100 --> 01:11:18,880 Tik helpful-- tāpēc, teiksim mēs ejam uz cilpas, 1797 01:11:18,880 --> 01:11:22,270 un mēs ejam soli pa katrs virknes elements. 1798 01:11:22,270 --> 01:11:23,470 Cik ilgi tas ir? 1799 01:11:23,470 --> 01:11:26,464 Cik reizes mēs ejam atkārtot jo cilpas? 1800 01:11:26,464 --> 01:11:27,130 STUDENTU: Sterln? 1801 01:11:27,130 --> 01:11:27,963 Davin: Sterln, jā. 1802 01:11:27,963 --> 01:11:29,350 1803 01:11:29,350 --> 01:11:41,294 Tātad pieņemsim, ka int garums ir vienāds sterln s. 1804 01:11:41,294 --> 01:11:44,240 1805 01:11:44,240 --> 01:11:48,740 Un tikai ziņkārīgs, kāpēc ir tā, vienmēr laipns no labāk darīt ārpus cilpas? 1806 01:11:48,740 --> 01:11:52,277 Tāpat kā, kāpēc tas ir labāk, lai izsauktu šī funkcija ārpus cilpas? 1807 01:11:52,277 --> 01:11:53,360 Tikai ātri veselība pārbaudītu? 1808 01:11:53,360 --> 01:11:55,810 1809 01:11:55,810 --> 01:11:56,311 Yeah? 1810 01:11:56,311 --> 01:11:58,268 STUDENTU: Tātad jums nav ir, lai saglabātu pārbaudot to. 1811 01:11:58,268 --> 01:11:59,400 Jūs varat vienkārši [nedzirdama]. 1812 01:11:59,400 --> 01:12:01,560 >> Davin: Tieši tā, tāpēc, jā, tieši tas, ko viņa teica. 1813 01:12:01,560 --> 01:12:03,101 Tāpēc mums nav, lai saglabātu pārbaudot to. 1814 01:12:03,101 --> 01:12:05,690 Tā, piemēram, ja es esmu aicinot šī funkcija iekšpusē cilpas, 1815 01:12:05,690 --> 01:12:08,050 tad es esmu gatavojas glabāt zvanot šī funkcija vairākas reizes. 1816 01:12:08,050 --> 01:12:10,080 Un kas notiek, lai samazinātu efektivitāte jūsu programmā. 1817 01:12:10,080 --> 01:12:12,370 Tātad, tas vienmēr ir noderīgi deklarēt to ārā. 1818 01:12:12,370 --> 01:12:14,370 >> ROB: Tas ir teicis, uz kādu no šīm problēmām, 1819 01:12:14,370 --> 01:12:17,940 diezgan daudz, kamēr jūs saņemsiet darba šķīdums, jūs saņemsiet pilnu kredītu. 1820 01:12:17,940 --> 01:12:20,820 Tāpēc nav jāuztraucas, ja Jūsu dizains ir absolūti šausminošos. 1821 01:12:20,820 --> 01:12:22,120 1822 01:12:22,120 --> 01:12:25,230 Tas varētu padarīt mūs sajukums lasījums savu kodu. 1823 01:12:25,230 --> 01:12:28,160 Taču, kamēr tas darbojas, jūs saņemsiet punktus. 1824 01:12:28,160 --> 01:12:29,302 >> Davin: Jā. 1825 01:12:29,302 --> 01:12:31,260 Labi, tā tad es esmu gatavojas pasludināt kādu mainīgo. 1826 01:12:31,260 --> 01:12:33,900 Tas ir tikai gatavojas, lai izsauktu int summu. 1827 01:12:33,900 --> 01:12:37,031 Un es esmu gatavojas noteikt šo vienāda ar nulli, piemēram, ka. 1828 01:12:37,031 --> 01:12:38,780 Un tas ir tikai gatavojas būt vietturis. 1829 01:12:38,780 --> 01:12:40,960 Tāpēc, ka ir būs ko es esmu gatavojas atgriezties. 1830 01:12:40,960 --> 01:12:43,730 Tāpēc es esmu gatavojas beidzot atgriezties summu no šīs programmas. 1831 01:12:43,730 --> 01:12:44,980 Tāpēc man ir šie divi mainīgie. 1832 01:12:44,980 --> 01:12:45,563 Man ir garums. 1833 01:12:45,563 --> 01:12:46,500 Man ir summa. 1834 01:12:46,500 --> 01:12:48,290 Un tagad pieņemsim lēkt mūsu virkni. 1835 01:12:48,290 --> 01:12:49,510 >> Tā ļauj ir mūsu cilpas. 1836 01:12:49,510 --> 01:13:06,520 Tāpēc četras int es vienāds ar 0 w, bet I ir mazāks nekā garuma I plus plus. 1837 01:13:06,520 --> 01:13:07,150 Un now-- 1838 01:13:07,150 --> 01:13:10,920 1839 01:13:10,920 --> 01:13:11,420 ROB: Nice. 1840 01:13:11,420 --> 01:13:14,030 Davin: OK, un tagad šeit nāk gaļu mūsu kodu. 1841 01:13:14,030 --> 01:13:17,380 Tātad jūs faktiski var darīt tas būtībā ir viena rinda. 1842 01:13:17,380 --> 01:13:20,702 Tātad, vai kāds ir ideja par to, ko mēs gatavojamies darīt tālāk? 1843 01:13:20,702 --> 01:13:23,680 1844 01:13:23,680 --> 01:13:25,380 Labi, tā ka ir OK. 1845 01:13:25,380 --> 01:13:35,860 Tāpēc mēs darām teikt summu equals-- ļaujiet man mukt šo over-- summu 1846 01:13:35,860 --> 01:13:50,010 vienāds kopsummas reizes 10 plus-- Mēs gatavojas veikt s I mīnus viens 1847 01:13:50,010 --> 01:13:54,787 quote 0 viens citāts darīts, piemēram, ka. 1848 01:13:54,787 --> 01:13:55,620 ROB: Ļoti intuitīvu. 1849 01:13:55,620 --> 01:13:56,980 1850 01:13:56,980 --> 01:13:57,880 >> Davin: šķembas to. 1851 01:13:57,880 --> 01:14:01,438 Labi, tāpēc someone-- es saņēmu to, es saņēmu to. 1852 01:14:01,438 --> 01:14:03,680 1853 01:14:03,680 --> 01:14:06,960 Labi, tā tas ir skaidri iet uz augšu. 1854 01:14:06,960 --> 01:14:08,320 1855 01:14:08,320 --> 01:14:09,450 Ko tas nozīmē? 1856 01:14:09,450 --> 01:14:12,120 Tātad, vai kāds zina, ko tas nozīmē? 1857 01:14:12,120 --> 01:14:13,826 Var ikviens redzēt šo? 1858 01:14:13,826 --> 01:14:16,088 Nē, neviens nevar redzēt to, OK. 1859 01:14:16,088 --> 01:14:17,390 1860 01:14:17,390 --> 01:14:18,340 Es esmu gatavojas kuri paredzēti, 1861 01:14:18,340 --> 01:14:20,506 >> ROB: Es esmu gatavojas rakstīt formula tikai šeit. 1862 01:14:20,506 --> 01:14:23,140 Davin: OK, Rob gatavojas to darīt datorā, kas ir fun. 1863 01:14:23,140 --> 01:14:26,889 1864 01:14:26,889 --> 01:14:27,514 ROB: Ak mans Dievs. 1865 01:14:27,514 --> 01:14:34,340 1866 01:14:34,340 --> 01:14:35,010 Vai man nebūs. 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 STUDENTU: Man ir jautājums. 1871 01:14:44,260 --> 01:14:45,348 Davin: Jā, protams. 1872 01:14:45,348 --> 01:14:46,223 STUDENTU: [dzirdams]? 1873 01:14:46,223 --> 01:14:52,529 1874 01:14:52,529 --> 01:14:54,570 Davin: Labi, tāpēc tas faktiski, piemēram, tikai kopumā, 1875 01:14:54,570 --> 01:14:56,710 ja tu būtu likt, piemēram, šajā deklarācijā int 1876 01:14:56,710 --> 01:14:59,770 Man ir vienāds ar 0 komatu garumu vienāds sterln, that-- 1877 01:14:59,770 --> 01:15:01,200 >> STUDENTU: [dzirdams]. 1878 01:15:01,200 --> 01:15:03,585 >> Davin: Tas ir jauki, jo that-- 1879 01:15:03,585 --> 01:15:05,543 STUDENTU: kāpēc jūs pat nepieciešams izmantot garumu? 1880 01:15:05,543 --> 01:15:08,620 Kāpēc nevarēja mēs tikai [dzirdams] sterln s, piemēram, visu laiku [dzirdams]? 1881 01:15:08,620 --> 01:15:09,460 >> Davin: Tu domā tieši šeit? 1882 01:15:09,460 --> 01:15:10,001 >> STUDENTU: Jā. 1883 01:15:10,001 --> 01:15:12,630 Davin: Jo katru laika šis cilpa iet, 1884 01:15:12,630 --> 01:15:14,295 tas notiek, lai novērtētu šo stāvokli. 1885 01:15:14,295 --> 01:15:14,920 STUDENTU: Labais. 1886 01:15:14,920 --> 01:15:16,836 Davin: Un, ja jums ir sterln tur, tad tas ir 1887 01:15:16,836 --> 01:15:19,510 nāksies reāli zvanīt šī funkcija katru reizi. 1888 01:15:19,510 --> 01:15:21,090 Tātad, nevis tikai salīdzinot to ar int, 1889 01:15:21,090 --> 01:15:23,548 jūs esat būs zvanot funkcija un tad salīdzināt to 1890 01:15:23,548 --> 01:15:24,510 līdz atgriešanās vērtību. 1891 01:15:24,510 --> 01:15:25,860 Jā, tāpēc tas ir tikai, jā. 1892 01:15:25,860 --> 01:15:28,860 1893 01:15:28,860 --> 01:15:30,770 >> Jauki, Labi, tāpēc tagad katrs var redzēt. 1894 01:15:30,770 --> 01:15:33,400 Kas does-- tas ir, piemēram, tas ir tā. 1895 01:15:33,400 --> 01:15:34,580 Tas ir ievārījums, tieši šeit. 1896 01:15:34,580 --> 01:15:37,030 1897 01:15:37,030 --> 01:15:37,930 Ko tas nozīmē? 1898 01:15:37,930 --> 01:15:39,250 1899 01:15:39,250 --> 01:15:39,970 Ko es daru? 1900 01:15:39,970 --> 01:15:41,890 1901 01:15:41,890 --> 01:15:42,880 Jā, ideja? 1902 01:15:42,880 --> 01:15:43,482 Yeah? 1903 01:15:43,482 --> 01:15:45,692 >> STUDENTU: Nu, tad, kad jūs ievadot masīvu, 1904 01:15:45,692 --> 01:15:47,525 jūs gatavojas iet no kreisās uz labo, 1905 01:15:47,525 --> 01:15:51,786 lai jūs esat būs iet decimal no leju [nedzirdama]. 1906 01:15:51,786 --> 01:15:52,410 Davin: Tieši tā. 1907 01:15:52,410 --> 01:15:55,063 STUDENTU: Tātad katrs Jums ir reizināt 1908 01:15:55,063 --> 01:15:59,490 ko tu redzēji, kā vērtību int ar reizi, kad jūs saņemsiet, lai pārvietotos, ka vairāk nekā viens. 1909 01:15:59,490 --> 01:16:01,590 >> Davin: Perfect, ideāls, tā, piemēram, pieņemsim 1910 01:16:01,590 --> 01:16:05,376 teikt, es deva you-- es esmu gatavojas rakstīt vairāk nekā šeit. 1911 01:16:05,376 --> 01:16:06,480 Nē, es neesmu. 1912 01:16:06,480 --> 01:16:08,640 Es esmu gatavojas rakstīt vairāk nekā šeit. 1913 01:16:08,640 --> 01:16:12,080 Pieņemsim, ka es tev 76, vai ne? 1914 01:16:12,080 --> 01:16:13,380 Pieņemsim, ka es dodu jums 76. 1915 01:16:13,380 --> 01:16:15,360 Tas ir virkne sākt ar, OK? 1916 01:16:15,360 --> 01:16:16,840 >> Tātad, garums ir tas, ko? 1917 01:16:16,840 --> 01:16:18,060 1918 01:16:18,060 --> 01:16:19,060 2, vai ne? 1919 01:16:19,060 --> 01:16:20,290 Summa ir 0. 1920 01:16:20,290 --> 01:16:21,600 Tad mēs ielēkt Mūsu cilpas. 1921 01:16:21,600 --> 01:16:24,187 Labi, pirmā atkārtojuma tas, kāda ir tā būs? 1922 01:16:24,187 --> 01:16:25,270 Tas būs summa ir 0. 1923 01:16:25,270 --> 01:16:27,180 Tātad Rezumējot reizes 10 0. 1924 01:16:27,180 --> 01:16:28,500 Tas ir bezjēdzīgi. 1925 01:16:28,500 --> 01:16:29,880 Tad ko tas dara? 1926 01:16:29,880 --> 01:16:30,845 1927 01:16:30,845 --> 01:16:31,720 STUDENTU: [dzirdams]. 1928 01:16:31,720 --> 01:16:33,110 1929 01:16:33,110 --> 01:16:37,430 >> Davin: Tas gatavojas vērsties ka raksturs stājas skaitlim, vai ne? 1930 01:16:37,430 --> 01:16:42,160 Tas ir veids, kā ar savu problēma set-- šo light-- 1931 01:16:42,160 --> 01:16:44,170 tas ir veids, kā ar Problēma iestatīts uz VISIONEER. 1932 01:16:44,170 --> 01:16:45,980 Jums ir darīšana ar ASCII vērtībām. 1933 01:16:45,980 --> 01:16:48,520 Tātad, ja es jums, piemēram, septiņi, bet tas ir raksturs, 1934 01:16:48,520 --> 01:16:50,965 un jūs vēlaties zināt, Labi, kāda cipars ir tas, ka? 1935 01:16:50,965 --> 01:16:53,540 1936 01:16:53,540 --> 01:16:54,910 Jā, jūs varētu, jā. 1937 01:16:54,910 --> 01:16:55,900 Tātad, kas cipars ir tas, ka? 1938 01:16:55,900 --> 01:16:59,550 Jūs varētu atņemt 0 no tā, bet jūs ir, lai atņemtu 0, raksturu. 1939 01:16:59,550 --> 01:17:01,425 >> Un kur daži cilvēki get paklupa uz augšu, viņi 1940 01:17:01,425 --> 01:17:04,260 piemēram, Labi, labi, man ir jāzina ASCII vērtības šajā viktorīnā? 1941 01:17:04,260 --> 01:17:06,218 Nē, jums noteikti nav jāzina ASCII 1942 01:17:06,218 --> 01:17:09,520 vērtības, piemēram, mazajiem , lielajiem burtiem, nulle. 1943 01:17:09,520 --> 01:17:12,060 >> ROB: Nav iemesla, lai kādreiz nodot šo par apkrāptu lapas. 1944 01:17:12,060 --> 01:17:14,226 >> Davin: Noteikti nav atkritumu savu telpu ar to. 1945 01:17:14,226 --> 01:17:18,090 Jūs varat literally-- vienkārši vietā , sakot: 48, piemēram, tiesības uz augšu 1946 01:17:18,090 --> 01:17:24,630 tur, kas ir līdzvērtīga sakot vienu, viens apostrofs, 1947 01:17:24,630 --> 01:17:27,680 piemēram, ka, tieši tāds pats. 1948 01:17:27,680 --> 01:17:34,106 >> ROB: Jūs varētu gandrīz domājat tā kā if-- Dievam, man vajag manu, 1949 01:17:34,106 --> 01:17:37,490 oops-- jūs varētu gandrīz domāt par to kā tad, ja mums ir kaut kas līdzīgs šim hash 1950 01:17:37,490 --> 01:17:39,755 definēt 0 kā 48. 1951 01:17:39,755 --> 01:17:41,320 1952 01:17:41,320 --> 01:17:42,030 Tas nestrādās. 1953 01:17:42,030 --> 01:17:45,502 Bet domā par to kā vienu citātu 0 vienotu quote, un visiem burtiem. 1954 01:17:45,502 --> 01:17:47,960 Domājiet par to kā konstante, kas apliecina, ka ASCII vērtību. 1955 01:17:47,960 --> 01:17:49,080 >> Davin: Jā. 1956 01:17:49,080 --> 01:17:52,820 Labi, tāpēc pirmo reizi cauri, tāpēc ar 76-- tāpēc pirmo reizi cauri, 1957 01:17:52,820 --> 01:17:57,260 tas ir tikai raksturs 7 mīnus raksturs 0, 1958 01:17:57,260 --> 01:18:00,420 un tie ir septiņi integers-- labi, tie, 1959 01:18:00,420 --> 01:18:04,030 Ir septiņi telpas prom no katras otru par ASCII diagrammas vai neatkarīgi. 1960 01:18:04,030 --> 01:18:06,770 Tāpēc, ka ir gatavojas atgriezties int ir 7. 1961 01:18:06,770 --> 01:18:08,720 Tāpēc tagad, summa ir vienāda ar 7. 1962 01:18:08,720 --> 01:18:10,830 >> Labi, labi, pieņemsim lēkt uz šis cilpa vēlreiz. 1963 01:18:10,830 --> 01:18:13,010 Labi, tagad tas ir summa reizes 10. 1964 01:18:13,010 --> 01:18:15,800 Tātad jūs esat efektīvi pārvietojas 7 pa kreisi. 1965 01:18:15,800 --> 01:18:17,542 Vai tas ir jēga? 1966 01:18:17,542 --> 01:18:19,250 Jūs esat efektīvi pārvietojot to pa kreisi. 1967 01:18:19,250 --> 01:18:21,790 >> Un tad jūs add-- šis būs mīnus 6 0. 1968 01:18:21,790 --> 01:18:22,650 Tas ir 6. 1969 01:18:22,650 --> 01:18:24,752 Tātad tas būs 70 plus 6. 1970 01:18:24,752 --> 01:18:25,996 76, tas ir jūsu numuru. 1971 01:18:25,996 --> 01:18:28,370 Tātad neatkarīgi no tā, cik lielā skaitā Es deva jums, tas ir lēni tikai 1972 01:18:28,370 --> 01:18:31,610 gatavojas novirzīt lielāku vērtības pa kreisi, 1 koeficientu 10 1973 01:18:31,610 --> 01:18:35,525 katru reizi uz cilpas, un tad pievienot uz kā nepieciešams. 1974 01:18:35,525 --> 01:18:37,350 1975 01:18:37,350 --> 01:18:37,865 >> Uz muguras? 1976 01:18:37,865 --> 01:18:40,240 STUDENTU: Mums nav jādara jebkurš pārbaudot programmā? 1977 01:18:40,240 --> 01:18:41,580 1978 01:18:41,580 --> 01:18:44,302 >> ROB: Tātad, cik pārbaudes iet programmai, 1979 01:18:44,302 --> 01:18:46,510 mēs varētu pateikt diezgan daudz, kas jums ir nepieciešams, lai pārbaudītu. 1980 01:18:46,510 --> 01:18:48,670 Ja mums nav pateikt kaut kas, tad parasti 1981 01:18:48,670 --> 01:18:50,320 pieņemu, jums ir pārbaudīt visvairāk lietām. 1982 01:18:50,320 --> 01:18:54,772 Tāpat kā jūs, iespējams, tikai, lai būtu droši, jums būtu iespējams pārbaudīt, hey, ir s null? 1983 01:18:54,772 --> 01:18:56,230 Tad man nav ne jausmas, ko atgriezties. 1984 01:18:56,230 --> 01:18:58,814 Bet mēs varētu pateikt šāda veida lieta. 1985 01:18:58,814 --> 01:18:59,480 0, es nezinu. 1986 01:18:59,480 --> 01:19:02,786 >> Davin: Un kāpēc jūs vēlaties lai vēlreiz pārbaudiet, vai s vienāds null? 1987 01:19:02,786 --> 01:19:03,660 STUDENTU: [dzirdams]. 1988 01:19:03,660 --> 01:19:04,880 Davin: Sakarā ar char zvaigzni. 1989 01:19:04,880 --> 01:19:05,510 Tas ir rādītājs. 1990 01:19:05,510 --> 01:19:09,240 Tātad pilnīgi pieņemams deklarācija, es varētu teikt, OK, 1991 01:19:09,240 --> 01:19:11,917 s vienāds null, jo tas varētu būt rādītājs null. 1992 01:19:11,917 --> 01:19:14,250 Tātad, ja jums ir norādes Jūsu ceļa, piemēram, tas, 1993 01:19:14,250 --> 01:19:15,420 jums ir iespējams pārbaudīt. 1994 01:19:15,420 --> 01:19:18,461 Jo, ja jums nav pārbaudīt, ka, un tad jūs pēc tam doties uz savu cilpas, 1995 01:19:18,461 --> 01:19:20,100 un jūs doing-- mukt uz leju. 1996 01:19:20,100 --> 01:19:21,980 1997 01:19:21,980 --> 01:19:22,920 Mukt uz leju. 1998 01:19:22,920 --> 01:19:23,860 >> ROB: Atvainojiet, tas arī viss. 1999 01:19:23,860 --> 01:19:25,860 >> Davin: Un tā, piemēram, ja tas ir spēkā, un tad jūs 2000 01:19:25,860 --> 01:19:28,267 izdarītu, kļūdu jūs gatavojas saņemt? 2001 01:19:28,267 --> 01:19:29,850 STUDENTU: Jūs gatavojas saņemt noteiktu vaina. 2002 01:19:29,850 --> 01:19:31,250 Davin: Jūs esat gatavojas noteikt vaina, labi, jo tu esi 2003 01:19:31,250 --> 01:19:32,616 mēģina indeksēt uz null. 2004 01:19:32,616 --> 01:19:35,240 Tātad jūs gatavojas izmēģināt indeksēt atmiņā, ka jums nepieder. 2005 01:19:35,240 --> 01:19:39,550 Tātad tas, ja tas ir nulle, un jūs to izdarītu, jūs cikls. 2006 01:19:39,550 --> 01:19:43,656 >> ROB: Es arī domāju, ka uz eksāmenu, kurā mēs lūdza šo jautājumu, mēs jums pateiks 2007 01:19:43,656 --> 01:19:45,655 ka jūs varat tikai pieņemt tas ir pozitīvs skaitlis. 2008 01:19:45,655 --> 01:19:48,270 Tāpēc, ka ir gaidāms arī atoi rīkoties negatīvus skaitļus, 2009 01:19:48,270 --> 01:19:49,686 lai jūs būtu īpašs gadījums. 2010 01:19:49,686 --> 01:19:53,080 Hei, ir pirmā zīme domuzīme, tādā gadījumā, OK, 2011 01:19:53,080 --> 01:19:54,839 tagad tas ir negatīvs skaitlis. 2012 01:19:54,839 --> 01:19:56,380 Mēs jums pateiks šos veida lietām. 2013 01:19:56,380 --> 01:19:58,005 Mēs jums pateiks, kas jums nepieciešams, lai rīkotos. 2014 01:19:58,005 --> 01:19:59,310 Davin: Jā. 2015 01:19:59,310 --> 01:20:02,530 Tāpēc es esmu pārliecināts, ka daži cilvēki varētu have-- ja jūs sāka meklē vecās eksāmeniem, 2016 01:20:02,530 --> 01:20:03,900 Jūs esat redzējuši sterln. 2017 01:20:03,900 --> 01:20:05,120 Tas ir populārs vienu. 2018 01:20:05,120 --> 01:20:09,790 Un es domāju, ka sterln, jums bija darīt šo pārbaudi par nulli, atgriešanos 2019 01:20:09,790 --> 01:20:10,950 0 vai kaut kas tamlīdzīgs. 2020 01:20:10,950 --> 01:20:11,940 Tāpat kā, jums bija, lai pārbaudītu null. 2021 01:20:11,940 --> 01:20:14,230 Un, ja jums nav, ka bija norādīt off uz viktorīnas. 2022 01:20:14,230 --> 01:20:16,750 2023 01:20:16,750 --> 01:20:19,500 So anyway, tas visiem jūtas OK ar atoi? 2024 01:20:19,500 --> 01:20:21,112 2025 01:20:21,112 --> 01:20:22,820 Vai kāds vēlas iet pa daļām atkal? 2026 01:20:22,820 --> 01:20:23,815 2027 01:20:23,815 --> 01:20:25,565 ROB: Ak jā, es domāju, ka mēs arī pateiks jums 2028 01:20:25,565 --> 01:20:28,565 var pieņemt, ka viss is-- ka viņi faktiski ievadot numuru, 2029 01:20:28,565 --> 01:20:32,821 ka jums nav jāuztraucas par to, piemēram, vēstules ir virknē, tāpēc. 2030 01:20:32,821 --> 01:20:33,320 Davin: Jā. 2031 01:20:33,320 --> 01:20:33,922 Jā? 2032 01:20:33,922 --> 01:20:35,713 STUDENTU: Vai jums iet gaitā vairāk vienu reizi, kad 2033 01:20:35,713 --> 01:20:37,860 Jūs izmantojat dubulto citātu un vienu citātu? 2034 01:20:37,860 --> 01:20:41,290 >> Davin: Protams, tā pēdiņas, ļoti vienkārši, ir pēdiņas ir virknes. 2035 01:20:41,290 --> 01:20:43,370 Tātad, ja jūs dubultā citātu kaut kas, kas ir virkne. 2036 01:20:43,370 --> 01:20:48,270 Tātad, piemēram, ja man bija tas 0 vairāk nekā šeit, un man bija tas, ka ir virkne. 2037 01:20:48,270 --> 01:20:50,060 Tas vairs raksturs. 2038 01:20:50,060 --> 01:20:54,816 Tāpēc es nevaru atrast šo vērtību par manu ASCII diagramma, jo tas ir string, jā. 2039 01:20:54,816 --> 01:20:57,770 2040 01:20:57,770 --> 01:20:59,480 >> Labi, kādi citi jautājumi? 2041 01:20:59,480 --> 01:21:00,405 Jā? 2042 01:21:00,405 --> 01:21:02,345 >> STUDENTU: Tātad jūs esat jau atbildēja tas, 2043 01:21:02,345 --> 01:21:05,255 bet, piemēram, tad, kad mēs esam patiesībā rakstot šo par viktorīnu, 2044 01:21:05,255 --> 01:21:08,165 Jūs vēlaties, lai mēs rakstītu ar slashes nulles [dzirdams]? 2045 01:21:08,165 --> 01:21:11,041 2046 01:21:11,041 --> 01:21:11,540 Davin: Nē. 2047 01:21:11,540 --> 01:21:13,800 Jautājums bija jums būtu likts slīpsvītra pa nullēm 2048 01:21:13,800 --> 01:21:14,890 norādīt, vai viņi nullēm? 2049 01:21:14,890 --> 01:21:15,890 Nē, mēs to sapratīsi. 2050 01:21:15,890 --> 01:21:16,940 2051 01:21:16,940 --> 01:21:19,530 Jā, paldies, viņi labi. 2052 01:21:19,530 --> 01:21:20,860 Labi, kaut kas cits? 2053 01:21:20,860 --> 01:21:25,060 Vai kāds vēlas, kuri paredzēti, lai, tāpēc es domāju, ka mēs esam palaist mazliet laika gaitā. 2054 01:21:25,060 --> 01:21:27,305 Vai vēlaties redzēt vēl vienu, vai? 2055 01:21:27,305 --> 01:21:28,096 STUDENTU: RandomInt. 2056 01:21:28,096 --> 01:21:29,230 2057 01:21:29,230 --> 01:21:30,750 >> Davin: RandomInt, OK, tieši tā. 2058 01:21:30,750 --> 01:21:32,975 Tāpēc pieņemsim do RandomInt. 2059 01:21:32,975 --> 01:21:34,395 2060 01:21:34,395 --> 01:21:35,270 Es darīšu to vairāk šeit. 2061 01:21:35,270 --> 01:21:36,770 2062 01:21:36,770 --> 01:21:39,210 Tātad RandomInt faktiski ir daudz vienkāršāk. 2063 01:21:39,210 --> 01:21:43,578 Es domāju, atoi iespējams cieta viens ka mēs esam jautāja iepriekšējos gados. 2064 01:21:43,578 --> 01:21:44,453 STUDENTU: [dzirdams]. 2065 01:21:44,453 --> 01:21:46,660 2066 01:21:46,660 --> 01:21:47,161 >> Davin: Kas? 2067 01:21:47,161 --> 01:21:49,493 ROB: Es esmu redzēt, ja tas ir sava veida skatāmo no vairāk nekā šeit. 2068 01:21:49,493 --> 01:21:50,040 Davin: Vai tā ir? 2069 01:21:50,040 --> 01:21:52,500 ROB: Es nedomāju, ka tas ir going-- Es domāju tas notiek, lai palaistu off uz labo pusi. 2070 01:21:52,500 --> 01:21:53,791 Davin: Labi, tāpēc es darīšu šo vienu. 2071 01:21:53,791 --> 01:21:56,250 Un tad jūs vienkārši ielieciet to uz ekrāna. 2072 01:21:56,250 --> 01:21:57,150 >> ROB: Nu labi. 2073 01:21:57,150 --> 01:21:58,190 >> Davin: Jūs vēlaties būt mans mācītājs? 2074 01:21:58,190 --> 01:21:58,600 >> ROB: Jā. 2075 01:21:58,600 --> 01:21:59,100 >> Davin: Nice. 2076 01:21:59,100 --> 01:22:01,210 2077 01:22:01,210 --> 01:22:02,727 Labi, es varu izdzēst šo? 2078 01:22:02,727 --> 01:22:04,188 >> STUDENTU: Jā. 2079 01:22:04,188 --> 01:22:05,162 >> Davin: Tas ir tik grūti. 2080 01:22:05,162 --> 01:22:10,032 2081 01:22:10,032 --> 01:22:12,062 (Dziedāšana) Jūs darāt ko jūs darāt. 2082 01:22:12,062 --> 01:22:14,454 Un darīt to, ko jūs darāt nav. 2083 01:22:14,454 --> 01:22:14,954 Labi. 2084 01:22:14,954 --> 01:22:19,790 2085 01:22:19,790 --> 01:22:22,930 >> Labi, ja pareizi atceros, par viktorīna RandomInt bija, piemēram, 2086 01:22:22,930 --> 01:22:26,190 Labi, es esmu gatavojas sniegt jums divas skaitļi, piemēram, ka a un b. 2087 01:22:26,190 --> 01:22:30,380 Un es gribu, lai jūs man RandomInt starp šiem skaitļiem. 2088 01:22:30,380 --> 01:22:33,440 Tātad RandomInt notiek lietot divas numbers-- 2089 01:22:33,440 --> 01:22:41,690 tāpēc RandomInt-- un tas ir gatavojas atgriezties int. 2090 01:22:41,690 --> 01:22:42,930 >> Tātad, kas ir atgriešanās vērtība? 2091 01:22:42,930 --> 01:22:44,151 Es tikai teicu tevi. 2092 01:22:44,151 --> 01:22:44,650 Int, vai ne? 2093 01:22:44,650 --> 01:22:46,400 2094 01:22:46,400 --> 01:22:49,260 Kā šis, un tad tas ir gatavojas veikt divas Ints. 2095 01:22:49,260 --> 01:22:56,301 Tātad, tas notiek, lai int un int b, piemēram, ka. 2096 01:22:56,301 --> 01:22:58,217 Tātad, kas ir RandomInt gatavojas darīt, ir tas, kas notiek 2097 01:22:58,217 --> 01:23:02,440 atgriezties daži izlases vērtību starp šīm divām vērtībām. 2098 01:23:02,440 --> 01:23:05,140 Tātad tas būs lielāks nekā mazāk nekā b. 2099 01:23:05,140 --> 01:23:09,020 Tāpēc es domāju, ka jūs varat droši pieņemt, ka ir mazāka par divām vērtībām. 2100 01:23:09,020 --> 01:23:12,210 Tātad, ja mums ir darīšana ar nejaušības, kādu funkciju 2101 01:23:12,210 --> 01:23:14,825 mēs esam redzējuši, ka dod mums izlases lietām? 2102 01:23:14,825 --> 01:23:15,450 STUDENTU: Drand. 2103 01:23:15,450 --> 01:23:16,506 Davin: Drand, tieši tā. 2104 01:23:16,506 --> 01:23:18,630 Tātad jūs gatavojas, iespējams vēlaties izmantot savu drand. 2105 01:23:18,630 --> 01:23:19,940 2106 01:23:19,940 --> 01:23:29,160 Tātad jūs varat teikt int izlases, un mēs tikai teikt, tas ir vienāds ar 0 tieši tagad. 2107 01:23:29,160 --> 01:23:30,170 2108 01:23:30,170 --> 01:23:38,690 Un viņi, mēs esam gatavojas teikt, Labi, izlases vienādības drand 48. 2109 01:23:38,690 --> 01:23:39,747 2110 01:23:39,747 --> 01:23:40,830 Un ko tas atgrieztos? 2111 01:23:40,830 --> 01:23:43,742 Ko šī funkcija dod jums? 2112 01:23:43,742 --> 01:23:45,610 >> STUDENTU: Starp 0 un 1. 2113 01:23:45,610 --> 01:23:47,870 >> Davin: Jā, starp 0 un 1. 2114 01:23:47,870 --> 01:23:48,890 Tātad, tas notiek, lai be-- 2115 01:23:48,890 --> 01:23:51,070 >> ROB: Un šī is-- es domāju mēs jums to pateiks. 2116 01:23:51,070 --> 01:23:52,670 Tāpat kā, jūs varat izmantot drand 48. 2117 01:23:52,670 --> 01:23:54,350 Jūs varat pārbaudīt šo par pēdējo eksāmenu. 2118 01:23:54,350 --> 01:23:56,720 Bet mēs droši vien teiktu jūs var izmantot drand 48, kas 2119 01:23:56,720 --> 01:23:58,790 atgriež pludiņš starp 0 un 1. 2120 01:23:58,790 --> 01:24:00,830 >> Davin: Jā, jā, es esmu diezgan pārliecināts, ka uz eksāmenu 2121 01:24:00,830 --> 01:24:03,860 tā saka jums, iespējams, vēlaties izmantot drand, jā. 2122 01:24:03,860 --> 01:24:07,041 Tātad, tas notiek, lai atgrieztos daži vērtība starp 0 un 1. 2123 01:24:07,041 --> 01:24:08,790 Un tad kādi ir jums gatavojas vēlaties darīt? 2124 01:24:08,790 --> 01:24:16,360 Nu, jūs vēlaties reizināt pēc-- pagaidiet, es domāju, ka tas ir, piemēram, tas, piedodiet. 2125 01:24:16,360 --> 01:24:18,018 Es ņemšu tikai darīt. 2126 01:24:18,018 --> 01:24:19,410 Es nezinu. 2127 01:24:19,410 --> 01:24:22,240 >> Tātad b mīnus. 2128 01:24:22,240 --> 01:24:23,310 2129 01:24:23,310 --> 01:24:24,490 Tātad, kāpēc b mīnus? 2130 01:24:24,490 --> 01:24:26,110 2131 01:24:26,110 --> 01:24:30,490 Tātad pieņemsim, ka drand dod jums atpakaļ int-- Labi, es ņemšu tikai darīt pārējo, 2132 01:24:30,490 --> 01:24:33,380 tik plus. 2133 01:24:33,380 --> 01:24:36,130 Tātad, kas does-- y ir b mīnus. 2134 01:24:36,130 --> 01:24:40,670 Tātad pieņemsim, ka drand dod jums atpakaļ maksimālā vērtība, ko tā, iespējams, varētu 2135 01:24:40,670 --> 01:24:41,410 dot jums. 2136 01:24:41,410 --> 01:24:42,409 Kas tas būs? 2137 01:24:42,409 --> 01:24:43,010 STUDENTU: 1. 2138 01:24:43,010 --> 01:24:44,430 >> Davin: 1, vai ne? 2139 01:24:44,430 --> 01:24:47,880 Tātad, ja tas ir 1, un jūs esat reizinot to ar b mīnus, 2140 01:24:47,880 --> 01:24:50,110 labi, tas ir tikai Atšķirība starp mīnus A. 2141 01:24:50,110 --> 01:24:52,870 Un, ja jūs pēc tam piebilst, ka atpakaļ uz, kas ir tas, ko? 2142 01:24:52,870 --> 01:24:54,290 2143 01:24:54,290 --> 01:24:55,180 Tas ir būtībā b. 2144 01:24:55,180 --> 01:24:56,435 2145 01:24:56,435 --> 01:24:57,310 Vai tas ir jēga? 2146 01:24:57,310 --> 01:24:57,851 >> STUDENTU: Jā. 2147 01:24:57,851 --> 01:24:59,480 2148 01:24:59,480 --> 01:25:02,170 >> Davin: Tātad, ja tas ir maksimālais vērtējam to, iespējams, varētu būt, 2149 01:25:02,170 --> 01:25:03,175 tas būs 1. 2150 01:25:03,175 --> 01:25:04,122 2151 01:25:04,122 --> 01:25:06,330 Un tad tas ir tikai atšķirība starp diviem. 2152 01:25:06,330 --> 01:25:11,410 Pievienot uz, tāpēc tas ir gatavojas atgriezties izlases. 2153 01:25:11,410 --> 01:25:15,000 2154 01:25:15,000 --> 01:25:18,620 Un ar stūra gadījumā, drand dod jums atpakaļ 1, 2155 01:25:18,620 --> 01:25:20,970 izlases būs tikai efektīvi b. 2156 01:25:20,970 --> 01:25:22,700 Bet tas ir maksimālais tas var būt. 2157 01:25:22,700 --> 01:25:27,420 Tātad, ja tas būs mazāks nekā ka, tāpēc pieņemsim, ka tā, piemēram, 0.9, 2158 01:25:27,420 --> 01:25:31,080 tā tad 0,9 reizes atņemot b būs mazāk 2159 01:25:31,080 --> 01:25:33,230 kā starpību starp b mīnus. 2160 01:25:33,230 --> 01:25:35,830 >> Un tad, ja jūs pievienojat, ka uz, tad šī vērtība ir 2161 01:25:35,830 --> 01:25:38,986 būs lielāks nekā, jo jūs pievienot kaut ko uz to, 2162 01:25:38,986 --> 01:25:40,360 bet tas būs mazāks nekā b. 2163 01:25:40,360 --> 01:25:41,430 2164 01:25:41,430 --> 01:25:44,420 Tātad jūs esat gatavojas iegūt izlases numuru, tāpēc, ka jūs zvanāt drand. 2165 01:25:44,420 --> 01:25:48,000 Un tas Rand, ka izlases skaits ir būs kaut kur pa vidu 2166 01:25:48,000 --> 01:25:49,342 un b. 2167 01:25:49,342 --> 01:25:50,780 Vai tas ir jēga? 2168 01:25:50,780 --> 01:25:52,990 >> ROB: Tikai, lai nodot to konkrēti skaitļi, tāpēc 2169 01:25:52,990 --> 01:25:55,450 pieņemsim, ka mēs vēlamies, lai izvēlētos izlases numuru no 7 līdz 10. 2170 01:25:55,450 --> 01:25:56,960 Tātad b mīnus ir mūsu diapazons. 2171 01:25:56,960 --> 01:26:00,150 Tātad ir virkne trīs skaitļi mēs vēlamies no kuriem izvēlēties. 2172 01:26:00,150 --> 01:26:03,290 Un tad reizinot ka starp 0 un 1 1, 2173 01:26:03,290 --> 01:26:07,430 ja kas, tad dod mums some-- pieņemsim, ka dod mums 1.5. 2174 01:26:07,430 --> 01:26:10,670 >> Tad 1.5, mēs gribam iet 7-10. 2175 01:26:10,670 --> 01:26:14,470 Tātad 1.5 plus 7 mūs atpakaļ mūsu 7. līdz 10. diapazonā. 2176 01:26:14,470 --> 01:26:17,580 Un tad mēs esam tā glabāšanu iekšpusē skaitlis, tāpēc tas saīsināts līdz 8. 2177 01:26:17,580 --> 01:26:18,790 Un tad mēs vienkārši atgriezties to. 2178 01:26:18,790 --> 01:26:21,310 Tātad b mīnus ir mūsu diapazons. 2179 01:26:21,310 --> 01:26:25,770 maiņās to augšup numuriem ka mēs vēlamies šajā diapazonā. 2180 01:26:25,770 --> 01:26:30,540 Tātad no 7 līdz 10, un tad mēs var atgriezties, ko mēs galu galā ar. 2181 01:26:30,540 --> 01:26:32,684 >> Davin: Jā, jauki. 2182 01:26:32,684 --> 01:26:34,470 >> ROB: Paldies. 2183 01:26:34,470 --> 01:26:35,628 >> Davin: Jā, kas notiek? 2184 01:26:35,628 --> 01:26:39,746 >> STUDENTU: Vai mēs palaist to, lai jebkura veida ASCII kļūdas kad we're-- ja drand ir 2185 01:26:39,746 --> 01:26:40,996 atgriežoties peldēt [nedzirdama]. 2186 01:26:40,996 --> 01:26:42,470 2187 01:26:42,470 --> 01:26:45,360 >> ROB: Tātad tāpat kā Rob teica, jo izlases nav int, 2188 01:26:45,360 --> 01:26:47,080 tāpēc drand būs pludiņš. 2189 01:26:47,080 --> 01:26:48,470 Tik un tad reizina out. 2190 01:26:48,470 --> 01:26:50,507 Un jūs varētu saņemt kādu veida pludiņu numuriem. 2191 01:26:50,507 --> 01:26:51,840 Un tad tas notiek, lai saīsināt. 2192 01:26:51,840 --> 01:26:52,339 >> STUDENTU: OK. 2193 01:26:52,339 --> 01:26:53,019 Davin: Jā. 2194 01:26:53,019 --> 01:26:56,060 ROB: Un, ja kompilators būtu brīdināt tu par, piemēram, precizitātes zudums, 2195 01:26:56,060 --> 01:26:58,986 vienkārši izmet int in tur, un tad tas ir labi. 2196 01:26:58,986 --> 01:27:00,398 2197 01:27:00,398 --> 01:27:00,898 Davin: Jā? 2198 01:27:00,898 --> 01:27:02,332 2199 01:27:02,332 --> 01:27:04,722 >> STUDENTU: Vai tas ir pati varbūtība iegūt, 2200 01:27:04,722 --> 01:27:06,156 tamlīdzīgi, b vai [nedzirdama]? 2201 01:27:06,156 --> 01:27:08,080 2202 01:27:08,080 --> 01:27:10,980 >> ROB: Tātad is-- es esmu patiešām wondering-- ir RandomInt šķietamo 2203 01:27:10,980 --> 01:27:14,362 būt skaitli no līdz mazāk nekā b? 2204 01:27:14,362 --> 01:27:16,820 Tāpat kā, ja tas ir no 7 līdz 10, kādas ir iespējas? 2205 01:27:16,820 --> 01:27:18,454 7, 8 un 9, vai 7, 8, 9, 10? 2206 01:27:18,454 --> 01:27:19,120 Davin: es aizmirstu. 2207 01:27:19,120 --> 01:27:19,880 Par problēmu set-- 2208 01:27:19,880 --> 01:27:20,570 >> ROB: Es domāju, ka tas ir 7, 8, 9. 2209 01:27:20,570 --> 01:27:22,785 >> Davin: Tas īpaši teikts savām iekļaujošu un viens ir ekskluzīvs. 2210 01:27:22,785 --> 01:27:23,110 >> ROB: Jā. 2211 01:27:23,110 --> 01:27:23,670 >> Davin: Bet es don't-- es esmu not-- 2212 01:27:23,670 --> 01:27:25,878 >> ROB: Tāpēc es domāju, ka šie ir nav iekļauti, un šādā gadījumā, 2213 01:27:25,878 --> 01:27:28,152 tur ir vienāda varbūtība, 7., 8., un 9.. 2214 01:27:28,152 --> 01:27:29,360 Nav varbūtība 10. 2215 01:27:29,360 --> 01:27:31,770 2216 01:27:31,770 --> 01:27:32,270 Davin: Jā? 2217 01:27:32,270 --> 01:27:33,395 STUDENTU: Man ir jautājums. 2218 01:27:33,395 --> 01:27:38,090 Mēs vēlamies, lai definētu funkciju atgriež ne vienu vērtību, bet masīvs. 2219 01:27:38,090 --> 01:27:41,020 Tad kāda būtu sintakse pēc atgriešanās? 2220 01:27:41,020 --> 01:27:44,604 >> Davin: Labi, lai tad jūs would-- pēc atgriešanās? 2221 01:27:44,604 --> 01:27:47,020 Tātad, pieņemsim, ka jums bija deklarēta masīvs kaut kur tur augšā. 2222 01:27:47,020 --> 01:27:49,708 Tad jūs vēlētos atgriezties nosaukumu masīva. 2223 01:27:49,708 --> 01:27:50,676 >> STUDENTU: Labi, paldies. 2224 01:27:50,676 --> 01:27:51,718 Tad vienkārši atgriezties ar a-- 2225 01:27:51,718 --> 01:27:52,759 Davin: Oh wait, tik žēl. 2226 01:27:52,759 --> 01:27:54,620 Jautājums bija, cik jūs atgriezties masīvs. 2227 01:27:54,620 --> 01:27:56,170 >> ROB: gan tas nevarēja jādeklarē masīvs 2228 01:27:56,170 --> 01:27:57,260 uz skursteņa vai kaut kā tā. 2229 01:27:57,260 --> 01:27:59,510 Tas būtu kaut kas malloced, jo malloc 2230 01:27:59,510 --> 01:28:01,610 ir, kā jums apkārt automātiska atmiņas sadalījumu. 2231 01:28:01,610 --> 01:28:02,109 >> Davin: Jā. 2232 01:28:02,109 --> 01:28:03,433 2233 01:28:03,433 --> 01:28:04,933 ROB: Kā jums apkārt vietējā jomu. 2234 01:28:04,933 --> 01:28:09,670 2235 01:28:09,670 --> 01:28:11,550 >> Davin: Bet jūs būtu vienkārši atgriezties savu name-- 2236 01:28:11,550 --> 01:28:17,890 >> STUDENTU: [dzirdams] tas nav viens vērtību, piemēram, divi numuri, lai 2237 01:28:17,890 --> 01:28:18,390 [Nedzirdama]. 2238 01:28:18,390 --> 01:28:19,590 >> Davin: Jūs nevarat atgriezties vairākas numuru. 2239 01:28:19,590 --> 01:28:20,850 Jūs nevarat, piemēram, return-- 2240 01:28:20,850 --> 01:28:23,630 >> STUDENTU: Es runāju par atgriešanos masīvs vai kaut kas tamlīdzīgs. 2241 01:28:23,630 --> 01:28:26,050 >> Davin: Jā, tāpēc jautājums ir es varu atgriezties vairākas vērtības. 2242 01:28:26,050 --> 01:28:27,460 Jūs nevarat atgriezties vairākas vērtības. 2243 01:28:27,460 --> 01:28:30,270 Jūs nevarat, piemēram, atgriešanās tad atgriezties b vai kaut kas tamlīdzīgs. 2244 01:28:30,270 --> 01:28:32,710 Tāpēc, ka pēc tam, kad jūs atgrieztos, jums atgriežas no funkciju. 2245 01:28:32,710 --> 01:28:35,790 Un tad funkcija tiek darīts, un piemēram, Rob teica, ir uz skursteņa. 2246 01:28:35,790 --> 01:28:38,260 >> Lai visi, atmiņa tikai kļūst atpakaļ uz datora. 2247 01:28:38,260 --> 01:28:40,025 Viss tiek aizmirsts, būtībā. 2248 01:28:40,025 --> 01:28:41,480 2249 01:28:41,480 --> 01:28:44,430 Tātad, ja jūs vēlaties, lai atgrieztos vairāku vērtībām, jums ir jāatgriežas masīvs, 2250 01:28:44,430 --> 01:28:45,971 Un, kā jūs darīt, ir mallocing. 2251 01:28:45,971 --> 01:28:48,780 Un tad jūs varētu atgriezties x tāpat. 2252 01:28:48,780 --> 01:28:50,280 Būtībā, jums vienkārši atgriezties vārdu. 2253 01:28:50,280 --> 01:28:51,620 Un, kad jūs atgrieztos kaut kas līdzīgs šim, jūs esat 2254 01:28:51,620 --> 01:28:53,200 faktiski neatgriezīsies vērtību. 2255 01:28:53,200 --> 01:28:55,430 >> Tātad, pieņemsim, ka tu glabā vērtības masīvā. 2256 01:28:55,430 --> 01:28:57,910 Tu neesi faktiski šīs vērtības atgriežas. 2257 01:28:57,910 --> 01:29:01,515 Tāpat kā, ja es atgriezos int, es esmu tiešām atgriežoties kopijas vērtībām. 2258 01:29:01,515 --> 01:29:02,017 2259 01:29:02,017 --> 01:29:03,850 Bet, ja es būtu, lai atgrieztos kaut kas līdzīgs šim, 2260 01:29:03,850 --> 01:29:06,450 Es esmu atpakaļ atsauce Pie šīm vērtībām. 2261 01:29:06,450 --> 01:29:09,090 Tāpēc es esmu atpakaļ, būtībā, atmiņas adrese vērtībām. 2262 01:29:09,090 --> 01:29:10,079 Vai tas ir jēga? 2263 01:29:10,079 --> 01:29:10,620 STUDENTU: Jā. 2264 01:29:10,620 --> 01:29:11,120 Davin: Nice. 2265 01:29:11,120 --> 01:29:12,760 2266 01:29:12,760 --> 01:29:13,410 Jā? 2267 01:29:13,410 --> 01:29:15,430 >> STUDENTU: Kad esat izmantojot drand nekā šeit, 2268 01:29:15,430 --> 01:29:17,660 Vai jums ir likts srand pirms tam? 2269 01:29:17,660 --> 01:29:20,320 >> Davin: Nē, nē, es tā nedomāju. 2270 01:29:20,320 --> 01:29:23,040 >> ROB: Jā, tāpēc jums ir neko srand teikt? 2271 01:29:23,040 --> 01:29:26,900 Jums Noklusējuma nekad sakot srand vispār, ir tikai darīt srand no null. 2272 01:29:26,900 --> 01:29:29,350 Tātad drand savā strādās. 2273 01:29:29,350 --> 01:29:33,759 Un tas automātiski sēklas ar pašreizējais laiks, ir tas, ko tā izmanto. 2274 01:29:33,759 --> 01:29:35,175 2275 01:29:35,175 --> 01:29:35,675 Davin: Jā? 2276 01:29:35,675 --> 01:29:40,950 STUDENTU: Vai jūs [dzirdams] ar skaitļiem? 2277 01:29:40,950 --> 01:29:42,570 Davin: Jā, tas ir iespējams. 2278 01:29:42,570 --> 01:29:46,770 STUDENTU: Tātad jūs varētu saka, piemēram, 4 reizes 2. 2279 01:29:46,770 --> 01:29:50,280 Lieta ir, jūs nevarat pieņemt tad int ir četri baiti. 2280 01:29:50,280 --> 01:29:51,020 Only-- 2281 01:29:51,020 --> 01:29:53,830 >> Davin: Es domāju, lai viktorīnas varat. 2282 01:29:53,830 --> 01:29:54,830 [Smejas] 2283 01:29:54,830 --> 01:29:55,780 >> ROB: Mm, nē. 2284 01:29:55,780 --> 01:29:56,780 Davin: Jā, jā, tas ir iespējams. 2285 01:29:56,780 --> 01:30:00,197 Ja viņi jums jautāt, cik liels ir int, Jūs nevarat būt, piemēram, četriem vai astoņiem. 2286 01:30:00,197 --> 01:30:02,030 ROB: Ak, tādēļ, ja Jautājums ir īpaši, 2287 01:30:02,030 --> 01:30:04,857 tāpat, ja tas ir kodēšanas problēma, Jums vajadzētu teikt lielumu int. 2288 01:30:04,857 --> 01:30:06,690 Ja tas ir galds, vai tā saka, cik daudz baiti, 2289 01:30:06,690 --> 01:30:08,808 jums nevajadzētu aizpildīt lieluma Ints. 2290 01:30:08,808 --> 01:30:11,278 >> Studenti: [smejas] 2291 01:30:11,278 --> 01:30:18,210 2292 01:30:18,210 --> 01:30:20,580 >> Davin: pa kreisi, tad kāpēc ir lielums int svarīgs šeit? 2293 01:30:20,580 --> 01:30:23,085 Tātad, piemēram, ja mēs ejam uz 32-bit procesors vai kaut kas tamlīdzīgs, 2294 01:30:23,085 --> 01:30:24,300 tad tas būs četri baiti. 2295 01:30:24,300 --> 01:30:26,342 Bet par dažiem no jaunāku sīkumi, tas varētu būt, ko? 2296 01:30:26,342 --> 01:30:27,383 Tas varētu būt astoņi, vai ne? 2297 01:30:27,383 --> 01:30:30,550 Tātad this-- ja jūs vienkārši grūti kods četri, Pēc tam uz dažām mašīnām, tas darbosies. 2298 01:30:30,550 --> 01:30:32,180 Dažas mašīnas, tas nedarbosies. 2299 01:30:32,180 --> 01:30:35,270 Bet, ja uz viktorīnas mums esi piemēram, cik liela ir int? 2300 01:30:35,270 --> 01:30:35,770 Put četri. 2301 01:30:35,770 --> 01:30:38,710 2302 01:30:38,710 --> 01:30:39,210 ROB: Labais. 2303 01:30:39,210 --> 01:30:39,790 Davin: Yeah? 2304 01:30:39,790 --> 01:30:43,192 STUDENTU: Tāpēc, ka mēs esam deklarējot [Dzirdams] iekšpusē funkciju, 2305 01:30:43,192 --> 01:30:45,622 mums vajadzētu likt 3 iekšā šo funkciju? 2306 01:30:45,622 --> 01:30:46,907 Vai arī mēs varam izmantot to ārā? 2307 01:30:46,907 --> 01:30:48,740 Davin: Jūs varat izmantot to ārpus šīs funkcijas. 2308 01:30:48,740 --> 01:30:49,890 Tāpēc viņš lūdz par brīvu. 2309 01:30:49,890 --> 01:30:51,700 >> STUDENTU: pazaudēt no tā, kur [nedzirdama]. 2310 01:30:51,700 --> 01:30:54,720 >> ROB: Ak, bezmaksas nav happen-- kas ir daļa no burvju malloc 2311 01:30:54,720 --> 01:30:57,220 ir tas, ka jūs neesat tikai vietēja mēroga. 2312 01:30:57,220 --> 01:31:00,700 Jums ir pilnīga kontrole pār cik ilgi jūsu mainīgie dzīvot. 2313 01:31:00,700 --> 01:31:05,380 Tātad, mēs saucam malloc šeit, tas varētu būt pilnīgi atsevišķa funkcija. 2314 01:31:05,380 --> 01:31:08,670 Tas varētu būt 10 stundas vēlāk ka mēs beidzot zvanīt bez. 2315 01:31:08,670 --> 01:31:11,764 >> Davin: Tā, piemēram, kā, piemēram, pāris nedēļas no tagad, kad jūs beidzot 2316 01:31:11,764 --> 01:31:13,680 darīt savu vārdnīcu Speller psets, jūs gatavojas 2317 01:31:13,680 --> 01:31:16,410 lai ir dažas funkcijas, kas rada tonnas mezgliem. 2318 01:31:16,410 --> 01:31:18,630 Tātad jūs mallocing tonnas mezglu šo funkciju. 2319 01:31:18,630 --> 01:31:20,670 Un tad vēlāk atsevišķa funkcija, jūs esat 2320 01:31:20,670 --> 01:31:22,440 gatavojas vēlaties, lai atbrīvotu visus šos mezglus. 2321 01:31:22,440 --> 01:31:25,740 Tātad jūs varat burtiski vienkārši pāriet bezmaksas rādītāju, tāpēc atmiņas adresi 2322 01:31:25,740 --> 01:31:26,684 ko jūs malloced. 2323 01:31:26,684 --> 01:31:27,600 Un tas būs labi. 2324 01:31:27,600 --> 01:31:29,725 Jums nav atbrīvot, , piemēram, tajā pašā funkciju. 2325 01:31:29,725 --> 01:31:30,449 Jā? 2326 01:31:30,449 --> 01:31:36,197 >> STUDENTU: Tātad malloc mainīgais [dzirdams] ārpus? 2327 01:31:36,197 --> 01:31:37,384 Ir tas, ka to, ko jūs sakāt? 2328 01:31:37,384 --> 01:31:38,300 Davin: Pagaidiet, saka, ka? 2329 01:31:38,300 --> 01:31:38,800 Piedodiet. 2330 01:31:38,800 --> 01:31:42,300 >> STUDENTU: Ja malloc mainīgais var brīvi jebkur kodu, 2331 01:31:42,300 --> 01:31:44,800 Tad viņi var piekļūt jebkur kodu? 2332 01:31:44,800 --> 01:31:45,800 Vai jūs varat saglabāt to vietējo? 2333 01:31:45,800 --> 01:31:47,880 >> Davin: Ak, viņa jautāja, piemēram, mainīgs, like-- 2334 01:31:47,880 --> 01:31:51,300 2335 01:31:51,300 --> 01:31:55,510 >> ROB: Tātad jums joprojām ir nepieciešams ir sava veida atskaites veida 2336 01:31:55,510 --> 01:31:57,220 ar malloc bloks atmiņas. 2337 01:31:57,220 --> 01:31:58,540 Tātad šeit, mēs esam atgriešanās x. 2338 01:31:58,540 --> 01:31:59,040 STUDENTU: Ak. 2339 01:31:59,040 --> 01:32:01,920 ROB: Ja mēs neatgriezās x šeit, un tas bija tikai par spēkā neesošu, 2340 01:32:01,920 --> 01:32:04,550 tad mums nebūtu pieejami rādītājs, kas tika malloced, 2341 01:32:04,550 --> 01:32:05,920 un tas ir noplūdis atmiņu. 2342 01:32:05,920 --> 01:32:06,690 >> STUDENTU: OK. 2343 01:32:06,690 --> 01:32:10,010 >> Davin: Tātad, piemēram, teiksim jums ir tas, piemēram, tieši šeit. 2344 01:32:10,010 --> 01:32:10,510 ROB: Nē. 2345 01:32:10,510 --> 01:32:13,430 Davin: Manā galvenā funkcija, es nevaru vienkārši aicinu šo x un jābūt, piemēram, OK, 2346 01:32:13,430 --> 01:32:14,645 šo funkciju, I did this. 2347 01:32:14,645 --> 01:32:14,960 >> ROB: Labais. 2348 01:32:14,960 --> 01:32:17,790 >> Davin: Tātad es esmu dodas uz zvanu x, piemēram, galvenā vai kaut kas tamlīdzīgs. 2349 01:32:17,790 --> 01:32:18,540 Jūs nevarat darīt. 2350 01:32:18,540 --> 01:32:19,600 Jūs gatavojas atgriezties kaut ko. 2351 01:32:19,600 --> 01:32:21,000 Bet tas, ko jūs gatavojas atgriezties? 2352 01:32:21,000 --> 01:32:22,130 Jūs gatavojas atgriezties atmiņas adresi. 2353 01:32:22,130 --> 01:32:25,130 Un tāpēc, ka jūs atpakaļ atmiņas adrese, kas var piekļūt kaut kur citur. 2354 01:32:25,130 --> 01:32:27,262 2355 01:32:27,262 --> 01:32:28,255 Kādi jautājumi? 2356 01:32:28,255 --> 01:32:28,755 Jā? 2357 01:32:28,755 --> 01:32:31,213 >> STUDENTU: Vai funkcija iepriekš ir pārbaude [dzirdams]? 2358 01:32:31,213 --> 01:32:33,270 2359 01:32:33,270 --> 01:32:35,005 >> Davin: Kāpēc man nav nepieciešams to darīt? 2360 01:32:35,005 --> 01:32:35,880 STUDENTU: [dzirdams]. 2361 01:32:35,880 --> 01:32:37,755 Davin: Tāpēc, ka tu esi nav mallocing neko. 2362 01:32:37,755 --> 01:32:39,640 Tātad, tas ir not-- yeah, tas ir nepatīk virknes s. 2363 01:32:39,640 --> 01:32:41,160 Tas ir rādītājs kaut kur. 2364 01:32:41,160 --> 01:32:42,951 Tie ir tikai vērtības. 2365 01:32:42,951 --> 01:32:43,450 STUDENTU: OK. 2366 01:32:43,450 --> 01:32:43,949 Davin: Jā. 2367 01:32:43,949 --> 01:32:47,600 2368 01:32:47,600 --> 01:32:48,470 Kaut kas cits? 2369 01:32:48,470 --> 01:32:48,970 ROB: Yep? 2370 01:32:48,970 --> 01:32:50,386 STUDENTU: Bet, kad jūs [dzirdams]? 2371 01:32:50,386 --> 01:32:55,050 2372 01:32:55,050 --> 01:32:58,690 >> ROB: Tātad, lai atbrīvotu atmiņa, mēs teiktu šeit. 2373 01:32:58,690 --> 01:33:01,350 Tātad x ir mūsu rādītājs uz bloks atmiņas. 2374 01:33:01,350 --> 01:33:02,845 Mēs atbrīvotu šo rādītāju. 2375 01:33:02,845 --> 01:33:04,470 Un mēs ne vienmēr darīt to šeit. 2376 01:33:04,470 --> 01:33:05,390 Mēs varam to darīt jebkur. 2377 01:33:05,390 --> 01:33:10,400 Bet jūs tikai zvanīt bez maksas kaut kas malloc atdevi. 2378 01:33:10,400 --> 01:33:12,940 Tātad malloc, šeit, atgriezās kas tiek glabāti x. 2379 01:33:12,940 --> 01:33:14,802 Tātad, mēs varam zvanīt bezmaksas x. 2380 01:33:14,802 --> 01:33:18,730 2381 01:33:18,730 --> 01:33:20,556 Jebkuras pēdējie jautājumi? 2382 01:33:20,556 --> 01:33:21,701 >> Davin: Jebkurš pēdējie jautājumi? 2383 01:33:21,701 --> 01:33:22,200 Yeah? 2384 01:33:22,200 --> 01:33:25,152 >> STUDENTU: Atvainojiet, jūs varat atkārtoti paskaidrot kāpēc jūs atbrīvotu tur? 2385 01:33:25,152 --> 01:33:26,630 Kāpēc [dzirdams]? 2386 01:33:26,630 --> 01:33:27,774 >> Davin: Jo šeit? 2387 01:33:27,774 --> 01:33:29,109 >> STUDENTU: Jā, piemēram, uzreiz pēc. 2388 01:33:29,109 --> 01:33:30,900 Davin: Jūs, iespējams, negribu bezmaksas šeit. 2389 01:33:30,900 --> 01:33:31,630 ROB: Jūs, iespējams, nebūtu. 2390 01:33:31,630 --> 01:33:33,060 Davin: Jā, tā tas varētu darīt neko. 2391 01:33:33,060 --> 01:33:35,220 Tas, piemēram, izveidot atmiņa, darīt stuff ar to, 2392 01:33:35,220 --> 01:33:37,390 un tad uzreiz aizmirst par to, yeah. 2393 01:33:37,390 --> 01:33:39,850 >> ROB: Bet mēs varētu darīt, piemēram, šeit kāda iemesla dēļ. 2394 01:33:39,850 --> 01:33:43,902 Mēs varētu teikt int zvaigzni y vienāds atgriešanās masīvs. 2395 01:33:43,902 --> 01:33:47,900 Vai daži sīkumi ar y, varbūt drukāt saturu. 2396 01:33:47,900 --> 01:33:49,350 Un tad, visbeidzot, mēs esam darīts. 2397 01:33:49,350 --> 01:33:50,626 Mēs varam brīvi vec. 2398 01:33:50,626 --> 01:33:51,501 STUDENTU: [dzirdams]. 2399 01:33:51,501 --> 01:33:57,839 2400 01:33:57,839 --> 01:33:59,005 Davin: Ja es ritiniet uz leju? 2401 01:33:59,005 --> 01:34:00,445 Paldies. 2402 01:34:00,445 --> 01:34:00,945 ROB: Nice. 2403 01:34:00,945 --> 01:34:02,400 2404 01:34:02,400 --> 01:34:03,646 >> Davin: Labi, tas arī viss. 2405 01:34:03,646 --> 01:34:04,520 ROB: Labi, labi. 2406 01:34:04,520 --> 01:34:05,070 Good luck. 2407 01:34:05,070 --> 01:34:06,800 >> Davin: Ja jums ir jautājumi, rakstiet mums. 2408 01:34:06,800 --> 01:34:08,670 Good luck. 2409 01:34:08,670 --> 01:34:10,283