1 00:00:00,000 --> 00:00:06,180 2 00:00:06,180 --> 00:00:07,820 >> JASON Hirschhorn: Welcome A5, hər kəsin. 3 00:00:07,820 --> 00:00:11,270 Biz qarşımızda bir maraqlı həftə bir çox yeni var, çünki əsasən 4 00:00:11,270 --> 00:00:12,350 Bu otaqda üzləşir. 5 00:00:12,350 --> 00:00:12,920 Bu gözəl deyil. 6 00:00:12,920 --> 00:00:15,740 Siz bir çox qəza burada, hətta yaxşıdır. 7 00:00:15,740 --> 00:00:18,220 Belə ki, inşallah bizə qoşulmaq saxlamaq lazımdır. 8 00:00:18,220 --> 00:00:20,220 >> Bu həftə sərf etmək olacaq hissəsinin toplu 9 00:00:20,220 --> 00:00:21,870 viktorina üçün hazırlaşır. 10 00:00:21,870 --> 00:00:26,580 Gündemimizde başına Beləliklə, biz danışmaq olacaq sinfi üçün resursları haqqında bir az, 11 00:00:26,580 --> 00:00:30,350 həm də viktorina üçün, və sonra, yenə, sinif söhbət hissəsini sərf 12 00:00:30,350 --> 00:00:31,390 suallar. 13 00:00:31,390 --> 00:00:33,900 Biz cavab tamamlayın Sizin suallar, və ya əgər suallar 14 00:00:33,900 --> 00:00:39,010 təbii, bəzi kodlaşdırma bizə gətirib midterms nümunə problemləri var 15 00:00:39,010 --> 00:00:43,180 biz bölməsində canlı kod ki, keçmiş birlikdə də bəzi digər yetişdirmək ki, 16 00:00:43,180 --> 00:00:45,420 əhatə yaxşı mövzular. 17 00:00:45,420 --> 00:00:48,280 >> Belə ki, ilk, biz vasitəsilə getdi etdiyiniz kimi sizə xatırlatmaq həftə son bir neçə 18 00:00:48,280 --> 00:00:51,700 uşaqlar, ehtiyatların bir ton var Bu kurs üçün mövcuddur. 19 00:00:51,700 --> 00:00:55,020 Onların bir çoxu olduqca faydalı olacaq sizə davam kimi 20 00:00:55,020 --> 00:00:57,280 , viktorina 0 öyrənmək çünki bu çərşənbə axşamı günortadan sonra var. 21 00:00:57,280 --> 00:00:59,630 Belə ki, sizin hamınızı olmuşdur bir az oxuyur. 22 00:00:59,630 --> 00:01:02,640 >> Mühazirə qeydləri və mənbə var kodu lazımdır ki, 23 00:01:02,640 --> 00:01:04,050 mütləq kontrol. 24 00:01:04,050 --> 00:01:05,019 Şort baxın. 25 00:01:05,019 --> 00:01:07,470 Study.cs50.net oldu. 26 00:01:07,470 --> 00:01:11,770 Və sonra, bir nömrəli, aşağıdakı digər resursların. 27 00:01:11,770 --> 00:01:14,020 >> Yenə viktorina 0 sabah 1 saat. 28 00:01:14,020 --> 00:01:18,230 Əgər siz artıq yapmadıysanız varsa, yoxlamaq haqqında haqqında Quiz 0 sənədin 29 00:01:18,230 --> 00:01:21,370 anlamaq üçün kurs ana Siz viktorina alaraq olduğunuz. 30 00:01:21,370 --> 00:01:25,770 Viktorina 1:10 başlayır və 70 dəqiqə sonra başa çatır. 31 00:01:25,770 --> 00:01:29,610 Siz 1:10 sonra göstərmək Belə ki, siz ki, çox az dəqiqə almaq üçün gedir 32 00:01:29,610 --> 00:01:30,940 70 viktorina almaq daha. 33 00:01:30,940 --> 00:01:33,570 Belə ki, siz vaxt orada etdiyiniz əmin olun. 34 00:01:33,570 --> 00:01:38,690 Siz uzadılması tələbə etdiyiniz və ya varsa digər test mülahizələr, bu 35 00:01:38,690 --> 00:01:40,400 1 saat sabah ola bilər. 36 00:01:40,400 --> 00:01:43,540 Ancaq yenə də, haqqında Viktorina 0 yoxlamaq Siz zaman bilmək üçün sənəd 37 00:01:43,540 --> 00:01:44,760 Siz viktorina alaraq edirik. 38 00:01:44,760 --> 00:01:46,440 Mən burada 75 dəqiqə yazdı. 39 00:01:46,440 --> 00:01:48,580 Mən 70, doğru deyil düşünürəm. 40 00:01:48,580 --> 00:01:53,420 >> Bu həftə 0 bütün material əhatə edir Çərşənbə günü keçən həftə mühazirə. 41 00:01:53,420 --> 00:01:59,350 Və yenə bu viktorina üçün ki, başına sənəd, bir iki-tərəfli almaq və 8 42 00:01:59,350 --> 00:02:03,770 Siz ki, kağız 11 hesabatı 1/2 viktorina ərzində qeydləri kimi istifadə etmək. 43 00:02:03,770 --> 00:02:08,570 Bir çox insanlar, insanların çoxu var əgər aşkar ki, vahid ən faydalı yolu 44 00:02:08,570 --> 00:02:11,970 viktorina üçün öyrənmək üçün bir iş hesabatı, bir etmək 45 00:02:11,970 --> 00:02:13,730 öz bir-sider. 46 00:02:13,730 --> 00:02:17,710 Belə ki, keçmiş olanları baxsaq keçmiş olanları gördük. 47 00:02:17,710 --> 00:02:19,960 Görmək üçün dostları üçün çata nə Əgər onlar haqqında qoyulması edirik. 48 00:02:19,960 --> 00:02:23,610 >> Amma hands-aşağı, siz ən yaxşı yoldur təhsil hər şey ilə getmək və 49 00:02:23,610 --> 00:02:26,530 nə olmalıdır və ya olmalıdır üçün yavaş-yavaş aşağı ki hesabatında aid deyil 50 00:02:26,530 --> 00:02:30,570 kağız, yalnız bir həqiqətən var, çünki Sizi əmin etmək üçün yararlı bir yol 51 00:02:30,570 --> 00:02:33,620 Siz hər şey keçir və edirik bu bir tanışlıq var. 52 00:02:33,620 --> 00:02:36,690 Çoxu, biz tapmaq baxmayaraq, onlar kağız hesabatı sağ oturan var 53 00:02:36,690 --> 00:02:39,840 viktorina onların yanında, müraciət etmir bu, yenə, çox, çünki 54 00:02:39,840 --> 00:02:43,290 məlumat keçir prosesi onları öyrənmək kömək etmişdir. 55 00:02:43,290 --> 00:02:45,370 >> Heç bir sualınız varmı viktorina 0 haqqında? 56 00:02:45,370 --> 00:02:50,120 57 00:02:50,120 --> 00:02:51,450 Hamı var - 58 00:02:51,450 --> 00:02:53,230 Mən əlində bir şou etmək niyyətində deyiləm. 59 00:02:53,230 --> 00:02:53,550 Mind heç vaxt. 60 00:02:53,550 --> 00:02:54,790 Kim xahiş gedirdi öyrənilməsi başladı. 61 00:02:54,790 --> 00:02:58,360 Amma mən sizə etmək istəmirəm bütün əlləri qaldırmaq deyil. 62 00:02:58,360 --> 00:03:01,290 Mən belə kimi - bəli, Avi, davam. 63 00:03:01,290 --> 00:03:04,205 >> AVI: Nə faydalı bir şey ola bilər bir çağrı cihazı qoymaq? 64 00:03:04,205 --> 00:03:05,875 >> TƏLƏBƏ: Bu qədər var. 65 00:03:05,875 --> 00:03:08,210 >> JASON Hirschhorn: Siz almaq qərar istifadə etmək. 66 00:03:08,210 --> 00:03:13,220 Bir çağrı cihazı qoymaq üçün faydalı şeylər, Siz böyük Ç haqqında səhv əgər 67 00:03:13,220 --> 00:03:17,510 axtarışlar müxtəlif növ iş və növ, bir var ki, qoymaq 68 00:03:17,510 --> 00:03:18,760 lazımlı modabaz chart. 69 00:03:18,760 --> 00:03:22,250 Bu yolla, siz ki, xahiş edirik, əgər viktorina, siz cəhd və rəqəm ehtiyac yoxdur 70 00:03:22,250 --> 00:03:23,560 bu və ya uzunluğu vasitəsilə səbəbi. 71 00:03:23,560 --> 00:03:24,730 Siz yalnız aşağı kopyalaya bilərsiniz. 72 00:03:24,730 --> 00:03:28,320 Siz sınavlar keçmiş, bir çox baxsanız dəfə, vaxt suallara orada çalışan. 73 00:03:28,320 --> 00:03:34,150 Belə ki, bir yaxşı nümunə olacağını Sizin bir-çağrı cihazı qoymaq şey. 74 00:03:34,150 --> 00:03:37,450 >> Değilseniz, qoymaq üçün digər yaxşı şeylər bəyan necə haqqında səhv bir 75 00:03:37,450 --> 00:03:40,570 funksiyası və ya nə müxtəlif hissələri funksiyası bəyannamə yazmaq var 76 00:03:40,570 --> 00:03:43,400 ki, bir ümumi versiyası və sonra bəlkə bir nümunə. 77 00:03:43,400 --> 00:03:47,290 Göstəricilər haqqında səhv edirsinizsə, göstəricilərinə iş necə bir diagram 78 00:03:47,290 --> 00:03:48,660 yəqin ki, həqiqətən faydalı. 79 00:03:48,660 --> 00:03:52,440 Siz recursion, a haqqında səhv edirsinizsə orada recursive funksiyası nümunə 80 00:03:52,440 --> 00:03:54,980 də həqiqətən faydalı ola bilər. 81 00:03:54,980 --> 00:03:57,290 Ki, bir fikir verir? 82 00:03:57,290 --> 00:04:01,820 >> AVI: Siz anlamaq lazımdır kimi bütün tərtib prosesi, 83 00:04:01,820 --> 00:04:03,220 necə bütün işlər ki? 84 00:04:03,220 --> 00:04:06,620 >> JASON Hirschhorn: Hər şey ki, əhatə olunub bilər 85 00:04:06,620 --> 00:04:08,060 viktorina göstərilir. 86 00:04:08,060 --> 00:04:08,930 Suallar - 87 00:04:08,930 --> 00:04:11,300 amma yenə bəzi şeylər olacaq başqaları daha ağırlıqlı. 88 00:04:11,300 --> 00:04:14,330 Bəzi şeylər yenidən gəlmişəm və yenidən sinfində ildə 89 00:04:14,330 --> 00:04:15,590 mühazirə, və bölmə. 90 00:04:15,590 --> 00:04:17,220 Digər şeylər yoxdur ki, tez-tez gəlib. 91 00:04:17,220 --> 00:04:22,900 >> # Daxildir və bir çox söhbət etdik -L bir şey və nə o demək 92 00:04:22,900 --> 00:04:24,390 Tərtibi proses. 93 00:04:24,390 --> 00:04:29,120 Biz suvaşmaq, gdb haqqında çox söhbət etdik biz istifadə edən müxtəlif bayraqları zaman 94 00:04:29,120 --> 00:04:33,100 Biz bir şey tərtib və nə make15, misal üçün, həqiqətən 95 00:04:33,100 --> 00:04:34,510 deməkdir və həqiqətən edir. 96 00:04:34,510 --> 00:04:38,110 Biz haqqında çox danışmaq deyil hər bir addım 97 00:04:38,110 --> 00:04:39,240 Tərtibi proses. 98 00:04:39,240 --> 00:04:40,410 Biz hələ bu barədə söhbət etdik. 99 00:04:40,410 --> 00:04:42,550 Belə ki, hələ ki, bir şey var ilə tanış olmalıdır. 100 00:04:42,550 --> 00:04:44,610 Ancaq yenə də, biz fikrində deyilik - 101 00:04:44,610 --> 00:04:49,140 sinif daha tez-tez gəlib ki, hər şeyi daha gəlmək üçün daha çox ehtimal olunur 102 00:04:49,140 --> 00:04:52,495 tez-tez və daha çox ola viktorina ağırlıqlı. 103 00:04:52,495 --> 00:04:53,280 >> Cool. 104 00:04:53,280 --> 00:04:54,580 Viktorina 0 haqqında hər hansı digər suallar? 105 00:04:54,580 --> 00:04:57,660 106 00:04:57,660 --> 00:05:00,050 >> OK, belə ki, mən bir siyahısını qoymaq board mövzular. 107 00:05:00,050 --> 00:05:01,550 Mən proqramı vasitəsilə getdi. 108 00:05:01,550 --> 00:05:07,340 Mən nəzərdən bölmə vasitəsilə getdi gəlmək üçün dünən gecə və bu slaydlar 109 00:05:07,340 --> 00:05:13,710 mövzular qeyri-tam siyahısı ilə biz CS50 günə qədər əhatə ki, 110 00:05:13,710 --> 00:05:16,800 və hər şeyi ki bilər viktorina görünür. 111 00:05:16,800 --> 00:05:19,900 Mən keçmək fikrində deyiləm Bu hər bir. 112 00:05:19,900 --> 00:05:22,370 Çox daha çox olardı biz indi daha çox vaxt. 113 00:05:22,370 --> 00:05:26,880 Amma inşallah JOG burada bu qədər qoymaq şeylər kimi yaddaş ki, may 114 00:05:26,880 --> 00:05:28,420 və ya sizinlə tanış ola bilər. 115 00:05:28,420 --> 00:05:32,850 >> Mən hissəsini sərf sevindim haqqında suallara cavab bölmə 116 00:05:32,850 --> 00:05:35,130 Bu mövzular, mövzular ki, burada əhatə olunmur. 117 00:05:35,130 --> 00:05:36,130 Biz yalançı kodu yaza bilərsiniz. 118 00:05:36,130 --> 00:05:40,010 Biz real kodunu yaza bilərsiniz təmin etmək üçün ki, - 119 00:05:40,010 --> 00:05:44,280 Mən sizin suala cavab və kömək edə bilər hamı əsaslı anlamaq bir 120 00:05:44,280 --> 00:05:48,330 Bu mövzular çox siz hiss edəcəyik gedən daxil hazırlanmış və rahat 121 00:05:48,330 --> 00:05:50,150 viktorina sabah. 122 00:05:50,150 --> 00:05:52,300 Belə ki, siyahısını oxumaq. 123 00:05:52,300 --> 00:05:54,780 Siz inşallah bölməsində gəlmişəm bəzi suallar həmçinin. 124 00:05:54,780 --> 00:05:58,480 Siz hazır olduğunuzda, əl qaldırmaq və biz açılmış olacaq. 125 00:05:58,480 --> 00:06:01,590 126 00:06:01,590 --> 00:06:05,200 >> Unutmayın, suallar var, heç bir axmaq suallar var. 127 00:06:05,200 --> 00:06:06,250 Biz bir çox ki, eşitdim. 128 00:06:06,250 --> 00:06:09,490 Və siz sual, mən istəyən am , bir çox digər insanların, həm də bahis 129 00:06:09,490 --> 00:06:11,740 Burada oturan və seyr online həmçinin var. 130 00:06:11,740 --> 00:06:13,770 Belə ki, yalnız insanlar kömək edə bilər suallar. 131 00:06:13,770 --> 00:06:15,070 Marcus. 132 00:06:15,070 --> 00:06:18,040 >> MARCUS: yığın və arasında yığın, bir pre-ayrılan var 133 00:06:18,040 --> 00:06:22,880 kimi müəyyən ki, yaddaş faiz Bu yığını və ya yığın üçün? 134 00:06:22,880 --> 00:06:25,010 Və ya necə dəqiq ki, işi yoxdur? 135 00:06:25,010 --> 00:06:26,230 >> JASON Hirschhorn: Böyük sual. 136 00:06:26,230 --> 00:06:28,640 Mən bir az iz geri gedirəm. 137 00:06:28,640 --> 00:06:30,910 Hamı mu - 138 00:06:30,910 --> 00:06:31,660 burada vicdanlı olun. 139 00:06:31,660 --> 00:06:34,130 Mən qaldırmaq isteyen alıram bilirik sizin Sizin həmyaşıdları qarşısında əl. 140 00:06:34,130 --> 00:06:38,510 Amma hiss edən insanlar var yığını və yığın narahat 141 00:06:38,510 --> 00:06:42,980 və ki, artıq getmək istəyirəm və bu nə deməkdir? 142 00:06:42,980 --> 00:06:43,880 Əl əgər qaldırmaq - 143 00:06:43,880 --> 00:06:44,420 OK. 144 00:06:44,420 --> 00:06:45,120 Təşəkkür edirəm. 145 00:06:45,120 --> 00:06:48,420 Beləliklə, biz yığını üzərində getmək üçün gedən və edirik yığın həqiqətən tez və sonra 146 00:06:48,420 --> 00:06:50,370 Sizin suala cavab hərəkət. 147 00:06:50,370 --> 00:06:58,250 >> Biz təmsil bir qutusu həyata çəkmək əgər bilgisayarınızda yaddaş, bəzi nə 148 00:06:58,250 --> 00:07:02,160 Bu qutusuna getmək ki, hər şeyi? 149 00:07:02,160 --> 00:07:03,630 Main. 150 00:07:03,630 --> 00:07:04,020 A əsas funksiyası. 151 00:07:04,020 --> 00:07:05,890 Harada əsas getmək edir? 152 00:07:05,890 --> 00:07:08,090 >> TƏLƏBƏ: [işitilemez]. 153 00:07:08,090 --> 00:07:09,390 >> JASON Hirschhorn: Biz will əsas burada aşağı qoydu. 154 00:07:09,390 --> 00:07:12,180 155 00:07:12,180 --> 00:07:13,430 Nə bu qutusuna gedir? 156 00:07:13,430 --> 00:07:16,000 157 00:07:16,000 --> 00:07:18,140 >> TƏLƏBƏ: Siz zəng funksiyaları. 158 00:07:18,140 --> 00:07:19,020 >> JASON Hirschhorn: The funksiyaları biz zəng. 159 00:07:19,020 --> 00:07:20,440 Və onlar getmək yoxdur? 160 00:07:20,440 --> 00:07:21,300 >> TƏLƏBƏ: yığını. 161 00:07:21,300 --> 00:07:22,380 >> JASON Hirschhorn: Onlar yığını getmək. 162 00:07:22,380 --> 00:07:27,350 Beləliklə, biz bu zəng olacaq aşağı burada şey yığını. 163 00:07:27,350 --> 00:07:31,880 Və üst qədər, biz yığın var. 164 00:07:31,880 --> 00:07:35,450 Belə ki, yaddaş yalnız bu kimi bir qutusu deyil. 165 00:07:35,450 --> 00:07:37,330 Amma bu, həqiqətən olduqca oxşardır. 166 00:07:37,330 --> 00:07:40,840 Bu artıq qutuları bir çox olacaq və üzərində asılı olaraq necə böyük sizin 167 00:07:40,840 --> 00:07:43,730 kompüter və ya yaddaş nə qədər böyük. 168 00:07:43,730 --> 00:07:46,950 >> Quote-dırnağı bağlamaq "alt" da yığını deyil. 169 00:07:46,950 --> 00:07:50,880 Və çox şeylər var ki, yığını getmək. 170 00:07:50,880 --> 00:07:53,840 Və bu funksiyaları asılı sizin kodu var. 171 00:07:53,840 --> 00:07:57,780 Siz həmişə bir funksiyası var sizin kodu əsas adlı, belə bir həmişə var 172 00:07:57,780 --> 00:08:00,480 aşağı burada bölməsində əsas həsr yığın. 173 00:08:00,480 --> 00:08:03,980 >> Yığını Bu bölmələr yığını çərçivəsində deyilir. 174 00:08:03,980 --> 00:08:09,580 Başqa bir funksiyası zəng zaman, əsas demək bir ikili axtarış funksiyası çağırır, 175 00:08:09,580 --> 00:08:11,075 biz yığını bir çərçivə qoymaq. 176 00:08:11,075 --> 00:08:13,830 177 00:08:13,830 --> 00:08:17,320 Daha konkret desək, biz gedir yaddaş yığın bağış bizim 178 00:08:17,320 --> 00:08:22,960 ikili axtarış yerli saxlamaq üçün kompüter dəyişənlərin və ikili run 179 00:08:22,960 --> 00:08:24,150 search kodu. 180 00:08:24,150 --> 00:08:26,810 >> Belə ki, biz ikili axtarış zəng. 181 00:08:26,810 --> 00:08:30,440 182 00:08:30,440 --> 00:08:33,340 Yaddaş bu yığın, biz olacaq onun yerli dəyişənlərin saxlamaq üçün. 183 00:08:33,340 --> 00:08:35,270 Biz printf zənglər saxlamaq olacaq. 184 00:08:35,270 --> 00:08:38,159 Olur, olsun, ki, funksiyası orada saxlanılır gedir. 185 00:08:38,159 --> 00:08:40,350 Binary axtarış icra gedir. 186 00:08:40,350 --> 00:08:42,210 Bu icra başa gedir. 187 00:08:42,210 --> 00:08:47,450 C söz nədir ki nailliyyətin bir funksiyası olmalıdır ki, 188 00:08:47,450 --> 00:08:49,306 onun icrasını başa? 189 00:08:49,306 --> 00:08:50,040 >> TƏLƏBƏ: qayıt. 190 00:08:50,040 --> 00:08:50,870 >> JASON Hirschhorn: qayıt. 191 00:08:50,870 --> 00:08:53,230 Belə bir geri bəyanat görmək zaman, funksiyası bitir 192 00:08:53,230 --> 00:08:54,350 ki xit zaman. 193 00:08:54,350 --> 00:08:56,740 Belə ki, ikili axtarış onun qaytarılması təşkil edəcək. 194 00:08:56,740 --> 00:09:01,360 Yaddaş bu hissəsi mahiyyətcə edəcək qədər azad olunacaq. 195 00:09:01,360 --> 00:09:03,510 Və əsas geri icrası gedəcək. 196 00:09:03,510 --> 00:09:07,240 , Zəng edin idi yerdə Belə ki, əsas fasilə olacaq ikili axtarış, bəzi qaytarılması dəyəri almaq, 197 00:09:07,240 --> 00:09:08,700 və icrası davam edir. 198 00:09:08,700 --> 00:09:10,840 Bu yığını çərçivəsində getmək olacaq. 199 00:09:10,840 --> 00:09:14,810 >> Biz recursive funksiyası, zəng əgər özü üzərində çağırır ki, bir funksiyası 200 00:09:14,810 --> 00:09:18,480 və üzərində, biz əldə edə bilər - biz demək recursively ikili axtarış etdi. 201 00:09:18,480 --> 00:09:21,520 Biz ikili axtarış versiyası bir almaq bilər ikili axtarış iki, ikili axtarış 202 00:09:21,520 --> 00:09:24,090 üç, ikili axtarış dörd, ikili axtarış beş. 203 00:09:24,090 --> 00:09:27,950 Və sonra bu final ikili axtarış beş baza halda, və yığını təşkil edəcək 204 00:09:27,950 --> 00:09:31,010 çərçivəsində geri getmək və bağlanması davam edəcək biz əsas geri almaq qədər. 205 00:09:31,010 --> 00:09:32,530 Biz bir az recursion üzərində bilərsiniz. 206 00:09:32,530 --> 00:09:35,530 Değilseniz Lakin bütün bu, demək bir zamanda birdən çox funksiyaları zəng 207 00:09:35,530 --> 00:09:39,250 çox yığını olacaq yığını çərçivəsində. 208 00:09:39,250 --> 00:09:42,900 >> Yığın, digər tərəfdən, up burada funksiyaları üçün deyil, 209 00:09:42,900 --> 00:09:44,380 yerli dəyişənlərin üçün. 210 00:09:44,380 --> 00:09:48,920 Bu dinamik ayrılmış üçün dəyişənlər. 211 00:09:48,920 --> 00:09:57,210 Belə ki, bu ola bilər ki, dəyişənlər var əsas və ya bir ya başlatılmış 212 00:09:57,210 --> 00:09:58,640 əsas zənglər fəaliyyət göstərir. 213 00:09:58,640 --> 00:10:00,790 Yerdə sizin kodu, onlar başlatılmış bilər. 214 00:10:00,790 --> 00:10:04,360 Və dinamik başlamaq üçün ayrılan dəyişən. 215 00:10:04,360 --> 00:10:06,970 Biz C funksiyası nə istifadə edirsiniz? 216 00:10:06,970 --> 00:10:07,600 >> TƏLƏBƏ: Malloc. 217 00:10:07,600 --> 00:10:09,240 >> JASON Hirschhorn: Malloc. 218 00:10:09,240 --> 00:10:10,800 Siz malloc zəng. 219 00:10:10,800 --> 00:10:12,260 Siz yaddaş yer almaq. 220 00:10:12,260 --> 00:10:15,020 Və yaddaş ki, kosmik yığın edir. 221 00:10:15,020 --> 00:10:18,840 Və yaddaş ki, kosmik qalır siz pulsuz var zəng qədər. 222 00:10:18,840 --> 00:10:22,670 >> Belə ki, dinamik ayrılmış dəyişənlərin ilə yığın sizin kimi uzun üçün mövcud olacaq 223 00:10:22,670 --> 00:10:25,250 onlara mövcud istəyirəm, və onlar olacaq açıq-aydın sizin qədər getmək 224 00:10:25,250 --> 00:10:26,760 getmək üçün onlara demək. 225 00:10:26,760 --> 00:10:29,670 Siz bir funksiyası onları yarada bilərsiniz. 226 00:10:29,670 --> 00:10:31,930 Ki, funksiyasının stack çərçivəsində getmək olacaq. 227 00:10:31,930 --> 00:10:35,490 Amma dəyişən hələ mövcud olacaq yığın azad olunana qədər, 228 00:10:35,490 --> 00:10:39,650 potensial adlı funksiyası ilə ikili axtarış və ya nə. 229 00:10:39,650 --> 00:10:42,580 >> Belə ki, həmin yığın dəyişənlərin orada qalmaq kimi uzun istədiyiniz kimi üçün 230 00:10:42,580 --> 00:10:43,490 orada qalmaq. 231 00:10:43,490 --> 00:10:46,090 Və onlar burada qoyulur. 232 00:10:46,090 --> 00:10:47,450 Və sonra növbəti orada qoymaq olur. 233 00:10:47,450 --> 00:10:50,210 Onlar dolun, onlar siz pulsuz zəng qədər orada qalmaq. 234 00:10:50,210 --> 00:10:52,870 >> Və mahiyyətcə, yığın və yığını, , Marcus Sualıma 235 00:10:52,870 --> 00:10:54,500 bir-birinə qarşı bitir. 236 00:10:54,500 --> 00:10:57,730 Onlar bir-birinə daxil əgər, siz var bütün yaddaş istifadə edin 237 00:10:57,730 --> 00:11:01,330 kompüter və proqram çıxmaq edəcək Əgər hər hansı bir daha çox yaddaş yoxdur, çünki 238 00:11:01,330 --> 00:11:02,420 istifadə üçün sol. 239 00:11:02,420 --> 00:11:07,290 Onların arasında var potensial başqa şeylər. 240 00:11:07,290 --> 00:11:10,980 Amma bu əlbəttə daxilində sizin üçün ki, narahat ehtiyac yoxdur. 241 00:11:10,980 --> 00:11:12,020 >> Belə ki, cavab idi sizin suala. 242 00:11:12,020 --> 00:11:13,520 Bu barədə narahat olmayın. 243 00:11:13,520 --> 00:11:15,550 Amma bu uzun cavab idi. 244 00:11:15,550 --> 00:11:17,800 Bildiyiniz üçün lazım olan bütün edir yığın və yığını olacaq - 245 00:11:17,800 --> 00:11:18,900 bir alt başlayır. 246 00:11:18,900 --> 00:11:19,570 Yığını yoxdur. 247 00:11:19,570 --> 00:11:20,790 Yığın up var. 248 00:11:20,790 --> 00:11:21,990 Onlar bir-birinə yaxın olacaq. 249 00:11:21,990 --> 00:11:23,110 >> Onlar toxunmaq əgər, bir problem var. 250 00:11:23,110 --> 00:11:24,500 Siz yaddaş həyata qaçdım. 251 00:11:24,500 --> 00:11:28,760 Lakin, bilmədən əlavə olduğu onlar nə də saxlanılır olunur 252 00:11:28,760 --> 00:11:30,512 yığın və yığın. 253 00:11:30,512 --> 00:11:31,410 Curtis. 254 00:11:31,410 --> 00:11:33,570 >> CURTIS: onlar toqquşmaq zaman, ki, bir yığın daşqın? 255 00:11:33,570 --> 00:11:35,670 >> JASON Hirschhorn: onlar toqquşmaq zaman, ki, bir yığın daşqın deyil. 256 00:11:35,670 --> 00:11:38,340 A yığın daşqın fərqli bir sahədir Əgər istəyirsinizsə biz artıq getmək bilər. 257 00:11:38,340 --> 00:11:40,020 OK, biz bir az geri qayıtmaq lazımdır. 258 00:11:40,020 --> 00:11:42,730 >> TƏLƏBƏ: adlı söz nədir Onlar bir-birinə hit zaman, 259 00:11:42,730 --> 00:11:44,450 yığın və yığın? 260 00:11:44,450 --> 00:11:46,640 >> JASON Hirschhorn: İndi, haqqında narahat olmayın. 261 00:11:46,640 --> 00:11:47,750 Just bilirik - 262 00:11:47,750 --> 00:11:50,530 Mən suala cavab olacaq sinif sonra. 263 00:11:50,530 --> 00:11:52,680 Onlar bir-birinə daxil etsəniz, siz həyata qaçdım heç bir daha çox var yaddaş, çünki 264 00:11:52,680 --> 00:11:53,330 kosmik. 265 00:11:53,330 --> 00:11:55,450 >> TƏLƏBƏ: Bağışlayın, bir seg günah nədir? 266 00:11:55,450 --> 00:11:58,710 >> JASON Hirschhorn: A segment günah üçün adlandırmaq olar - 267 00:11:58,710 --> 00:12:02,240 seqmentlərin günahı deyilir niyə bu asılıdır. 268 00:12:02,240 --> 00:12:06,260 Bəzən, sizin yığını daşqın, bu will seg səhv kimi günah deyirlər. 269 00:12:06,260 --> 00:12:08,180 >> TƏLƏBƏ: Nə dereferencing haqqında bir null dəyişən? 270 00:12:08,180 --> 00:12:10,040 Ki, bir seg günah? 271 00:12:10,040 --> 00:12:11,480 >> JASON Hirschhorn: Dereferencing bir null pointer - 272 00:12:11,480 --> 00:12:17,850 OK, belə ki, bir göstərici varsa null bərabər müəyyən göstəricilər, geri, 273 00:12:17,850 --> 00:12:20,270 mağaza yaddaş ünvanları onların dəyərləri kimi. 274 00:12:20,270 --> 00:12:23,660 Və null göstərici mahiyyətcə 0 saxlanılması, 0-ci 275 00:12:23,660 --> 00:12:26,670 dəyişən müraciət. 276 00:12:26,670 --> 00:12:30,010 Belə ki 0x, 0, 0, 0, 0, et Cetera. 277 00:12:30,010 --> 00:12:35,030 Deyil ki, yaddaş ki, 0-ci ünvanı bizim şəkil ki, up var 278 00:12:35,030 --> 00:12:38,800 haradasa, qorunur edir kompüter üçün. 279 00:12:38,800 --> 00:12:40,130 Biz bunu toxunmaq icazə deyilik. 280 00:12:40,130 --> 00:12:44,680 >> Belə ki, proqram həyata zaman, əgər bir şey xatirəsinə getmək üçün çalışır 281 00:12:44,680 --> 00:12:48,990 ünvanı 0, o bilir ki, ki, bir boş dəyəri. 282 00:12:48,990 --> 00:12:50,820 Bu heç bir şey olmalıdır bilir. 283 00:12:50,820 --> 00:12:53,420 Belə ki, orada bir şey cəhd və istifadə əgər kimi bir şey var müalicə və ya 284 00:12:53,420 --> 00:12:58,355 ki, yeri getmək üçün çalışırıq, siz San günah və ya səhv almaq üçün gedir. 285 00:12:58,355 --> 00:13:00,520 Ki, sual cavab verirmi? 286 00:13:00,520 --> 00:13:03,170 >> Və indi biz geri getmək lazımdır daşqın yığın. 287 00:13:03,170 --> 00:13:09,560 Sizlərin kimi yığını Things, əvvəl görüldü - bir yaxın çəkmək imkan 288 00:13:09,560 --> 00:13:11,966 bir yığın çərçivəsində up. 289 00:13:11,966 --> 00:13:15,050 Hamı görmək edə bilərəmmi? 290 00:13:15,050 --> 00:13:16,650 Belə ki, biz yığını çərçivəsində var. 291 00:13:16,650 --> 00:13:23,260 Biz yerli kimi bir sıra qənaət edirik bu funksiyası dəyişən. 292 00:13:23,260 --> 00:13:29,510 Belə ki, bizim array beş ləkələr var deyirlər. 293 00:13:29,510 --> 00:13:33,230 O bütün beş saxlanılır ki yığını çərçivəsində. 294 00:13:33,230 --> 00:13:37,540 >> Biz kənarda yazmağa başlayın əgər bu serialın həddi - 295 00:13:37,540 --> 00:13:43,990 belə ki, biz daxil yazılı başlamaq əgər, ki 0 deyək. 296 00:13:43,990 --> 00:13:46,800 Həmin beş göstəriciləri var bizim serialın. 297 00:13:46,800 --> 00:13:50,980 Biz index 5, daxil yazmağa başlayın əgər biz zaman biz yoxdur 298 00:13:50,980 --> 00:13:55,900 ölçüsü 5 array, biz daxil yazmağa başlayın index 6, 7, 8, 9, biz Stack əldə edə bilərsiniz 299 00:13:55,900 --> 00:13:57,960 Overflow səhv. 300 00:13:57,960 --> 00:14:00,510 >> Ümumiyyətlə bu deyil - 301 00:14:00,510 --> 00:14:04,910 yəqin ki, ilişmək edəcək Siz bir-üzərində getmək əgər. 302 00:14:04,910 --> 00:14:08,640 Amma ümumiyyətlə, siz daxil olacaq Bir çox üzərində getmək əgər ən narahatlıq 303 00:14:08,640 --> 00:14:12,770 və bu günə qədər üzərində yazmaq getmək ki, geri ünvan üzərində 304 00:14:12,770 --> 00:14:16,080 burada yerləşən funksiyası, yığını çərçivəsində alt. 305 00:14:16,080 --> 00:14:16,520 >> Sağ, çünki? 306 00:14:16,520 --> 00:14:17,670 Siz - ci ildə - sorry. 307 00:14:17,670 --> 00:14:18,550 "Sağ çünki." 308 00:14:18,550 --> 00:14:20,470 >> Yığını çərçivəsində, siz var yerli dəyişənlər. 309 00:14:20,470 --> 00:14:27,090 Yığını çox alt çərçivəsində qaytarılması ünvanı. 310 00:14:27,090 --> 00:14:28,790 Bu funksiyası harada artıq zaman gedir. 311 00:14:28,790 --> 00:14:33,750 Və siz geri üzerine əgər ünvanı, sonra bu yığını çərçivəsində zaman, 312 00:14:33,750 --> 00:14:36,680 Siz yığını keçir etdiyiniz zaman nizama və hər xətti yerinə, siz 313 00:14:36,680 --> 00:14:40,350 Yeni qaytarılması ünvan getmək olacaq ki, əvəzinə orada yazılı 314 00:14:40,350 --> 00:14:40,910 faktiki biridir. 315 00:14:40,910 --> 00:14:45,050 Və biz gördük necə bəzi təhlükəsizlik pozulması 316 00:14:45,050 --> 00:14:46,780 kompüter ilə baş verə bilər. 317 00:14:46,780 --> 00:14:52,760 >> Belə ki, yığın daşqın, qısa olaraq, Siz yığını hissəsi üzerine 318 00:14:52,760 --> 00:14:55,440 Siz yerli istifadə üçün nəzərdə edirik dəyişən istifadə ehtimal edirik 319 00:14:55,440 --> 00:14:58,070 Xüsusilə siz yadda başlattığınızda kimi əhəmiyyətli şeylər 320 00:14:58,070 --> 00:14:59,100 qayıdış ünvanı. 321 00:14:59,100 --> 00:15:00,090 Əgər bir səhv almaq lazımdır ki var. 322 00:15:00,090 --> 00:15:03,980 Və ya bəlkə siz başlamaq bilər hətta daxil yazılı - 323 00:15:03,980 --> 00:15:05,370 ikili axtarış idi sağ əsas yuxarıda. 324 00:15:05,370 --> 00:15:07,790 Siz, bir çox yazılmaması varsa əsas daxil yazmaq bilər. 325 00:15:07,790 --> 00:15:10,230 Amma ümumiyyətlə, siz əvvəl bir səhv almaq kompüter bilir sonra, çünki 326 00:15:10,230 --> 00:15:12,270 Siz bir şey yapýyorsun bunu etmək olmaz. 327 00:15:12,270 --> 00:15:12,560 Bəli. 328 00:15:12,560 --> 00:15:13,910 >> TƏLƏBƏ: fərqi nədir bir yığın daşqın arasında 329 00:15:13,910 --> 00:15:16,940 və bufer daşqın? 330 00:15:16,940 --> 00:15:19,420 >> JASON Hirschhorn: Buffer overflow daha ümumi növü var 331 00:15:19,420 --> 00:15:20,395 Mən yalnız təsvir nə. 332 00:15:20,395 --> 00:15:22,610 >> TƏLƏBƏ: Belə bir yığın daşqın bir edir bir bufer daşqın nümunə. 333 00:15:22,610 --> 00:15:23,420 >> JASON Hirschhorn: Exactly. 334 00:15:23,420 --> 00:15:28,700 Bu bir kimi hesab edə bilər bir sıra edir bufer, içəri şey üçün bir məkan 335 00:15:28,700 --> 00:15:30,600 Bu bir yığın bufer daşqın. 336 00:15:30,600 --> 00:15:33,210 Biz bir yığın bufer daşqın ola bilər. 337 00:15:33,210 --> 00:15:36,870 Orada tez-tez bir bufer, var idi, əgər bir sıra yığın və biz 338 00:15:36,870 --> 00:15:40,600 o həddi yazılmaması, sonra biz ki, bir yığın bufer daşqın var. 339 00:15:40,600 --> 00:15:44,870 >> Bu əlbəttə çərçivəsindən kənarda, onlar bir az fərqli aşkar edirik. 340 00:15:44,870 --> 00:15:48,040 Bu compiler xüsusi var hər aşkar yolları. 341 00:15:48,040 --> 00:15:50,660 Amma bir bufer daşqın daha ümumi edir Mən təsvir nə növü, 342 00:15:50,660 --> 00:15:54,090 bir yığın bufer daşqın idi. 343 00:15:54,090 --> 00:15:56,240 Ki, cavab mi? 344 00:15:56,240 --> 00:15:57,910 Sweet. 345 00:15:57,910 --> 00:16:01,850 >> Hər hansı digər suallar əlaqəli var idi yığını və ya yığın? 346 00:16:01,850 --> 00:16:04,920 347 00:16:04,920 --> 00:16:05,510 Bəli. 348 00:16:05,510 --> 00:16:08,220 >> TƏLƏBƏ: Mən sizə pulsuz strings bilirik Onlar yığın istəyirik, çünki 349 00:16:08,220 --> 00:16:09,305 və siz yaddaş sızma istəmirəm. 350 00:16:09,305 --> 00:16:12,240 Amma qlobal dəyişənlər azad var və kimi stuff? 351 00:16:12,240 --> 00:16:14,335 Yoxsa onlar avtomatik olaraq azad olunur? 352 00:16:14,335 --> 00:16:15,700 >> JASON Hirschhorn: Yaxşı sualdır. 353 00:16:15,700 --> 00:16:22,340 Belə ki, cs50.h, biz bu şey yaratmaq üçün bir simli çağırıb. 354 00:16:22,340 --> 00:16:23,800 A string həqiqətən nədir? 355 00:16:23,800 --> 00:16:24,810 >> TƏLƏBƏ: Char star. 356 00:16:24,810 --> 00:16:29,180 >> JASON Hirschhorn: A char star, bir pointer bir xarakter, bir göstərici 357 00:16:29,180 --> 00:16:30,650 simvol bir sıra. 358 00:16:30,650 --> 00:16:32,210 Bu string nə var. 359 00:16:32,210 --> 00:16:36,050 Belə ki, biz, onu azad etmək lazımdır, çünki GetString, biz bir çox istifadə - 360 00:16:36,050 --> 00:16:38,370 string adı GetString bərabərdir - 361 00:16:38,370 --> 00:16:43,560 ki, bizim üçün bəzi yaddaş mallocs yığın və sonra bir pointer qaytarır 362 00:16:43,560 --> 00:16:47,230 ki, ilk xarakter string, bir char ulduz. 363 00:16:47,230 --> 00:16:52,760 >> Belə ki, guya, siz olmuşdur əgər Sizin strings hər hansı bir pulsuz yazı 364 00:16:52,760 --> 00:16:55,600 Siz indiyə qədər deyilən etdik ki, siz var bir yaddaş sızan edilmişdir. 365 00:16:55,600 --> 00:16:57,430 Təbii ki, biz haqqında söhbət yoxdur Bu, belə ki, heç kəs kazanılmış var 366 00:16:57,430 --> 00:16:58,520 bunu üçün narahatlıq. 367 00:16:58,520 --> 00:16:59,980 Amma bəli, irəli gedir. 368 00:16:59,980 --> 00:17:03,990 Siz GetString zəng zaman, siz yığın bəzi kosmik mallocing. 369 00:17:03,990 --> 00:17:07,640 Və ki, sonra pulsuz zəng etməyin string, bir yaddaş sızıntısı var. 370 00:17:07,640 --> 00:17:09,440 Ki, sual cavab? 371 00:17:09,440 --> 00:17:10,606 >> Bəli 372 00:17:10,606 --> 00:17:15,020 >> TƏLƏBƏ: Belə ki, nə üçün biz istifadə edirsiniz qaytarılması əvvəl pulsuz sağ? 373 00:17:15,020 --> 00:17:18,510 Kimi, daxilində, hərhalda əgər biz çərçivəsində əsas int kimi, demək 374 00:17:18,510 --> 00:17:24,410 o ərzində ki, kodu həcmi qıvrım aşırma, əvvəl sağ - 375 00:17:24,410 --> 00:17:26,140 Bildiyiniz harada had adətən geri qoymaq. 376 00:17:26,140 --> 00:17:27,950 Ki əvvəl pulsuz qoymaq edirsiniz? 377 00:17:27,950 --> 00:17:31,000 >> JASON Hirschhorn: Beləliklə, siz pulsuz qoya bilər siz pulsuz qoymaq istədiyiniz yerdə. 378 00:17:31,000 --> 00:17:33,810 Bu dinamik ayrılmış Çünki dəyişənlər, onlar bilər, çünki 379 00:17:33,810 --> 00:17:39,170 xüsusi əhatəsi kənarda yaşamaq funksiyası, bir malloc zəng əgər 380 00:17:39,170 --> 00:17:44,140 ayrı-ayrı funksiyası, misal üçün, GetString, siz əsas pulsuz zəng edə bilərsiniz. 381 00:17:44,140 --> 00:17:46,050 Siz zəng etmək üçün ehtiyac yoxdur xüsusi funksiyası 382 00:17:46,050 --> 00:17:47,570 malloc adlı yerləşir. 383 00:17:47,570 --> 00:17:50,340 Amma siz zəng etmək lazımdır əsas yekunları əvvəl. 384 00:17:50,340 --> 00:17:51,120 >> Və həqiqətən asılıdır. 385 00:17:51,120 --> 00:17:54,960 Bu ki, malloced niyə asılıdır ilk növbədə kosmik. 386 00:17:54,960 --> 00:17:57,320 Bəzi insanlar zəng edəcək olduqca tez azad. 387 00:17:57,320 --> 00:17:59,220 Bəzi insanlar qədər pulsuz zəng edəcək onların proqram sonu. 388 00:17:59,220 --> 00:18:00,660 Onlar vasitəsilə getmək lazımdır və pulsuz hər şey. 389 00:18:00,660 --> 00:18:03,597 Bu malloc adlı niyə asılıdır. 390 00:18:03,597 --> 00:18:11,270 >> TƏLƏBƏ: Və nə deyəcəksiniz Siz istifadə GetString adlı əgər? 391 00:18:11,270 --> 00:18:13,320 Siz nə pulsuz demək istədiyiniz? 392 00:18:13,320 --> 00:18:20,040 >> JASON Hirschhorn: Belə üçün sintaksis pulsuz sadəcə azad, açıq paren, yaxın 393 00:18:20,040 --> 00:18:22,130 paren və göstərici adı. 394 00:18:22,130 --> 00:18:26,410 Belə ki, simli adı bərabərdir yazmaq GetString, burada adını qoymaq. 395 00:18:26,410 --> 00:18:27,760 Bu göstərici adı var. 396 00:18:27,760 --> 00:18:30,570 Və bu yaddaş azad bilir. 397 00:18:30,570 --> 00:18:33,920 >> TƏLƏBƏ: bu yaddaş kurtarır Belə ki, göstərici hələ ki, yer göstərir 398 00:18:33,920 --> 00:18:34,970 yaddaşında? 399 00:18:34,970 --> 00:18:39,020 Ya da boşaldılmış göstəricisidir Bu göstərir ki, ünvanı. 400 00:18:39,020 --> 00:18:40,290 >> JASON Hirschhorn: Biz çalışmalıyıq. 401 00:18:40,290 --> 00:18:41,430 Biz kod lazımdır. 402 00:18:41,430 --> 00:18:43,880 Biz almaq zaman geri gəlsin kodlaşdırma, və ki kod bildirin. 403 00:18:43,880 --> 00:18:46,000 Və cavab anlamaq istəyirsinizsə ki, siz də kodu ki, 404 00:18:46,000 --> 00:18:46,690 bu vaxt. 405 00:18:46,690 --> 00:18:49,100 Amma böyük bir sual var. 406 00:18:49,100 --> 00:18:53,480 >> TƏLƏBƏ: Bu mümkün mü Çox tezliklə pulsuz bir şey? 407 00:18:53,480 --> 00:18:58,530 Belə ki, hələ sizin proqram üçün lazımdır, və siz yaddaş kosmik azad? 408 00:18:58,530 --> 00:18:59,200 >> JASON Hirschhorn: Bəli. 409 00:18:59,200 --> 00:19:03,020 Bu, mümkün əgər pulsuz bir şey və sonra yenidən istifadə, siz 410 00:19:03,020 --> 00:19:06,890 Bir səhv daxil. 411 00:19:06,890 --> 00:19:10,810 Siz azad çünki Lakin, sizə var sonra bir şey və sonra çağırıb. 412 00:19:10,810 --> 00:19:13,940 Belə ki, bir proqramçı-nin səhv idi. 413 00:19:13,940 --> 00:19:14,780 Amma bəli. 414 00:19:14,780 --> 00:19:17,760 Siz yaza bilər. 415 00:19:17,760 --> 00:19:19,240 >> Bir daha sual - 416 00:19:19,240 --> 00:19:19,760 bəli. 417 00:19:19,760 --> 00:19:22,820 >> TƏLƏBƏ: Belə ki, ehtimal olunur, yalnız əvvəl ümumiyyətlə onu azad 418 00:19:22,820 --> 00:19:25,490 Proqram əgər deməkdir, bitir proqram başa çatır və o azad deyil, 419 00:19:25,490 --> 00:19:27,580 ki, yaddaş hələ ayrılıb? 420 00:19:27,580 --> 00:19:31,330 >> JASON Hirschhorn: proqram başa varsa və sonra bir şey azad unutmaq 421 00:19:31,330 --> 00:19:34,390 yaddaş ərzində ayrılıb proqram ömür boyu. 422 00:19:34,390 --> 00:19:37,670 Proqram tamamilə bağlayan zaman yaddaş niyyətində deyil 423 00:19:37,670 --> 00:19:39,490 əbədi orada qalmaq. 424 00:19:39,490 --> 00:19:42,080 Kompüter bilmək kifayət qədər ağıllı deyil ki, proqram bağlanır zaman, 425 00:19:42,080 --> 00:19:46,440 yaddaş bütün qurtarmaq lazımdır ki, proqramı ilə bağlı idi. 426 00:19:46,440 --> 00:19:51,240 >> Lakin, çalıştırabilirsiniz alətlər var aşkar etmək üçün bir proqram, əgər zaman 427 00:19:51,240 --> 00:19:54,720 proqram unuttum başa bəzi yaddaş azad. 428 00:19:54,720 --> 00:19:57,960 Və növbəti problem olduğu müəyyən Siz malloc istifadə və istifadə edə bilərsiniz 429 00:19:57,960 --> 00:20:02,610 göstəricilərinə, bu çalışan olunacaq əgər görmek üçün proqramı üzrə proqram, 430 00:20:02,610 --> 00:20:06,530 zaman əsas yekunları, bəzi idi unfreed qaldı ki, hər şeyi. 431 00:20:06,530 --> 00:20:09,130 >> Belə ki, onlar malloced qalmaq fikrində deyilik əbədi kompüter. 432 00:20:09,130 --> 00:20:11,720 Ki, israfçı olardı, çünki çox tez, kompüter 433 00:20:11,720 --> 00:20:12,960 yaddaş tökülmək olardı. 434 00:20:12,960 --> 00:20:16,450 Lakin onlar sizin sonuna qədər run əgər proqram və onlar azad və deyilik sizin 435 00:20:16,450 --> 00:20:20,260 proqram hələ də bir problem var, çıxışları Bu alət kömək edəcək ki, həll. 436 00:20:20,260 --> 00:20:21,520 >> TƏLƏBƏ: Valgrind ki? 437 00:20:21,520 --> 00:20:22,910 >> JASON Hirschhorn: Bu Valgrind çağırıb. 438 00:20:22,910 --> 00:20:23,520 Və siz olacaq - 439 00:20:23,520 --> 00:20:25,780 >> TƏLƏBƏ: Amma biz bilmək yoxdur ki, viktorina üçün, baxmayaraq ki? 440 00:20:25,780 --> 00:20:27,600 Mən demək, bu barədə söhbət açıldı mühazirə bir az. 441 00:20:27,600 --> 00:20:33,600 >> JASON Hirschhorn: Belə Valgrind ki, alət adıdır. 442 00:20:33,600 --> 00:20:37,180 Nə Biləndir viktorina üçün kifayət qədər. 443 00:20:37,180 --> 00:20:40,200 Amma hələ istifadə edə bilmirik sizin biz idi, çünki problem müəyyən bir 444 00:20:40,200 --> 00:20:43,520 açıq-aşkar məşğul ki, problem set malloc ilə və ya malloc istifadə. 445 00:20:43,520 --> 00:20:45,330 Belə ki, hələ Valgrind istifadə etməmişlər. 446 00:20:45,330 --> 00:20:47,760 Amma tez istifadə edəcək çox sonra. 447 00:20:47,760 --> 00:20:48,710 >> TƏLƏBƏ: Siz təkrar edə bilərəmmi nə Valgrind edir? 448 00:20:48,710 --> 00:20:49,190 >> JASON Hirschhorn: Bağışlayın? 449 00:20:49,190 --> 00:20:51,240 >> TƏLƏBƏ: nə təkrar edə bilərəmmi Valgring məqsədi? 450 00:20:51,240 --> 00:20:53,100 >> JASON Hirschhorn: Valgrind adı - 451 00:20:53,100 --> 00:20:59,890 gdb proqram debug kömək edir kimi Valgrind siz anlamaq kömək edir 452 00:20:59,890 --> 00:21:03,210 şeylər azad olunmayıb Proqram bağlayan zaman. 453 00:21:03,210 --> 00:21:05,110 Belə ki, sizin proqram run lazımdır. 454 00:21:05,110 --> 00:21:09,230 Və proqram çıxışları, və demək lazımdır Proqram malloc bu çox deyilən 455 00:21:09,230 --> 00:21:13,670 Bu çox bytes dəfə, və siz yalnız bu dəfələrlə pulsuz çağırıb. 456 00:21:13,670 --> 00:21:16,520 Və belə ki, bu çox bayt sol azad olmadan. 457 00:21:16,520 --> 00:21:18,050 Yoxsa hər şeyi azad etdik demək lazımdır. 458 00:21:18,050 --> 00:21:19,070 Yaxşı iş. 459 00:21:19,070 --> 00:21:19,480 >> TƏLƏBƏ: OK. 460 00:21:19,480 --> 00:21:21,060 Və Valgring deyirlər? 461 00:21:21,060 --> 00:21:24,940 >> JASON Hirschhorn: V-A-L-G-R-I-N-D. 462 00:21:24,940 --> 00:21:25,970 >> TƏLƏBƏ: göstəricilər haqqında bir sual. 463 00:21:25,970 --> 00:21:30,080 Belə ki, n ulduz demək x bir şey bərabərdir. 464 00:21:30,080 --> 00:21:33,330 Ki, siz qoyulması etdiyiniz nə bərabərdir var, nə daxili qoymaq olunur ki, 465 00:21:33,330 --> 00:21:36,120 nə x işarə edir, və ya x pointer? 466 00:21:36,120 --> 00:21:37,690 >> JASON Hirschhorn: Siz Can sual təkrar? 467 00:21:37,690 --> 00:21:39,340 Siz demək isə biz onu cəlb edə bilər? 468 00:21:39,340 --> 00:21:42,710 >> TƏLƏBƏ: Viktorina ildə, həqiqətən, Bizə göndərilən bir, bu, char kimi idi 469 00:21:42,710 --> 00:21:46,520 star həqiqət sağ, CS50 qayalar bərabərdir? 470 00:21:46,520 --> 00:21:52,190 Belə ki, deməkdir ki, CS50 qayalar həqiqət işarə edir nədir? 471 00:21:52,190 --> 00:21:55,810 >> JASON Hirschhorn: Belə ki, söhbət edirik simli bir char ulduz haqqında, necə 472 00:21:55,810 --> 00:21:56,460 ki, işləyir? 473 00:21:56,460 --> 00:21:56,890 Bəli. 474 00:21:56,890 --> 00:21:57,700 OK. 475 00:21:57,700 --> 00:21:59,140 Nin burada bu cəlb edək. 476 00:21:59,140 --> 00:22:07,100 >> [SIDE CONVERSATION] 477 00:22:07,100 --> 00:22:11,130 >> JASON Hirschhorn: Belə ki, bu dəyişən növü char ulduz olacaq. 478 00:22:11,130 --> 00:22:14,580 Dəyişən necə böyük növü char ulduz? 479 00:22:14,580 --> 00:22:15,510 Neçə bytes? 480 00:22:15,510 --> 00:22:16,450 >> TƏLƏBƏLƏR: Four. 481 00:22:16,450 --> 00:22:18,210 >> JASON Hirschhorn: Bu dörd bayt var. 482 00:22:18,210 --> 00:22:21,420 Dəyişən Neçə hüquqlar növü int ulduz? 483 00:22:21,420 --> 00:22:22,210 >> TƏLƏBƏLƏR: Four. 484 00:22:22,210 --> 00:22:24,910 >> JASON Hirschhorn: Four bytes. 485 00:22:24,910 --> 00:22:28,280 Bir göstərici deyil, onda həmişə dörd bytes, çünki göstəricilərinə, onların 486 00:22:28,280 --> 00:22:30,070 dəyəri bir yaddaş ünvanı. 487 00:22:30,070 --> 00:22:35,160 Və CS50 yaddaş ünvanları cihaz dörd bytes uzun. 488 00:22:35,160 --> 00:22:42,900 Beləliklə, biz GetString, ya biz zəng zaman demək, stringname sonra bərabərdir, və 489 00:22:42,900 --> 00:22:46,140 ikiqat quotes bir string qoymaq, biz qoyuruq - 490 00:22:46,140 --> 00:22:46,920 yaxşı ki, bir az fərqli. 491 00:22:46,920 --> 00:22:48,630 Biz nümunə kimi GetString nə lazımdır. 492 00:22:48,630 --> 00:22:52,150 Və ya char ulduz bir şey simli bərabərdir. 493 00:22:52,150 --> 00:22:54,360 Bağışlayın, mənə misal vermək Siz oxumaq? 494 00:22:54,360 --> 00:22:57,590 >> TƏLƏBƏ: char ulduz həqiqət bərabərdir Ikiqat quotes "CS50 süxurları". 495 00:22:57,590 --> 00:23:02,260 >> JASON Hirschhorn: Belə ki, bu ulduz, bu biz bu dəyişən x zəng edəcəyik bizim 496 00:23:02,260 --> 00:23:04,060 ümumi məqsədləri. 497 00:23:04,060 --> 00:23:05,970 Biz x adlı dəyişən yaratdıq. 498 00:23:05,970 --> 00:23:07,610 Bu tipli char ulduz var. 499 00:23:07,610 --> 00:23:10,950 Bu bir sıra bir göstəricisidir simvol. 500 00:23:10,950 --> 00:23:12,200 Belə ki, aşağı burada - 501 00:23:12,200 --> 00:23:23,710 502 00:23:23,710 --> 00:23:25,890 >> Belə ki, bu necə ki edir yaddaş çalışır. 503 00:23:25,890 --> 00:23:27,410 Bu yaddaş ünvan saxlamaq olardı. 504 00:23:27,410 --> 00:23:31,770 Bu yaddaş ünvan saxlamaq olardı serialın ilk character. 505 00:23:31,770 --> 00:23:33,830 Və sonra zaman sonra Bu göstərici, siz ki 506 00:23:33,830 --> 00:23:35,200 ilk xarakter almaq. 507 00:23:35,200 --> 00:23:38,780 >> Və kimi bu şey oxu edirsinizsə bir string, kompüter ağıllı 508 00:23:38,780 --> 00:23:42,930 bilmək kifayət qədər, bu bütün şey oxumaq bir boşluq 0 olur qədər. 509 00:23:42,930 --> 00:23:45,530 Amma siz bir xarakter oxu edirsinizsə bir dəfə, belə vasitəsilə iterating edirik 510 00:23:45,530 --> 00:23:49,910 Bu simli, onda siz yalnız bir oxumaq olacaq bir zamanda xarakter almaq qədər 511 00:23:49,910 --> 00:23:50,850 backslash 0. 512 00:23:50,850 --> 00:23:52,335 Ki, cavab bilər Sizin sual olsa da. 513 00:23:52,335 --> 00:23:55,610 >> TƏLƏBƏ: Bəli, amma siz malloced ki, kosmik 514 00:23:55,610 --> 00:23:58,400 hələ ki, göstərici. 515 00:23:58,400 --> 00:24:02,510 >> JASON Hirschhorn: Mən kifayət qədər əmin deyiləm dəqiq nə baxırıq, 516 00:24:02,510 --> 00:24:03,640 Mən viktorina etməyib, çünki. 517 00:24:03,640 --> 00:24:06,370 Ki, yararlı bir olmaq idi başqa TF-dən resurs. 518 00:24:06,370 --> 00:24:11,380 Siz bir simli yaratmaq varsa dəstə və ya yerli dəyişən kimi, will 519 00:24:11,380 --> 00:24:16,920 yalnız ittihamlar array daha çox ola işarə ümumiyyətlə char ulduz 520 00:24:16,920 --> 00:24:18,600 başqa string. 521 00:24:18,600 --> 00:24:20,550 Amma bilmirəm. 522 00:24:20,550 --> 00:24:25,065 Yəni başqa bir göstərici ola bilər yığını string həmçinin. 523 00:24:25,065 --> 00:24:27,240 Bəli. 524 00:24:27,240 --> 00:24:31,116 >> TƏLƏBƏ: Mən sizə lazımdır ki, bilirik Bu göstərici olduqda yaddaş ayrılması 525 00:24:31,116 --> 00:24:33,360 daxilində elan olmaq başqa funksiyasının. 526 00:24:33,360 --> 00:24:36,740 Siz əgər eyni şey etmək lazımdır əsas daxilində elan olunur, 527 00:24:36,740 --> 00:24:39,570 Siz əsas daxilində istifadə etdiyiniz? 528 00:24:39,570 --> 00:24:43,590 >> JASON Hirschhorn: Belə ki, bəli. 529 00:24:43,590 --> 00:24:46,670 Siz hər hansı bir pointer elan edə bilər yaddaş yaddaş ünvanı. 530 00:24:46,670 --> 00:24:51,440 Bu yerli yaddaş ünvanı ola bilər dəyişən, oftentimes baxmayaraq, 531 00:24:51,440 --> 00:24:55,760 insanlar yaddaş ünvanları elan yoxdur onlar getmək, çünki yerli dəyişənlərin 532 00:24:55,760 --> 00:24:59,890 ki, funksiyası qaytarır üz dəfə, olan biz ümumiyyətlə şeyi malloc nə. 533 00:24:59,890 --> 00:25:04,630 Amma bəli, bir pointer bəyan edə bilər digər yerli dəyişən. 534 00:25:04,630 --> 00:25:06,360 Bu, sadəcə, ümumiyyətlə işlər deyil. 535 00:25:06,360 --> 00:25:09,480 Amma nəzər edə bilərsiniz sinif sonra xüsusi bir şey. 536 00:25:09,480 --> 00:25:10,650 Bəli. 537 00:25:10,650 --> 00:25:12,350 >> TƏLƏBƏ: Mən bu sort hesab edirəm istənir nə. 538 00:25:12,350 --> 00:25:16,930 Bu başlatılıyor üçün qəribə görünür deyil bir kimi bir pointer 539 00:25:16,930 --> 00:25:20,760 ünvanı, lakin nə bir dəyər kimi görünür. 540 00:25:20,760 --> 00:25:25,970 Bu CS50 içərisində nə kimi görünür şey işarə edilir və 541 00:25:25,970 --> 00:25:28,820 deyil, faktiki ünvanı, sağ? 542 00:25:28,820 --> 00:25:30,520 >> JASON Hirschhorn: Belə ki, deyil halda, baxmayaraq. 543 00:25:30,520 --> 00:25:32,470 Yəni nə deyil. 544 00:25:32,470 --> 00:25:35,910 Bir char ulduz elan zaman, bir yaddaş ünvan var. 545 00:25:35,910 --> 00:25:38,860 Pointers bütün yaddaş ünvanları başqa bir şey işarə. 546 00:25:38,860 --> 00:25:41,480 Başqa bir şey ola bilər yığını, lakin demək olar ki, həmişə var 547 00:25:41,480 --> 00:25:43,440 biz istifadə görəcəksiniz şəkildə yığın. 548 00:25:43,440 --> 00:25:46,860 549 00:25:46,860 --> 00:25:53,500 Amma stringname double-quote bərabərdir "GetString" biz bunu görürük və biz 550 00:25:53,500 --> 00:25:55,010 vasitəsilə baxmaq və kod bilər. 551 00:25:55,010 --> 00:26:01,190 GetString simli saxlanılır edilmir ki, dəyişən, və ya hər hansı string 552 00:26:01,190 --> 00:26:04,580 adı ki xilas edir dəyişən, çünki ki necə 553 00:26:04,580 --> 00:26:06,070 göstəricilərinə çalışır. 554 00:26:06,070 --> 00:26:06,770 Ki, hissi edirmi? 555 00:26:06,770 --> 00:26:07,170 >> TƏLƏBƏ: Bəli. 556 00:26:07,170 --> 00:26:08,570 >> JASON Hirschhorn: OK. 557 00:26:08,570 --> 00:26:11,690 İnşallah ki, deyil hər kəs üçün confusing. 558 00:26:11,690 --> 00:26:15,732 Bu idi əgər Lakin, biz bir daha baxmaq olar bir az, biz, həqiqətən, olacaq, çünki 559 00:26:15,732 --> 00:26:19,240 ümid edirəm olacaq bir şey kod strings ilə işləmək və hiss kömək 560 00:26:19,240 --> 00:26:22,170 onlara daha rahat. 561 00:26:22,170 --> 00:26:24,869 >> Bu ilə əlaqədar hər hansı digər suallar mövzular və ya digər mövzular ki, 562 00:26:24,869 --> 00:26:26,119 Mən geri qoymaq lazımdır? 563 00:26:26,119 --> 00:26:32,280 564 00:26:32,280 --> 00:26:34,840 Və - 565 00:26:34,840 --> 00:26:36,310 indi. 566 00:26:36,310 --> 00:26:37,630 Bəli, Alden. 567 00:26:37,630 --> 00:26:39,860 >> ALDEN: Belə ki, bu tamamilə olmayan, lakin biz yalnız bilərsiniz 568 00:26:39,860 --> 00:26:42,760 həqiqətən tez biz bilmək lazımdır nə bir 32 və arasında fərq haqqında 569 00:26:42,760 --> 00:26:46,345 64-bit maşın? 570 00:26:46,345 --> 00:26:47,740 >> JASON Hirschhorn: Bəli. 571 00:26:47,740 --> 00:26:52,111 Belə ki, 32 bit neçə bayt edir? 572 00:26:52,111 --> 00:26:53,060 >> ALDEN: Bu dörd bayt var. 573 00:26:53,060 --> 00:26:54,360 >> JASON Hirschhorn: Bu dörd bayt var. 574 00:26:54,360 --> 00:26:58,420 Və 64 bit neçə bayt edir? 575 00:26:58,420 --> 00:26:59,112 >> TƏLƏBƏ: Səkkiz. 576 00:26:59,112 --> 00:27:00,610 >> JASON Hirschhorn: Səkkiz bytes. 577 00:27:00,610 --> 00:27:03,980 Belə ki, yenə səkkiz bit bir byte edir. 578 00:27:03,980 --> 00:27:08,340 Sizin CS50 cihaz edir 32-bit maşın. 579 00:27:08,340 --> 00:27:13,650 Belə ki, yaddaş ünvanları uzun dörd bytes. 580 00:27:13,650 --> 00:27:17,460 2 32 var yaddaş ünvanları. 581 00:27:17,460 --> 00:27:21,310 0 32 minus 1 2. 582 00:27:21,310 --> 00:27:27,630 Mən müsbət deyiləm, lakin ki Sizə lazım nə yəqin ki, əhatə dairəsi 583 00:27:27,630 --> 00:27:35,230 , 32-bit maşın bilirəm ki, yaddaş ünvanları, yenə dörd bytes uzun 584 00:27:35,230 --> 00:27:39,620 ki, maksimum məbləği yaddaş ünvanları. 585 00:27:39,620 --> 00:27:41,680 >> Həmçinin, məlumat növləri - 586 00:27:41,680 --> 00:27:45,020 bu kimi bir şey ola bilər yaxşı ki, qeyd dəyər. 587 00:27:45,020 --> 00:27:49,610 Bir veri növü ölçüsü asılıdır siz çalışırıq maşın. 588 00:27:49,610 --> 00:27:56,760 Belə ki, bir char, bir xarakter, necə bizim CS50 cihaz haqqında çox bytes? 589 00:27:56,760 --> 00:27:57,980 Bir byte. 590 00:27:57,980 --> 00:28:02,310 Və bu, həqiqətən bir byte kimi var də 64-bit maşın. 591 00:28:02,310 --> 00:28:05,920 >> Və ən data növləri eyni sayda var iki maşın bayt. 592 00:28:05,920 --> 00:28:11,620 Lakin bəzi data növləri fərqli olacaq həm maşın. 593 00:28:11,620 --> 00:28:14,590 Belə ki, potensial olacaq Bildiyiniz üçün lazım olan yalnız bir şey. 594 00:28:14,590 --> 00:28:16,710 >> Amma belə ki, hesab edirəm ki, hüdudlarından kənarda - 595 00:28:16,710 --> 00:28:20,990 Geri baxmaq əgər mən, demək olar ki, müsbət deyiləm köhnə sınavlar, o deyir ki, güman 596 00:28:20,990 --> 00:28:24,090 istifadə etdiyiniz problemlər kodlaşdırma 32-bit maşın. 597 00:28:24,090 --> 00:28:26,620 598 00:28:26,620 --> 00:28:30,620 Amma ki, ilə birlikdə getmək üçün var maraqlı olduğunuz halda var 599 00:28:30,620 --> 00:28:35,920 eyni olan məlumat növləri bütün maşın ölçüsü. 600 00:28:35,920 --> 00:28:42,670 >> Siz kimi bir şey gördüm varsa uint32_t, siz bilər və ya 601 00:28:42,670 --> 00:28:43,260 ki, gördük. 602 00:28:43,260 --> 00:28:44,290 Ki, bir veri növü var. 603 00:28:44,290 --> 00:28:47,570 32 bit ki olursa olsun, deyə edilir bu nə maşın deyil. 604 00:28:47,570 --> 00:28:50,350 Belə ki, insanlar portativ yazılı zaman kodu, onlar yəqin ki, ints istifadə edəcək. 605 00:28:50,350 --> 00:28:53,260 Onlar əvəzinə bu digər məlumatları istifadə edəcəyik Onlar bilirlər ki növləri eyni olacaq 606 00:28:53,260 --> 00:28:54,780 hər bir maşın ölçüsü. 607 00:28:54,780 --> 00:28:58,080 608 00:28:58,080 --> 00:28:58,250 Madhu. 609 00:28:58,250 --> 00:29:00,150 >> Madhu: Mən bir sual var idi Tərtibi proses. 610 00:29:00,150 --> 00:29:04,110 Belə ki, istifadə edir ki, proqram yazılı edirsinizsə CS50 və ya bir şey kimi bir kitabxana 611 00:29:04,110 --> 00:29:06,840 kimi, mən bilirəm ki, kitabxana , bir nöqtədə, olmalıdır 612 00:29:06,840 --> 00:29:08,590 tərtib və daxil bağlıdır 613 00:29:08,590 --> 00:29:13,380 Amma nə qədər ki, zamanı baş proqram tərtibi? 614 00:29:13,380 --> 00:29:15,880 Ki, kitabxana prosesinin hansı hissəsi Siz etdiyiniz zaman baş verir 615 00:29:15,880 --> 00:29:18,560 öz proqram tərtib? 616 00:29:18,560 --> 00:29:24,020 >> JASON Hirschhorn: Belə ki, üzərində gedək Bu prosesin ümumiyyətlə addımlar. 617 00:29:24,020 --> 00:29:26,280 Siz. C fayl yazmaq. 618 00:29:26,280 --> 00:29:33,530 Sizin. C fayl, siz # daxildir sizin header kitabxana, məsələn, cs50.h. 619 00:29:33,530 --> 00:29:39,480 Kəskin daxildir ki, nə edir line proqram üçün nə? 620 00:29:39,480 --> 00:29:40,525 Akchar. 621 00:29:40,525 --> 00:29:43,350 >> AKCHAR: Bu prototipləri edir mövzu olan funksiyaları 622 00:29:43,350 --> 00:29:45,120 kitabxanalarda faylları. 623 00:29:45,120 --> 00:29:45,600 >> JASON Hirschhorn: Exactly. 624 00:29:45,600 --> 00:29:49,870 O funksiyası prototipləri edir Sizin kodu. 625 00:29:49,870 --> 00:29:55,230 Sizin kodu tərtib olunur Belə ki, erkən mərhələləri, compiler bilir 626 00:29:55,230 --> 00:29:59,250 bu funksiyaları həqiqətən var, və ki, ki, haradasa onlar müəyyən edilmişdir. 627 00:29:59,250 --> 00:30:02,460 The. H faylları daxildir yoxdur bu funksiyalar üçün anlayışlar və ya necə 628 00:30:02,460 --> 00:30:03,950 həqiqətən çalışır. 629 00:30:03,950 --> 00:30:07,960 Cs50.h yalnız deyir ki, bir şey daxildir GetString bir real bir şeydir ki, 630 00:30:07,960 --> 00:30:09,270 baş verə bilər. 631 00:30:09,270 --> 00:30:14,240 Və standardio.h printf deyir ola bilər ki, bir real şey. 632 00:30:14,240 --> 00:30:23,190 >> Belə ki, bu ilə c dil. Header fayl bəzi çevrilmiş olur 633 00:30:23,190 --> 00:30:27,750 maşın-oxunaqlı kodu, axırda ikili çevrilmiş olur 634 00:30:27,750 --> 00:30:30,030 kodu, 0 və 1-in. 635 00:30:30,030 --> 00:30:33,590 Və bu kodu ki, nəticədə icra edilir. 636 00:30:33,590 --> 00:30:38,550 The-l cs50 line - məsələn, cingilti yazılı etdiyiniz zaman - 637 00:30:38,550 --> 00:30:41,830 və sonra daxildir-l cs50, Daxil ki, yazın 638 00:30:41,830 --> 00:30:42,180 Və görürük. 639 00:30:42,180 --> 00:30:43,890 Etmək yazmaq zaman, will up burada line bax. 640 00:30:43,890 --> 00:30:47,740 Və biz ikinci ki, görürsünüz zaman biz kod və ya daha sonra zaman biz kod. 641 00:30:47,740 --> 00:30:50,390 >> Amma-l cs50 line bir şey yoxdur bir az fərqli 642 00:30:50,390 --> 00:30:52,440 Bu # cs50.h. daxil 643 00:30:52,440 --> 00:30:56,300 Ki,-l cs50 line nə edir? 644 00:30:56,300 --> 00:30:56,820 Avi? 645 00:30:56,820 --> 00:31:00,310 >> AVI: Mən links demək istəyirəm ki, funksiyası kitabxana 646 00:31:00,310 --> 00:31:02,710 Bu. o faylları kimi zəng. 647 00:31:02,710 --> 00:31:08,200 >> JASON Hirschhorn: Belə ki, çox yaxın, spot-on əgər. 648 00:31:08,200 --> 00:31:16,220 The-l cs50 ikili fayl edir və Sizin ikili fayl ilə əlaqələnir. 649 00:31:16,220 --> 00:31:21,410 Belə ki, cs50.h, dönüş heç bir məqam var hər ikili C dil cs50.h 650 00:31:21,410 --> 00:31:23,130 istifadə olunur bir zaman. 651 00:31:23,130 --> 00:31:26,650 Ki, silly olardı ki çox vaxt sərf edirəm. 652 00:31:26,650 --> 00:31:30,420 Belə ki, artıq tərtib edilmişdir və yürütülebilir çevrildi. 653 00:31:30,420 --> 00:31:35,430 Və indi birləşdi olacaq sonunda fayl ilə. 654 00:31:35,430 --> 00:31:38,370 Belə ki, həmin 1 və 0-ın gedir Sizin yeniləri ilə birləşməsi 655 00:31:38,370 --> 00:31:39,150 və sonunda 0 nin. 656 00:31:39,150 --> 00:31:43,670 Belə ki, indi siz həqiqətən faktiki lazımdır 1 və 0-ın necə GetString müəyyən ki, 657 00:31:43,670 --> 00:31:47,890 məsələn, çalışır, və ya necə printf məsələn, çalışır. 658 00:31:47,890 --> 00:31:52,750 >> Və daha çox məlumat üçün, var bir Nate verir ki, qısa tərtibçiləri 659 00:31:52,750 --> 00:31:55,410 Siz ki, gedir yoxlamaq lazımdır Bu addımlar vasitəsilə. 660 00:31:55,410 --> 00:31:56,050 Amma - 661 00:31:56,050 --> 00:31:56,560 bəli. 662 00:31:56,560 --> 00:32:01,700 >> TƏLƏBƏ: onlar həmişə o faylları. Onlar kitabxana formada olduğunuzda, 663 00:32:01,700 --> 00:32:06,764 kimi - bağlı, birləşdi hazır onlar ikili kod istəyirik? 664 00:32:06,764 --> 00:32:07,600 >> JASON Hirschhorn: OK. 665 00:32:07,600 --> 00:32:08,420 Nə - 666 00:32:08,420 --> 00:32:11,780 >> TƏLƏBƏ: Ki həmişə halda kitabxanalar siz onlara keçid zaman? 667 00:32:11,780 --> 00:32:12,500 >> JASON Hirschhorn: Bəli. 668 00:32:12,500 --> 00:32:17,300 Belə ki. S olacaq faylları var da olacaq maşın kodu, 669 00:32:17,300 --> 00:32:17,975 sizə sirli. 670 00:32:17,975 --> 00:32:19,410 Siz bu barədə narahat ehtiyac yoxdur. 671 00:32:19,410 --> 00:32:24,930 Amma ümumiyyətlə, yeah, onlar lazımdır o getmək üçün hazır faylları. ola bilər. 672 00:32:24,930 --> 00:32:27,170 >> TƏLƏBƏ: Belə ki, gəmi zaman kitabxana, yalnız gəmi yoxdur 673 00:32:27,170 --> 00:32:28,880 Bu. h və. o? 674 00:32:28,880 --> 00:32:32,210 Siz. C və ya. S gəmi yoxdur. 675 00:32:32,210 --> 00:32:33,070 >> JASON Hirschhorn: Belə ki, - 676 00:32:33,070 --> 00:32:36,260 və bu halda, eləcə də bu qısa edir bu məlumat bir gələn görünür 677 00:32:36,260 --> 00:32:36,700 az tez. 678 00:32:36,700 --> 00:32:39,870 Amma derleyiciler haqqında qısa bu barədə danışıqlar həmçinin. 679 00:32:39,870 --> 00:32:43,290 Bir kitabxana gəmi zaman, əgər gəmi Bu. h, mövzu fayl, o 680 00:32:43,290 --> 00:32:46,290 Funksiyası prototipləri və 1 və 0 nin ki, sizə lazım olan bütün var. 681 00:32:46,290 --> 00:32:50,640 Siz vermək lazım deyil necə funksiyası. c fayl işləyir. 682 00:32:50,640 --> 00:32:56,360 Çünki abstraksiya point, və ya API point, bu SPL da point, 683 00:32:56,360 --> 00:32:59,650 Stanford portativ kitabxana, bu siz narahat deyil üçün necə yeni 684 00:32:59,650 --> 00:33:04,220 GRect, işləyir, və ya necə işləri hərəkət və ya necə işləri əlavə edin. 685 00:33:04,220 --> 00:33:06,520 Bildiyiniz üçün lazım olan bütün ki, əlavə edir Siz ki, bir funksiyası 686 00:33:06,520 --> 00:33:08,880 istifadə və bu yoxdur. 687 00:33:08,880 --> 00:33:12,760 Beləliklə, siz həqiqətən bilmək ehtiyac yoxdur necə Bu C. Siz yazılı yalnız lazımdır 688 00:33:12,760 --> 00:33:15,460 bilirsiniz, burada funksiyaları, nə onlar etmək, və burada 1 və 0 nin 689 00:33:15,460 --> 00:33:18,870 Siz, həqiqətən, onlara istifadə etmək istədiyiniz zaman. 690 00:33:18,870 --> 00:33:19,530 >> Cool. 691 00:33:19,530 --> 00:33:26,980 Derleyiciler haqqında daha çox suallar və ya board digər mövzular? 692 00:33:26,980 --> 00:33:30,300 >> TƏLƏBƏ: Mən bir sual var recursive funksiyaları həyata keçirir. 693 00:33:30,300 --> 00:33:31,170 Recursion haqqında sual. 694 00:33:31,170 --> 00:33:33,030 Mən gəlib ki, bir hissi var idi. 695 00:33:33,030 --> 00:33:38,310 Belə ki, tez ilə gedək xüsusi ilə recursion 696 00:33:38,310 --> 00:33:40,690 Məsələn, bir faktöryel funksiyası. 697 00:33:40,690 --> 00:33:44,920 Bu bir nümunəsidir, çünki tez-tez gəlir və ya istifadə olunur 698 00:33:44,920 --> 00:33:46,170 recursion göstərmək üçün. 699 00:33:46,170 --> 00:33:52,390 700 00:33:52,390 --> 00:33:56,410 >> Belə ki, "4" 4 Faktorial kimi oxumaq edir. 701 00:33:56,410 --> 00:33:59,120 Və 4 faktöryel nə deməkdir? 702 00:33:59,120 --> 00:34:00,696 O nə edir? 703 00:34:00,696 --> 00:34:02,235 Necə 4 faktöryel hesablamaq edirsiniz? 704 00:34:02,235 --> 00:34:05,250 705 00:34:05,250 --> 00:34:07,960 4 dəfə 3 dəfə 2 dəfə 1. 706 00:34:07,960 --> 00:34:11,889 >> 4 Faktorial yazmaq üçün başqa bir yol Bu yazmaq üçün. 707 00:34:11,889 --> 00:34:16,780 708 00:34:16,780 --> 00:34:19,022 4 dəfə 3 faktöryel. 709 00:34:19,022 --> 00:34:22,080 3 faktöryel Çünki 3 dəfə 2 dəfə 1. 710 00:34:22,080 --> 00:34:27,580 Belə ki, 4 dəfə 3 faktöryel 4 dəfə 3 dəfə 2 dəfə 1. 711 00:34:27,580 --> 00:34:32,679 Faktöryel böyük niyə bu recursion üçün namizəd, çünki 712 00:34:32,679 --> 00:34:36,630 ki, bir şey aydındır ki, bir üzərində və üzərində olur 713 00:34:36,630 --> 00:34:39,820 şeyi kiçik sayı qədər Əgər sonunda çatmaq. 714 00:34:39,820 --> 00:34:42,570 Siz 1 çatdıqda, 1 faktöryel 1. 715 00:34:42,570 --> 00:34:43,719 Siz çox daha getmək bilməz. 716 00:34:43,719 --> 00:34:47,219 0 faktöryel də 1 kimi müəyyən edilir. 717 00:34:47,219 --> 00:34:50,679 Siz 1 və ya 0 almaq zaman Belə ki, siz sonunda, və siz 718 00:34:50,679 --> 00:34:53,219 geri gedən başlamaq. 719 00:34:53,219 --> 00:34:59,540 Biz recursive yazmaq istədim əgər bir faktöryel hesablamaq funksiyası, 720 00:34:59,540 --> 00:35:02,170 biz bəzi yazmaq olacaq ki, indi üçün pseudocode. 721 00:35:02,170 --> 00:35:03,300 Ki, pseudocode yazmaq əvvəl - 722 00:35:03,300 --> 00:35:05,660 Mən sizə uşaqlar bir neçə dəqiqə verəcəyik yalançı kodu yazmaq və ya yalnız düşünmək üçün 723 00:35:05,660 --> 00:35:09,600 bu barədə - hər iki şey var recursive funksiyası lazımdır. 724 00:35:09,600 --> 00:35:12,530 Bu iki şey nədir? 725 00:35:12,530 --> 00:35:13,220 >> JACK: Bu özü zəng etmək üçün var. 726 00:35:13,220 --> 00:35:13,680 >> JASON Hirschhorn: Noah? 727 00:35:13,680 --> 00:35:14,460 Oh, Jack. 728 00:35:14,460 --> 00:35:15,100 Durmayın. 729 00:35:15,100 --> 00:35:16,640 >> JACK: Bu özü zəng etmək üçün var. 730 00:35:16,640 --> 00:35:19,220 >> JASON Hirschhorn: Belə bir recursive funksiyası, bir recursive zəng lazımdır 731 00:35:19,220 --> 00:35:20,220 özü zəng. 732 00:35:20,220 --> 00:35:20,770 Ki, biri. 733 00:35:20,770 --> 00:35:21,510 Və digər şey nədir? 734 00:35:21,510 --> 00:35:22,250 >> JACK: A baza halda. 735 00:35:22,250 --> 00:35:23,780 >> JASON Hirschhorn: A baza halda. 736 00:35:23,780 --> 00:35:26,940 A baza halda biz dayandırmaq zaman burada edir. 737 00:35:26,940 --> 00:35:29,510 Belə ki, funksiyası adlanır olur. 738 00:35:29,510 --> 00:35:31,410 Ėsas birinci gəlir. 739 00:35:31,410 --> 00:35:33,710 Siz sonunda əgər bilmək istəyirəm. 740 00:35:33,710 --> 00:35:37,110 Və siz, sonunda siz değilseniz Sizin recursive zəng etmək. 741 00:35:37,110 --> 00:35:39,880 Və yenə bu funksiyası vasitəsilə getmək yenidən sizin baza halda yoxlamaq. 742 00:35:39,880 --> 00:35:42,575 Siz son değilseniz, siz etmək başqa recursive zəng, 743 00:35:42,575 --> 00:35:44,130 et Cetera, Et Cetera. 744 00:35:44,130 --> 00:35:47,110 >> Ona görə recursive funksiyaları həmişə var o baza hallarda və bu ehtiyac 745 00:35:47,110 --> 00:35:48,210 recursive zənglər. 746 00:35:48,210 --> 00:35:51,280 Bir recursive zəng yoxdur, bu, bir recursive funksiyası olmaz. 747 00:35:51,280 --> 00:35:53,210 Bir baza halda olmasaydı, siz əbədi getmək olardı 748 00:35:53,210 --> 00:35:54,780 Heç sona olacaq. 749 00:35:54,780 --> 00:35:57,870 Və baza halda həmişə birinci gəlir, həmişə yoxlamaq istəyirəm, çünki 750 00:35:57,870 --> 00:36:00,420 ilk sonunda əgər. 751 00:36:00,420 --> 00:36:04,770 Biz bəzi pseudocode bunu əvvəl, niyə düşünmək üçün bir dəqiqə etmirlər 752 00:36:04,770 --> 00:36:09,360 necə bir recursive faktöryel funksiyası yazılı olardı? 753 00:36:09,360 --> 00:36:23,340 754 00:36:23,340 --> 00:36:26,010 >> Həmçinin, Siz bunu kimi bir çox, yazı bir kağız hesabatında bu deyil 755 00:36:26,010 --> 00:36:27,960 siz olacaq nə sabah viktorina etmək. 756 00:36:27,960 --> 00:36:32,160 Etmək üçün belə yəqin ki, yaxşı təcrübə Siz yazılı etdiyiniz kodu 757 00:36:32,160 --> 00:36:34,420 kağız hesabatında aşağı - 758 00:36:34,420 --> 00:36:35,160 və ya bunu edə bilərsiniz. 759 00:36:35,160 --> 00:36:36,710 Bu semicolons harada bilirsiniz. 760 00:36:36,710 --> 00:36:37,660 Siz sintaksis xatırlayıram. 761 00:36:37,660 --> 00:36:40,400 Siz edə deyilik, çünki compiler bir səhv demək. 762 00:36:40,400 --> 00:37:02,356 763 00:37:02,356 --> 00:37:07,240 >> Həmçinin, o xətləri, sabah boyunca zaman Əgər siz, problemlər kodlaşdırma var 764 00:37:07,240 --> 00:37:11,490 dəfə qaçdı, və ya çox değilseniz Siz ehtimal etdiyiniz nə kimi səhv 765 00:37:11,490 --> 00:37:16,030 c xüsusi şey yazmaq, bu, yalançı kod yazmaq üçün siz behoove olardı 766 00:37:16,030 --> 00:37:18,160 və eləcə də şərh yazın. 767 00:37:18,160 --> 00:37:21,940 Bir üçün qismən kredit var, çünki viktorina suallar çox. 768 00:37:21,940 --> 00:37:24,840 Belə ki, siz qaçdı, və ya ola bilər yalnız qarışıq ola bilər. 769 00:37:24,840 --> 00:37:28,030 Şərh və ya yalançı kodu Yazı tez-tez yolları ki, 770 00:37:28,030 --> 00:37:29,360 qismən kredit əldə edə bilərsiniz. 771 00:37:29,360 --> 00:37:31,440 >> Belə ki, bir şey tərk etməyin viktorina boş. 772 00:37:31,440 --> 00:37:33,490 Üçün heç bir cəza var daxil şeyi qoyulması 773 00:37:33,490 --> 00:37:37,650 Əslində, yalançı kodu qoyulması və ya şərh sinif şagirdi kömək edir 774 00:37:37,650 --> 00:37:40,410 Siz həqiqətən bilirsinizsə anlamaq nə Siz bəlkə mükafat bəhs edirik 775 00:37:40,410 --> 00:37:42,030 ki, bəzi qismən kredit. 776 00:37:42,030 --> 00:37:44,510 >> Həmçinin o xətlər boyunca, aydın yazın. 777 00:37:44,510 --> 00:37:47,650 Biz, həqiqətən, siz yazıyoruz bilməz nə varsa, biz sizə zəng etmək fikrində deyilik 778 00:37:47,650 --> 00:37:49,900 rəqəm midnight sabah yazırdı nə. 779 00:37:49,900 --> 00:37:51,520 Biz yalnız xal çıxarmaq olacaq. 780 00:37:51,520 --> 00:37:56,570 Belə ki, biz daha doğrusu eşitmək, və ya aydın yaz, biz yazırdı nə oxuya bilərsiniz. 781 00:37:56,570 --> 00:38:00,230 >> Və bu iki cümlə desə, bir paraqraf yazmaq yoxdur. 782 00:38:00,230 --> 00:38:02,280 Təlimatları izləyin. 783 00:38:02,280 --> 00:38:03,500 Aydın yazın. 784 00:38:03,500 --> 00:38:07,720 Və o şərh yazmaq və ya suallara pseudocode bilər ki, 785 00:38:07,720 --> 00:38:10,270 mükafat qismən kredit. 786 00:38:10,270 --> 00:38:12,520 >> OK, faktöryel gedək. 787 00:38:12,520 --> 00:38:15,000 Beləliklə, biz bir funksiyası Faktorial var. 788 00:38:15,000 --> 00:38:18,400 789 00:38:18,400 --> 00:38:21,550 Mən, həqiqətən, C, bu yazmaq olsaydı, nə adı əvvəl qoymaq lazımdır 790 00:38:21,550 --> 00:38:22,800 funksiyası? 791 00:38:22,800 --> 00:38:24,880 792 00:38:24,880 --> 00:38:30,060 Qaytarılması növü, bu olan, halda, biz int verəcəyik. 793 00:38:30,060 --> 00:38:35,450 Və sonra qıvrım aşırma daxilində deyil, nə üçün qıvrım aşırma daxilində gedir 794 00:38:35,450 --> 00:38:36,850 bir funksiyası? 795 00:38:36,850 --> 00:38:37,950 >> TƏLƏBƏLƏR: Argument növü. 796 00:38:37,950 --> 00:38:39,150 >> JASON Hirschhorn: Onun dəlilləri. 797 00:38:39,150 --> 00:38:42,680 Belə ki, faktöryel yəqin ki, bir mübahisə edirlər. 798 00:38:42,680 --> 00:38:44,500 Bu yəqin ki, yalnız bir arqument almaq lazımdır. 799 00:38:44,500 --> 00:38:49,450 Və biz bu almaq lazımdır demək lazımdır tam x çağırıb. 800 00:38:49,450 --> 00:38:52,770 Və yenə, prototip yazarkən bir funksiyası və ya funksiyası yazılı 801 00:38:52,770 --> 00:38:57,110 siz təyin əvvəl kodu məlumat növü və adını yazmaq 802 00:38:57,110 --> 00:39:01,370 yalnız funksiyası üçün dəyişən. 803 00:39:01,370 --> 00:39:06,350 Belə ki, bu bəzi sayı keçə bilər funksiyası, x adlandırılacaq olacaq 804 00:39:06,350 --> 00:39:07,340 məcburi. 805 00:39:07,340 --> 00:39:08,755 >> Biz faktöryel funksiyası var. 806 00:39:08,755 --> 00:39:12,030 807 00:39:12,030 --> 00:39:15,850 Biz iki şeyi, bir baza işi lazımdır və bir recursive zəng. 808 00:39:15,850 --> 00:39:20,900 Faktöryel üçün əsas nədir? 809 00:39:20,900 --> 00:39:24,850 Onu yazmış və kim olan kimsə hələ danışıq, baza nə 810 00:39:24,850 --> 00:39:26,100 faktöryel üçün halda? 811 00:39:26,100 --> 00:39:28,400 812 00:39:28,400 --> 00:39:30,930 >> TƏLƏBƏ: n az olduqda 2-dən, 1 qayıtmaq. 813 00:39:30,930 --> 00:39:33,520 >> JASON Hirschhorn: n varsa 2-dən az, 1 qayıtmaq. 814 00:39:33,520 --> 00:39:37,216 Mən istəyirəm ki, çünki 0 və 1 qayğısına qalır. 815 00:39:37,216 --> 00:39:45,290 Belə ki, biz, x <2 do 1 qayıtmaq lazımdır. 816 00:39:45,290 --> 00:39:47,870 Biz almaq əgər biz, 0 keçdi almaq 1 keçdi, bu funksiya olacaq 817 00:39:47,870 --> 00:39:49,790 dərhal 1 qayıtmaq. 818 00:39:49,790 --> 00:39:54,020 Biz bir sıra YÜKSƏLİRDİ keçdi almaq dən və ya 2 bərabər, biz olacaq 819 00:39:54,020 --> 00:39:55,370 Bizim recursive zəng var. 820 00:39:55,370 --> 00:39:57,855 >> Və necə ki, iş gedir? 821 00:39:57,855 --> 00:40:01,070 Can bu işləyən başqası hələ danışıq mənə vermək 822 00:40:01,070 --> 00:40:07,380 bu funksiya üçün recursive zəng edin pseudocode? 823 00:40:07,380 --> 00:40:10,770 Biz bir sıra x keçdi almaq və 2-dən böyük, nə 824 00:40:10,770 --> 00:40:13,370 Biz nə etmək istəyirsiniz? 825 00:40:13,370 --> 00:40:17,930 Biz də nümunə haqqında yazılı bir ipucu verə bilər ki, yan. 826 00:40:17,930 --> 00:40:20,770 >> TƏLƏBƏ: x dəfə zəng x minus 1 faktöryel? 827 00:40:20,770 --> 00:40:22,020 >> JASON Hirschhorn: Məhz hüququ. 828 00:40:22,020 --> 00:40:24,610 829 00:40:24,610 --> 00:40:37,750 Biz x dəfə geri olacaq x minus 1 faktöryel. 830 00:40:37,750 --> 00:40:41,810 Və mən yazdı, baxmayaraq ki, əsasən, nə İngilis deyilir, 831 00:40:41,810 --> 00:40:44,580 Bu faktöryel funksiyası yenə adlı olacaq. 832 00:40:44,580 --> 00:40:46,320 Bu x minus 1 icra edəcəyik. 833 00:40:46,320 --> 00:40:49,320 Bəzi tam ilə qayıtmaq lazımdır və sonra bu iki çoxaltmaq lazımdır 834 00:40:49,320 --> 00:40:52,050 birlikdə ki, dəyəri olacaq bu deyilən nə döndü 835 00:40:52,050 --> 00:40:55,010 faktöryel funksiyası olan qüdrəti başqa instansiya ola 836 00:40:55,010 --> 00:40:58,420 Bu faktöryel funksiyası. 837 00:40:58,420 --> 00:41:01,360 >> Belə ki, bir recursive bir nümunəsidir funksiyası, bir çox 838 00:41:01,360 --> 00:41:02,530 sadə recursive funksiyası. 839 00:41:02,530 --> 00:41:04,530 Lakin onların əksəriyyəti bu kimi olacaq. 840 00:41:04,530 --> 00:41:11,170 Yaxşı bir recursive istəyirsinizsə viktorina üçün etiraz, kodlaşdırma cəhd 841 00:41:11,170 --> 00:41:13,230 ikili axtarış recursively. 842 00:41:13,230 --> 00:41:18,950 Çünki sizin üçün ikili axtarış əgər problem üç set, siz yəqin ki, bunu 843 00:41:18,950 --> 00:41:21,730 iteratively isə loop. 844 00:41:21,730 --> 00:41:23,700 >> Lakin bu da yazılı bilər recursively. 845 00:41:23,700 --> 00:41:26,310 Siz öz yazmaq lazım olacaq Bəzi edir ki, ayrı-ayrı funksiyası 846 00:41:26,310 --> 00:41:29,020 müxtəlif komanda-line dəlilləri və ya - deyil command-line dəlilləri, bəzi 847 00:41:29,020 --> 00:41:30,910 müxtəlif yalnız müntəzəm dəlilləri. 848 00:41:30,910 --> 00:41:33,870 Amma ikili axtarış yazmaq bilər recursively həmçinin. 849 00:41:33,870 --> 00:41:36,190 >> TƏLƏBƏ: Beləliklə, siz də yazılı ola bilər, əvəzinə x mənfi 1, siz 850 00:41:36,190 --> 00:41:39,502 də x minus yazılı ola bilər minus, və ya ola bilər 851 00:41:39,502 --> 00:41:40,830 yazılı minus minus x. 852 00:41:40,830 --> 00:41:44,740 Siz yalnız həqiqətən tez izah edə bilər o fərqli şeylər ola bilər, 853 00:41:44,740 --> 00:41:49,510 fərq arasında nə kimi x minus minus minus minus x? 854 00:41:49,510 --> 00:41:51,320 >> JASON Hirschhorn: Xeyr, mən deyiləm ki, getmək üçün gedir. 855 00:41:51,320 --> 00:41:55,500 Amma sonra bu barədə sizə danışmaq olacaq class. x minus minus, minus minus x 856 00:41:55,500 --> 00:41:57,780 1-x azalma. 857 00:41:57,780 --> 00:41:59,090 Lakin onlar bir az fərqli bunu. 858 00:41:59,090 --> 00:42:00,340 Amma getmək istəmirəm. 859 00:42:00,340 --> 00:42:04,330 860 00:42:04,330 --> 00:42:09,090 Recursion haqqında digər suallar və ya bu funksiya? 861 00:42:09,090 --> 00:42:10,140 Ki, həqiqətən belə pseudocode deyil. 862 00:42:10,140 --> 00:42:15,060 Bu əsasən də kod Bunun üçün yazmaq olardı C. 863 00:42:15,060 --> 00:42:19,393 >> OK, hər hansı digər suallar burada mövzular up haqqında? 864 00:42:19,393 --> 00:42:19,864 Bəli. 865 00:42:19,864 --> 00:42:23,130 >> TƏLƏBƏ: Mən tez rundown var üzən point və dəqiq. 866 00:42:23,130 --> 00:42:24,260 >> JASON Hirschhorn: üzən point və dəqiq. 867 00:42:24,260 --> 00:42:26,920 Can kimsə həqiqətən tez Mənə bir rundown vermək 868 00:42:26,920 --> 00:42:28,210 üzən point və dəqiq? 869 00:42:28,210 --> 00:42:30,420 Siz bütün bu nə idi problem müəyyən, belə ki, bütün istəyirik 870 00:42:30,420 --> 00:42:31,700 tanış. 871 00:42:31,700 --> 00:42:35,090 Və ya bəlkə deyil bütün sizin. 872 00:42:35,090 --> 00:42:36,602 Hər kəs? 873 00:42:36,602 --> 00:42:39,530 Mənə bir başladı spot verin. 874 00:42:39,530 --> 00:42:40,750 Üzən point və dəqiq. 875 00:42:40,750 --> 00:42:42,380 Bu problem nədir? 876 00:42:42,380 --> 00:42:42,960 Bəli. 877 00:42:42,960 --> 00:42:43,680 Victoria? 878 00:42:43,680 --> 00:42:44,480 >> VANESSA: Vanessa. 879 00:42:44,480 --> 00:42:45,285 >> JASON Hirschhorn: Vanessa. 880 00:42:45,285 --> 00:42:45,680 Üzr istəyirik. 881 00:42:45,680 --> 00:42:51,550 >> VANESSA: yalnız məhdud sayda var təmsil oluna bilər ki, nömrələri 882 00:42:51,550 --> 00:42:57,930 Bir, də istəyirik, çünki bizim halda, bir 32-bit sistem. 883 00:42:57,930 --> 00:43:03,080 Beləliklə, siz cür var bir ədəd təşkil edir. 884 00:43:03,080 --> 00:43:03,910 >> JASON Hirschhorn: Belə ki, doğru. 885 00:43:03,910 --> 00:43:08,110 Yalnız müəyyən bir məbləği var təmsil oluna bilər ki ədəd. 886 00:43:08,110 --> 00:43:11,770 Iki çox böyük nömrələri çoxaltmaq əgər, Bu məbləğ daşqın bilər 887 00:43:11,770 --> 00:43:13,950 fəzalarında siz təmsil etmək tam. 888 00:43:13,950 --> 00:43:17,930 Bəzən biz istifadə edirik bir əvəzinə int uzun uzun. 889 00:43:17,930 --> 00:43:19,210 Daha boşluq var. 890 00:43:19,210 --> 00:43:21,210 Ki, bir daha çox aça bilər. 891 00:43:21,210 --> 00:43:24,310 >> Üzən point dəqiq nə var ki, həm də nə var 892 00:43:24,310 --> 00:43:29,300 decimal nömrələri faktı həmişə təmsil deyil. 893 00:43:29,300 --> 00:43:29,540 Üzr istəyirik. 894 00:43:29,540 --> 00:43:31,280 Görüntülərini geri up qoymaq edək. 895 00:43:31,280 --> 00:43:36,610 The decimal sayı 1.0 həmişə deyil sizin kimi təmsil gözləmək olardı, 896 00:43:36,610 --> 00:43:40,770 1,000000000. 897 00:43:40,770 --> 00:43:50,360 Bəzən kimi təmsil olunur 1,000000001 və ya 0,999999999. 898 00:43:50,360 --> 00:43:52,780 Bu hətta 89 atılan bilər haradasa orada. 899 00:43:52,780 --> 00:43:56,560 Belə ki, həmin decimal ədəd deyil dəqiq olduğu kimi təmsil 900 00:43:56,560 --> 00:43:58,430 onlara təmsil gözləyirik. 901 00:43:58,430 --> 00:44:00,010 >> Belə ki, problem müəyyən - 902 00:44:00,010 --> 00:44:00,860 iki idi? - 903 00:44:00,860 --> 00:44:05,290 problem biz məşğul olduğu iki, müəyyən biz istəyirdi zaman üzən point nömrələri, 904 00:44:05,290 --> 00:44:08,690 onlara biz nə istədiyini dəqiq təmsil etmək onlara təmsil etmək, sayı 905 00:44:08,690 --> 00:44:12,860 pennies, və ya sent sayı, biz 100 onları çoxaltmaq. 906 00:44:12,860 --> 00:44:14,750 Biz onları dairəvi. 907 00:44:14,750 --> 00:44:18,660 Və sonra biz hər şeyi kəsmək Bu kəsir arxasında. 908 00:44:18,660 --> 00:44:22,020 Təmin etmək üçün idi ki, onlar ki, biz nə istədiyini dəqiq həqiqətən bərabər 909 00:44:22,020 --> 00:44:22,410 onlara bərabər. 910 00:44:22,410 --> 00:44:26,870 >> Əgər bir şey almaq zaman ki, çünki bir float və bir int çevirmək 911 00:44:26,870 --> 00:44:29,860 sağ hər şey kəsmək Bu kəsir. 912 00:44:29,860 --> 00:44:33,900 Bəzi üzən point var, çünki qeyri-dəqiqlik, 100.000 ola bilər 913 00:44:33,900 --> 00:44:37,440 99,999999999 kimi təmsil. 914 00:44:37,440 --> 00:44:40,350 Və yalnız hər şey kəsmək əgər hemen sağ, siz olacaq 915 00:44:40,350 --> 00:44:41,600 yanlış sayı almaq. 916 00:44:41,600 --> 00:44:44,050 917 00:44:44,050 --> 00:44:44,180 Bəli. 918 00:44:44,180 --> 00:44:45,290 >> TƏLƏBƏ: Mən bir sual haqqında tökmə. 919 00:44:45,290 --> 00:44:47,500 Nə üçün baş verir? 920 00:44:47,500 --> 00:44:54,480 Siz float etmək istəyirsinizsə, mötərizədə, 1 bölünür 10, 1, 10 ilə bölünür yoxdur etmir 921 00:44:54,480 --> 00:44:58,910 sonra 0.1 almaq, sonra dönüb bir float daxil o? 922 00:44:58,910 --> 00:45:01,470 >> JASON Hirschhorn: Əgər 10 bölünür 1 float - 923 00:45:01,470 --> 00:45:02,550 >> TƏLƏBƏ: Bəli, və sonra bərabərdir - 924 00:45:02,550 --> 00:45:04,240 yaxşı, bu zamanki bu bərabər var - 925 00:45:04,240 --> 00:45:04,690 Bəli. 926 00:45:04,690 --> 00:45:06,760 Siz bir float etmək istəyirsiniz? 927 00:45:06,760 --> 00:45:12,790 >> JASON Hirschhorn: OK, belə ki, biz olacaq həyata figuring segue istifadə 928 00:45:12,790 --> 00:45:15,390 Bu suallara cavab kodlaşdırma vasitəsilə. 929 00:45:15,390 --> 00:45:18,180 Siz yəqin ki, bir çox lazımdır, çünki bu dəqiqə suallar, və yaxşı bir yol 930 00:45:18,180 --> 00:45:19,100 onları həll etmək üçün kodlaşdırma vasitəsilə. 931 00:45:19,100 --> 00:45:21,320 Beləliklə, biz, indi bu hüququ kod olacaq sonra biz geri getmək üçün gedən və edirik 932 00:45:21,320 --> 00:45:24,020 Siz idi sual kodu. 933 00:45:24,020 --> 00:45:24,950 >> Belə ki, ilk line - 934 00:45:24,950 --> 00:45:29,390 Mən bunu yazılı olmamalıdır - nə biz nə etmək istədiyiniz ilk şey biz 935 00:45:29,390 --> 00:45:32,250 gedit yeni bir fayl açmaq? 936 00:45:32,250 --> 00:45:34,190 >> TƏLƏBƏ: əlavə edin. 937 00:45:34,190 --> 00:45:35,920 >> JASON Hirschhorn: nə əlavə? 938 00:45:35,920 --> 00:45:37,952 >> TƏLƏBƏ: CS50 kitabxana. 939 00:45:37,952 --> 00:45:39,920 >> JASON Hirschhorn: OK. 940 00:45:39,920 --> 00:45:42,590 Biz nə daxil olmalıdır? 941 00:45:42,590 --> 00:45:46,820 Biz yalnız nə yoxlamaq olacaq Bir float üçün bir şey tökmə zaman. 942 00:45:46,820 --> 00:45:48,605 Amma nə biz əgər daxil etmək lazımdır C proqram yazmaq üçün gedir? 943 00:45:48,605 --> 00:45:49,300 >> TƏLƏBƏ: Standard I / O. 944 00:45:49,300 --> 00:45:50,625 >> JASON Hirschhorn: stdio.h. 945 00:45:50,625 --> 00:45:54,880 Biz, həqiqətən, bu, lazım deyil proqram, cs50.h, bu baxmayaraq 946 00:45:54,880 --> 00:45:55,920 daxil həmişə faydalı. 947 00:45:55,920 --> 00:45:58,260 Amma biz həmişə stdio.h lazımdır. 948 00:45:58,260 --> 00:45:59,660 >> TƏLƏBƏ: C kodlaşdırma zaman? 949 00:45:59,660 --> 00:46:15,770 >> JASON Hirschhorn: C. kodlaşdırma zaman 950 00:46:15,770 --> 00:46:17,090 >> Mən bu. C faylı olaraq qeyd edin. 951 00:46:17,090 --> 00:46:18,590 Mən bəzi gözəl sintaksis işıqlandırılması almaq. 952 00:46:18,590 --> 00:46:22,890 Mən əsas daxili boşluq yazdı. 953 00:46:22,890 --> 00:46:24,792 Void nə deməkdir? 954 00:46:24,792 --> 00:46:26,740 >> TƏLƏBƏ: hansı almaq deyil command-line dəlilləri. 955 00:46:26,740 --> 00:46:28,900 >> JASON Hirschhorn: bu Void vasitələri, halda, əsas hansı etmir 956 00:46:28,900 --> 00:46:29,700 command-line dəlilləri. 957 00:46:29,700 --> 00:46:32,720 Digər hallarda, bu funksiyası deməkdir komanda-line dəlilləri daşımır. 958 00:46:32,720 --> 00:46:36,560 Və ya funksiyası, Mən əgər etibarsız yazmaq əsas (void) ki, əsas var deyərdim 959 00:46:36,560 --> 00:46:38,460 bir şey qaytarılması deyil. 960 00:46:38,460 --> 00:46:39,960 Belə ki, etibarsız yalnız heç bir şey deməkdir. 961 00:46:39,960 --> 00:46:42,510 Mən üçün, əgər mən nə yazmaq olardı command-line dəlilləri almaq? 962 00:46:42,510 --> 00:46:45,250 963 00:46:45,250 --> 00:46:47,150 >> TƏLƏBƏ: int arc c string arc qarşı 964 00:46:47,150 --> 00:46:49,055 >> JASON Hirschhorn: int argc string argv. 965 00:46:49,055 --> 00:46:54,050 966 00:46:54,050 --> 00:46:55,572 Doğrudurmu? 967 00:46:55,572 --> 00:46:58,720 >> TƏLƏBƏ: Bu char ulduz argv mötərizədə var. 968 00:46:58,720 --> 00:47:01,730 >> JASON Hirschhorn: Beləliklə, siz yazmaq bilər string argv Mötərizədə və ya char ulduz argv 969 00:47:01,730 --> 00:47:03,710 Mötərizədə, ancaq mötərizə lazımdır. 970 00:47:03,710 --> 00:47:06,290 Argv bir sıra edir, çünki strings, xatırlayıram. 971 00:47:06,290 --> 00:47:07,360 Bu, sadəcə bir string deyil. 972 00:47:07,360 --> 00:47:10,350 Belə ki, simli argv, burada edir bir string argv adlanır. 973 00:47:10,350 --> 00:47:13,630 String argv Mötərizədə, burada edir strings bir sıra. 974 00:47:13,630 --> 00:47:17,865 Belə ki, int argc string argv Mötərizədə bir şey olardı ki, mən 975 00:47:17,865 --> 00:47:18,810 yəqin ki, yazmaq olardı. 976 00:47:18,810 --> 00:47:23,050 >> Belə ki, bir tam saxlamaq istəyirdi? 977 00:47:23,050 --> 00:47:24,285 >> TƏLƏBƏ: Bəli, tam. 978 00:47:24,285 --> 00:47:25,840 Və ya bir float. 979 00:47:25,840 --> 00:47:26,710 >> JASON Hirschhorn: bir float ildə? 980 00:47:26,710 --> 00:47:30,790 Kimi, float x 10 bölünür 1 bərabərdir. 981 00:47:30,790 --> 00:47:32,040 >> JASON Hirschhorn: OK. 982 00:47:32,040 --> 00:47:40,160 983 00:47:40,160 --> 00:47:42,240 Mən printf bir float çap edirsiniz? 984 00:47:42,240 --> 00:47:45,100 985 00:47:45,100 --> 00:47:46,714 Nə? 986 00:47:46,714 --> 00:47:47,560 >> TƏLƏBƏ:% f. 987 00:47:47,560 --> 00:47:48,300 >> JASON Hirschhorn:% f. 988 00:47:48,300 --> 00:47:50,810 Bir tam nə var? 989 00:47:50,810 --> 00:47:52,110 d və ya i. 990 00:47:52,110 --> 00:47:53,000 Bir string nədir? 991 00:47:53,000 --> 00:47:54,240 >> TƏLƏBƏ: s. 992 00:47:54,240 --> 00:47:56,140 >> JASON Hirschhorn: s. 993 00:47:56,140 --> 00:47:57,550 Mən yeni bir xətt alıram? 994 00:47:57,550 --> 00:47:58,800 >> TƏLƏBƏ: backslash n. 995 00:47:58,800 --> 00:48:04,610 996 00:48:04,610 --> 00:48:07,100 >> JASON Hirschhorn: Mən nə qayıtmaq yoxdur əsas çalışır doğru əgər? 997 00:48:07,100 --> 00:48:08,360 >> TƏLƏBƏ: 0. 998 00:48:08,360 --> 00:48:09,430 Mən də, bu xətt yazmaq lazımdır? 999 00:48:09,430 --> 00:48:10,170 >> TƏLƏBƏ: No 1000 00:48:10,170 --> 00:48:11,513 OK, biz sonra, onu yazmaq olmaz. 1001 00:48:11,513 --> 00:48:16,450 1002 00:48:16,450 --> 00:48:17,190 Hamı oxuya bilərsiniz? 1003 00:48:17,190 --> 00:48:18,485 Bu bir az kiçik görünür. 1004 00:48:18,485 --> 00:48:20,160 Hamı görmək, və ya olmalıdır bilər Mən bu böyük etmək? 1005 00:48:20,160 --> 00:48:23,480 1006 00:48:23,480 --> 00:48:25,100 Mən kamera üçün, biz edəcəyik edirəm baxmayaraq ki, bir az daha böyük. 1007 00:48:25,100 --> 00:48:35,750 1008 00:48:35,750 --> 00:48:38,410 >> JASON Hirschhorn: Mən bu çevirmək istəyirsinizsə . Yürütülebilir daxil fayl c, nə 1009 00:48:38,410 --> 00:48:39,260 Mən yazmaq edirsiniz? 1010 00:48:39,260 --> 00:48:41,610 >> TƏLƏBƏ: test olun. 1011 00:48:41,610 --> 00:48:42,080 >> JASON Hirschhorn: Bağışlayın? 1012 00:48:42,080 --> 00:48:42,790 >> TƏLƏBƏ: test olun. 1013 00:48:42,790 --> 00:48:44,040 >> JASON Hirschhorn: test olun. 1014 00:48:44,040 --> 00:48:46,700 1015 00:48:46,700 --> 00:48:48,410 Biz söhbət əvvəllər bu xətt. 1016 00:48:48,410 --> 00:48:49,140 Cingilti. 1017 00:48:49,140 --> 00:48:51,270 Cingilti nədir? 1018 00:48:51,270 --> 00:48:52,200 Compiler adı. 1019 00:48:52,200 --> 00:48:53,920 Bu xətt nədir? 1020 00:48:53,920 --> 00:48:55,580 >> TƏLƏBƏ: gdb istifadə üçün bu qədər edir. 1021 00:48:55,580 --> 00:48:59,230 >> JASON Hirschhorn: Sets Bu qədər gdb istifadə üçün. 1022 00:48:59,230 --> 00:49:02,338 Bu xətt ki, nə var? 1023 00:49:02,338 --> 00:49:03,290 >> TƏLƏBƏ: Source kodu. 1024 00:49:03,290 --> 00:49:06,010 >> JASON Hirschhorn: Bu var mənbə fayl,. c faylı. 1025 00:49:06,010 --> 00:49:08,150 Bu iki xətləri nə etməliyəm? 1026 00:49:08,150 --> 00:49:10,245 Və ya bu iki xəttləri. 1027 00:49:10,245 --> 00:49:12,300 >> TƏLƏBƏ: Bu adlar test. 1028 00:49:12,300 --> 00:49:15,410 >> JASON Hirschhorn: Belə dash o deyir, fərqli bir şey adını. 1029 00:49:15,410 --> 00:49:16,790 Və burada test zəng edirik. 1030 00:49:16,790 --> 00:49:18,900 Mən ki olmasaydı, nə bu ad vermək olardı? 1031 00:49:18,900 --> 00:49:20,260 >> TƏLƏBƏ: A.out. 1032 00:49:20,260 --> 00:49:22,340 >> JASON Hirschhorn: A.out. 1033 00:49:22,340 --> 00:49:25,366 Bu nə edir? 1034 00:49:25,366 --> 00:49:27,670 >> TƏLƏBƏ: riyaziyyat kitabxana Linklər. 1035 00:49:27,670 --> 00:49:29,550 >> JASON Hirschhorn: Bu links riyaziyyat kitabxana. 1036 00:49:29,550 --> 00:49:32,880 Biz riyaziyyat kitabxana daxildir, lakin etmədi ki, ümumi var-ci ildən, onlar var 1037 00:49:32,880 --> 00:49:35,780 yazılı markası həmişə daxil riyaziyyat kitabxana. 1038 00:49:35,780 --> 00:49:39,050 Və beləcə, bu daxildir CS50 kitabxana. 1039 00:49:39,050 --> 00:49:43,010 >> Biz siyahısını əgər OK, belə ki, biz indi test adlı bir proqram. 1040 00:49:43,010 --> 00:49:45,150 Onu icra etmək, mən test yazmaq. 1041 00:49:45,150 --> 00:49:48,330 Mən üzən point görürük gözlənildiyi kimi, 0 bərabərdir. 1042 00:49:48,330 --> 00:49:50,890 1043 00:49:50,890 --> 00:49:51,590 Ki, yoxdur - 1044 00:49:51,590 --> 00:49:52,060 belə - 1045 00:49:52,060 --> 00:49:55,210 >> TƏLƏBƏ: Sonra qoymaq əgər, indi float kimi float kimi salmaq - 1046 00:49:55,210 --> 00:49:56,870 >> JASON Hirschhorn: Yüngül lehimli bir float 1? 1047 00:49:56,870 --> 00:49:59,180 >> TƏLƏBƏ: Xeyr, tam şey tökmə - 1048 00:49:59,180 --> 00:49:59,500 Bəli. 1049 00:49:59,500 --> 00:50:02,460 Siz yalnız əgər, ki ki, 0.1 etmək? 1050 00:50:02,460 --> 00:50:07,170 >> JASON Hirschhorn: OK, belə ki, həqiqətən tez 1 10 bölünür, o 1051 00:50:07,170 --> 00:50:08,690 integers bölünür olunur. 1052 00:50:08,690 --> 00:50:13,580 Siz integers bölmək zaman Belə ki, onlar 0, və siz qənaət etdiyiniz 0 ilə 1053 00:50:13,580 --> 00:50:17,170 çizgi çünki, float yalnız tam bölgüsü. 1054 00:50:17,170 --> 00:50:19,180 Belə ki, indi biz bir şey dönüş edirik bir float daxil. 1055 00:50:19,180 --> 00:50:21,650 >> Nə görmək edək. 1056 00:50:21,650 --> 00:50:22,900 Biz test etmək lazımdır. 1057 00:50:22,900 --> 00:50:25,870 1058 00:50:25,870 --> 00:50:31,090 Belə ki, indi biz slash olmadığını görmək tam bölgüsü, bu üzən edilib 1059 00:50:31,090 --> 00:50:32,640 point bölmə. 1060 00:50:32,640 --> 00:50:35,700 Çünki onun dəlilləri biri bir float tökmə edilmişdir. 1061 00:50:35,700 --> 00:50:38,380 Belə ki, indi bu müalicə, deyirdi bölmə biz ilə məşğul olduğunuz kimi 1062 00:50:38,380 --> 00:50:40,140 üzən bal deyil, integers ilə. 1063 00:50:40,140 --> 00:50:42,760 Və belə ki, biz gözləyirik cavab almaq. 1064 00:50:42,760 --> 00:50:44,620 >> Nə görmək edək - 1065 00:50:44,620 --> 00:50:47,103 oops. 1066 00:50:47,103 --> 00:50:51,646 Mən daha decimal çap etmək istədi ləkələr, necə ki, bunu edə bilər? 1067 00:50:51,646 --> 00:50:55,550 >> TƏLƏBƏ: Point dot f, və ya kimi bir çox Istədiyiniz kimi decimal yerləri. 1068 00:50:55,550 --> 00:51:02,280 1069 00:51:02,280 --> 00:51:04,440 >> JASON Hirschhorn: Mən çap 10 decimal ləkələr. 1070 00:51:04,440 --> 00:51:06,610 Və biz indi əldə edirik görürük bəzi qəribə stuff. 1071 00:51:06,610 --> 00:51:09,650 Və geri suala gedir haqqında point qeyri-dəqiqlik üzən. 1072 00:51:09,650 --> 00:51:10,950 Burada saxlanılır qəribə stuff var. 1073 00:51:10,950 --> 00:51:13,650 1074 00:51:13,650 --> 00:51:15,275 >> OK, sizin suala cavab verir? 1075 00:51:15,275 --> 00:51:18,550 1076 00:51:18,550 --> 00:51:20,200 Başqa nə istəyirsiniz tez kod? 1077 00:51:20,200 --> 00:51:25,470 >> TƏLƏBƏ: Mən yalnız və ya görmək istəyirdi deyil, bəzi göstərici azad əgər, 1078 00:51:25,470 --> 00:51:30,410 ki, pointer hələ saxlanan olub bu olmuşdur nə ünvanı 1079 00:51:30,410 --> 00:51:32,170 əvvəllər işarə. 1080 00:51:32,170 --> 00:51:34,100 >> JASON Hirschhorn: OK, belə ki, nə edək. 1081 00:51:34,100 --> 00:51:38,030 Char star Ptr, bu dəyişən yaradır növü char ulduz Ptr çağırıb. 1082 00:51:38,030 --> 00:51:39,280 Necə malloc yazmaq edirsiniz? 1083 00:51:39,280 --> 00:51:40,550 Alden? 1084 00:51:40,550 --> 00:51:41,800 >> ALDEN: Just malloc. 1085 00:51:41,800 --> 00:51:44,820 1086 00:51:44,820 --> 00:51:51,040 Lakin o, ölçüsü olmalıdır, və bu halda, sizə istədiyiniz tapmaq 1087 00:51:51,040 --> 00:51:52,465 char işarə etmək. 1088 00:51:52,465 --> 00:51:54,450 Belə ki, char olarıq. 1089 00:51:54,450 --> 00:51:57,520 >> JASON Hirschhorn: OK, belə ki, daha çox generically, Inside - 1090 00:51:57,520 --> 00:51:58,770 nin edit imkan verir. 1091 00:51:58,770 --> 00:52:05,100 1092 00:52:05,100 --> 00:52:09,260 Malloc Inside, siz sayı istəyirəm olan yığın bayt. 1093 00:52:09,260 --> 00:52:12,320 Ümumiyyətlə, nə biz istəyirik ki, gördük bunu biz malloc olacaq edir 1094 00:52:12,320 --> 00:52:14,940 məsələn strings, və ya integers Diziler. 1095 00:52:14,940 --> 00:52:21,600 Belə ki, biz 10 integers və ya 10 istəyirsinizsə chars, 10 bizə 10 verəcək. 1096 00:52:21,600 --> 00:52:24,370 Və sonra chars ölçüsü verəcək bizə chars ölçüsü olan 1097 00:52:24,370 --> 00:52:25,120 Bu halda 1 byte edir. 1098 00:52:25,120 --> 00:52:26,250 Biz 10 bayt almaq. 1099 00:52:26,250 --> 00:52:28,540 Biz int ölçüsü yazmaq olsaydı, bizə 40 bytes verəcək. 1100 00:52:28,540 --> 00:52:31,520 >> Belə ki, daha çox ümumi, malloc daxilində istədiyiniz bayt sayı. 1101 00:52:31,520 --> 00:52:34,620 Bu halda, biz 1 byte əldə edirik. 1102 00:52:34,620 --> 00:52:36,900 Bir qəribə istifadə kimi görünür Hansı malloc, lakin bizim 1103 00:52:36,900 --> 00:52:38,470 məqsədləri əhəmiyyət kəsb edir. 1104 00:52:38,470 --> 00:52:40,420 Belə ki, var. 1105 00:52:40,420 --> 00:52:43,420 >> Biz pulsuz zəng etmək olacaq. 1106 00:52:43,420 --> 00:52:47,040 Biz onu qurtarmaq və biz yenə Ptr istifadə edin. 1107 00:52:47,040 --> 00:52:48,750 Və yoxlamaq üçün nə istəyirsiniz? 1108 00:52:48,750 --> 00:52:50,550 >> TƏLƏBƏ: Mən yalnız olub-olmadığını yoxlamaq istəyirdi və ya bir şey var idi 1109 00:52:50,550 --> 00:52:51,900 Bunun içərisində. 1110 00:52:51,900 --> 00:52:53,050 >> JASON Hirschhorn: Belə olub bir şey işarə? 1111 00:52:53,050 --> 00:52:57,740 >> TƏLƏBƏ: Bəli, məhz, olub hələ bir yaddaş ünvan idi. 1112 00:52:57,740 --> 00:53:02,220 >> JASON Hirschhorn: Belə ki, istədiyiniz Ptr dəyəri yoxlamaq üçün? 1113 00:53:02,220 --> 00:53:03,470 >> TƏLƏBƏ: Bəli, dəqiq. 1114 00:53:03,470 --> 00:53:07,940 1115 00:53:07,940 --> 00:53:10,160 >> JASON Hirschhorn: Mən burada nə yazmaq Mən dəyəri yoxlamaq istəyirsinizsə 1116 00:53:10,160 --> 00:53:11,880 point - nə, Jordan dəyəri, dedi? 1117 00:53:11,880 --> 00:53:13,720 Yoxsa nə Ptr daxilində saxlanılır? 1118 00:53:13,720 --> 00:53:14,620 >> TƏLƏBƏ: A yaddaş ünvanı. 1119 00:53:14,620 --> 00:53:16,330 >> JASON Hirschhorn: A yaddaş ünvanı. 1120 00:53:16,330 --> 00:53:20,520 Mən yalnız bu yazmaq Belə ki, bu lazımdır Mənə Ptr dəyər verir. 1121 00:53:20,520 --> 00:53:22,800 Və necə çap yoxdur yaddaş ünvanı? 1122 00:53:22,800 --> 00:53:26,470 Bu format string nədir yaddaş ünvan üçün? 1123 00:53:26,470 --> 00:53:27,430 >> TƏLƏBƏ:% p. 1124 00:53:27,430 --> 00:53:28,050 >> JASON Hirschhorn:% p. 1125 00:53:28,050 --> 00:53:29,500 % S simli edir. 1126 00:53:29,500 --> 00:53:30,750 Göstərici% p. 1127 00:53:30,750 --> 00:53:40,820 1128 00:53:40,820 --> 00:53:43,540 Doğrudurmu? 1129 00:53:43,540 --> 00:53:44,790 Bu doğru deyil. 1130 00:53:44,790 --> 00:53:49,450 1131 00:53:49,450 --> 00:53:51,040 Belə ki, Ptr bərabərdir - 1132 00:53:51,040 --> 00:53:53,350 Bu hələ də bir şey var. 1133 00:53:53,350 --> 00:53:56,110 1134 00:53:56,110 --> 00:53:57,645 Bu yəqin ki, bir daha maraqlı sual. 1135 00:53:57,645 --> 00:53:59,198 Ki line nə edir? 1136 00:53:59,198 --> 00:54:00,830 >> TƏLƏBƏ: Seg faylar. 1137 00:54:00,830 --> 00:54:01,310 >> JASON Hirschhorn: Nə? 1138 00:54:01,310 --> 00:54:02,678 >> TƏLƏBƏ: Mən çatışmazlıqlar seg düşünürəm. 1139 00:54:02,678 --> 00:54:03,574 >> JASON Hirschhorn: Hm? 1140 00:54:03,574 --> 00:54:04,920 >> TƏLƏBƏ: Mən bu seg günah lazımdır düşünürəm. 1141 00:54:04,920 --> 00:54:08,265 >> JASON Hirschhorn: Belə ki, bu xətt kodu, ulduz Ptr, nə 1142 00:54:08,265 --> 00:54:10,152 ulduz deməkdir? 1143 00:54:10,152 --> 00:54:11,240 >> TƏLƏBƏ: məzmun. 1144 00:54:11,240 --> 00:54:11,560 >> JASON Hirschhorn: Bəli. 1145 00:54:11,560 --> 00:54:13,910 Məzmununu almaq üçün getmək. 1146 00:54:13,910 --> 00:54:16,830 Belə ki, bu xatirəsinə getmək üçün gedir orada həll və mənə verir. 1147 00:54:16,830 --> 00:54:21,030 Mən burada% c istifadə çünki var simvol orada saxlanılır. 1148 00:54:21,030 --> 00:54:23,390 Belə ki, ünvanı biz getmək olacaq yalnız gördüm - və ya yəqin ki, bir olacaq 1149 00:54:23,390 --> 00:54:25,190 az fərqli bu Biz proqram run vaxt. 1150 00:54:25,190 --> 00:54:28,010 Amma biz ki, ünvan gedəcəyəm biz hələ də mövcuddur bilirik olan 1151 00:54:28,010 --> 00:54:29,260 və var nə görmək. 1152 00:54:29,260 --> 00:54:35,640 1153 00:54:35,640 --> 00:54:37,110 >> Belə ki, seg günah etməyib. 1154 00:54:37,110 --> 00:54:38,970 Bu, yalnız bizə bir şey vermədi. 1155 00:54:38,970 --> 00:54:43,350 Bu, həqiqətən, bizə verilmiş ola bilər bir şey, biz yalnız bunu görmək bilməz. 1156 00:54:43,350 --> 00:54:45,110 Və geri bu fikrə gedir - 1157 00:54:45,110 --> 00:54:47,270 və biz daxil çox almaq fikrində deyilik Bu ki, kənarda, çünki 1158 00:54:47,270 --> 00:54:48,460 Bu kurs daxilində. 1159 00:54:48,460 --> 00:54:51,260 Biz əgər biz, burada bəhs tərəfindən array kənarda getdi 1160 00:54:51,260 --> 00:54:54,890 1, biz çətinliyə ala bilər. 1161 00:54:54,890 --> 00:54:58,550 >> Bəzən, yalnız 1-off getmək zaman, Siz səhv etdiyini və edirik 1162 00:54:58,550 --> 00:54:59,220 sorun almaq bilər. 1163 00:54:59,220 --> 00:55:00,820 Amma həmişə çətinliyə yoxdur. 1164 00:55:00,820 --> 00:55:05,170 Bu asılıdır nə qədər pis bir şey siz , sorun almaq olacaq yoxdur. 1165 00:55:05,170 --> 00:55:07,790 Sloppy olmaq demək deyil Sizin kodu. 1166 00:55:07,790 --> 00:55:12,080 Lakin bu proqram deyil, demək Əgər haradasa getmək, hətta həmişə çıxmaq 1167 00:55:12,080 --> 00:55:14,130 Siz getmək ehtimal deyilik. 1168 00:55:14,130 --> 00:55:18,170 >> Ki, bir yaxşı nümunə, bir çox onların problem insanların, 3 müəyyən edən 1169 00:55:18,170 --> 00:55:22,350 15 yoxlamaq deyildi heyəti həddi. 1170 00:55:22,350 --> 00:55:25,860 Beləliklə, siz baxdı, sola baxdı sağ, baxdı, üst baxdı 1171 00:55:25,860 --> 00:55:27,000 alt. 1172 00:55:27,000 --> 00:55:31,540 Amma kontrol olmasaydı top həqiqətən şurası olacaq. 1173 00:55:31,540 --> 00:55:35,220 Və etdi insanların bir çox və ki çıxdı, proqram işləyib 1174 00:55:35,220 --> 00:55:38,960 mükəmməl, harada ki, board idi, çünki Bir getdi əgər, yaddaşında saxlanılır 1175 00:55:38,960 --> 00:55:42,300 yuxarıda və ya yoxlanılır yaddaş ünvanı, bir şey yox idi 1176 00:55:42,300 --> 00:55:44,870 ki, xüsusilə dəhşətli, belə ki, sizin proqram deyil 1177 00:55:44,870 --> 00:55:45,970 sizə fəğan. 1178 00:55:45,970 --> 00:55:48,870 >> Amma biz hələ xal off almaq əgər siz ki, yoxlamaq etmədi siz, çünki 1179 00:55:48,870 --> 00:55:50,850 Siz deyil, bir şey etdiklərini nə etməli, və siz ola bilər 1180 00:55:50,850 --> 00:55:51,860 çətinliyə kazanılmış. 1181 00:55:51,860 --> 00:55:54,040 Oran siz yəqin ki, etmədi, baxmayaraq ki, var. 1182 00:55:54,040 --> 00:55:57,790 Belə ki, bu, bəli, göstərmək üçün biz hələ də bilərsiniz. 1183 00:55:57,790 --> 00:55:59,010 Və biz əldə deyilik bu halda narahatlıq. 1184 00:55:59,010 --> 00:56:04,000 Biz oxumaq etməyə çalışdıq Əgər Növbəti 100 simvol, biz had 1185 00:56:04,000 --> 00:56:06,000 yəqin ki, sorun almaq. 1186 00:56:06,000 --> 00:56:09,400 Və növbəti 100 oxu kod bilər simvol bəzi etməklə istəyirsinizsə 1187 00:56:09,400 --> 00:56:10,110 sort loop üçün. 1188 00:56:10,110 --> 00:56:10,850 Bəli. 1189 00:56:10,850 --> 00:56:16,250 >> TƏLƏBƏ: biz təyin edilmişdir ildən ki, space faktiki dəyəri, biz deyil ki 1190 00:56:16,250 --> 00:56:17,050 həqiqətən bir şey görmək mümkün. 1191 00:56:17,050 --> 00:56:21,740 Biz qəbulu ilə cəhd etməlidir ki, c və ya bir şey kimi bərabərdir? 1192 00:56:21,740 --> 00:56:22,640 >> JASON Hirschhorn: Böyük sual. 1193 00:56:22,640 --> 00:56:25,340 Necə ki, dəyəri yoxdur - 1194 00:56:25,340 --> 00:56:28,980 nə kodu xətt I line yazmaq yeddi sizə nə etməli? 1195 00:56:28,980 --> 00:56:34,040 >> TƏLƏBƏ: Star Ptr vahid bərabərdir quote bir quote son c. 1196 00:56:34,040 --> 00:56:36,970 >> JASON Hirschhorn: Belə ki qoyulması bir xarakter, c, o yeri, 1197 00:56:36,970 --> 00:56:40,200 çünki daha ki, ulduz orada getmək deməkdir. 1198 00:56:40,200 --> 00:56:43,320 Və sol tərəfdən istifadə edərkən bir tapşırıq operator ki, bərabərdir 1199 00:56:43,320 --> 00:56:47,270 imza, biz almaq fikrində deyilik ki, dəyər ki, dəyəri müəyyən qədər. 1200 00:56:47,270 --> 00:56:48,520 İndi nə görmək edək. 1201 00:56:48,520 --> 00:56:54,700 1202 00:56:54,700 --> 00:56:56,770 >> Biz orada bir şey qoymaq və orada idi. 1203 00:56:56,770 --> 00:56:58,000 Biz pulsuz çağırıb. 1204 00:56:58,000 --> 00:57:00,100 Bəzi məhsulları yəqin ki, baş yığın. 1205 00:57:00,100 --> 00:57:01,890 Belə ki, artıq yoxdur. 1206 00:57:01,890 --> 00:57:07,440 Ancaq yenə də, biz əldə deyilik orada gedən problem. 1207 00:57:07,440 --> 00:57:10,260 >> Mən göstərmək kodu bu həyata yapýyorum ki, bu bir çox 1208 00:57:10,260 --> 00:57:12,410 Siz ki, sual, onlar həqiqətən maraqlı 1209 00:57:12,410 --> 00:57:13,650 çox vaxt cavab verir. 1210 00:57:13,650 --> 00:57:15,260 Onlar, həqiqətən, yaxşı suallar istəyirik. 1211 00:57:15,260 --> 00:57:19,010 Və onları anlamaq bilər Öz əgər, misal üçün, 1212 00:57:19,010 --> 00:57:19,990 biz bölməsində deyilik. 1213 00:57:19,990 --> 00:57:20,940 Bəli. 1214 00:57:20,940 --> 00:57:24,430 >> TƏLƏBƏ: Siz göndərilməsi deyilik Çünki yerdə göstərici, siz lazımdır 1215 00:57:24,430 --> 00:57:26,530 malloc istifadə? 1216 00:57:26,530 --> 00:57:28,400 >> JASON Hirschhorn: Belə ki, bu geri gedir ilkin suala. 1217 00:57:28,400 --> 00:57:28,620 [? ?] 1218 00:57:28,620 --> 00:57:29,980 Yalnız bir yerli dəyişən deyil? 1219 00:57:29,980 --> 00:57:32,280 Burada malloc çekici deyil. 1220 00:57:32,280 --> 00:57:35,260 Burada malloc istifadə deyil çünki çekici 1221 00:57:35,260 --> 00:57:36,500 yalnız bir yerli dəyişən. 1222 00:57:36,500 --> 00:57:40,970 >> TƏLƏBƏ: Belə ki, char edə bilər star Ptr salam bərabərdir? 1223 00:57:40,970 --> 00:57:41,400 >> JASON Hirschhorn: Oh. 1224 00:57:41,400 --> 00:57:43,300 Beləliklə, biz indi geri almaq olacaq ilkin suala. 1225 00:57:43,300 --> 00:57:46,885 Mən sizə razı deyildi mənim cavab. 1226 00:57:46,885 --> 00:57:48,220 OK? 1227 00:57:48,220 --> 00:57:49,226 Ki, kimi? 1228 00:57:49,226 --> 00:57:49,682 >> TƏLƏBƏ: Bəli. 1229 00:57:49,682 --> 00:57:50,932 Gözləyin. 1230 00:57:50,932 --> 00:57:54,090 1231 00:57:54,090 --> 00:57:57,850 >> JASON Hirschhorn: Və Siz çap istəyirsiniz? 1232 00:57:57,850 --> 00:58:00,026 Belə ki, kimi bir string çap lazımdır? 1233 00:58:00,026 --> 00:58:06,380 1234 00:58:06,380 --> 00:58:07,630 >> TƏLƏBƏ: Maraqlı. 1235 00:58:07,630 --> 00:58:09,900 1236 00:58:09,900 --> 00:58:14,285 >> JASON Hirschhorn: Belə ki, bu deyir mübahisə xarakteri növü var. 1237 00:58:14,285 --> 00:58:17,200 1238 00:58:17,200 --> 00:58:18,620 Belə ki, bu bir xarakter olmalıdır. 1239 00:58:18,620 --> 00:58:25,170 1240 00:58:25,170 --> 00:58:26,280 >> TƏLƏBƏ: Just ilk birini tutur. 1241 00:58:26,280 --> 00:58:28,610 >> JASON Hirschhorn: Belə ki, bu Mən əvvəl qeyd edir. 1242 00:58:28,610 --> 00:58:34,240 Like Mən saxlanılması deyil, ifadə dəyişən göstərici içərisində string. 1243 00:58:34,240 --> 00:58:35,120 Bu saxlanılması oldu - 1244 00:58:35,120 --> 00:58:36,350 >> TƏLƏBƏ: ilk dəyəri simli. 1245 00:58:36,350 --> 00:58:40,810 >> JASON Hirschhorn: ünvan simli ilk dəyəri. 1246 00:58:40,810 --> 00:58:46,940 Biz bu çap olsaydı, biz istəyirik göstərici içərisində dəyər əldə. 1247 00:58:46,940 --> 00:58:51,005 Və biz, həqiqətən, olduğunu görəcəksiniz bir yaddaş ünvanı. 1248 00:58:51,005 --> 00:58:53,595 1249 00:58:53,595 --> 00:58:56,440 >> Ki, hissi edirmi? 1250 00:58:56,440 --> 00:58:56,940 Üzr istəyirik. 1251 00:58:56,940 --> 00:58:58,996 Ki, cavab vermir, gözləyin sual olsa? 1252 00:58:58,996 --> 00:58:59,790 >> TƏLƏBƏ: Bəli. 1253 00:58:59,790 --> 00:59:05,830 >> JASON Hirschhorn: kodu Bu xətt bir simli və sonra başqa bir yaradılması 1254 00:59:05,830 --> 00:59:09,115 işarə dəyişən pointer ki, simli ki, array. 1255 00:59:09,115 --> 00:59:14,320 1256 00:59:14,320 --> 00:59:14,980 Bəli. 1257 00:59:14,980 --> 00:59:19,200 >> Biz bir yaddaş getdi əgər: STUDENT daha müraciət, biz h almaq olar? 1258 00:59:19,200 --> 00:59:21,990 1259 00:59:21,990 --> 00:59:23,150 Bir string kimi saxlanılır? 1260 00:59:23,150 --> 00:59:24,400 >> JASON Hirschhorn: kimi, biz - 1261 00:59:24,400 --> 00:59:28,540 1262 00:59:28,540 --> 00:59:30,790 Bunu üçün qiymətlidir. 1263 00:59:30,790 --> 00:59:33,780 Bu point arithmetic, siz uşaqlar edir əvvəl görüldü və olmalıdır 1264 00:59:33,780 --> 00:59:35,550 ilə nisbətən rahat. 1265 00:59:35,550 --> 00:59:36,905 Bu yazı yaxın edir - 1266 00:59:36,905 --> 00:59:41,980 1267 00:59:41,980 --> 00:59:46,350 biz kodu bu xətt yazmaq idi, əgər biz əvvəl array notation gördüm. 1268 00:59:46,350 --> 00:59:55,900 Bu, bizə ikinci verməlidir Bu array, h dəyər. 1269 00:59:55,900 --> 01:00:05,010 >> Biz bunu, bu da verməlidir us ki serialın ikinci dəyər. 1270 01:00:05,010 --> 01:00:08,320 Bu yaddaş üçün gedir, çünki ilk şey ünvanı, ancaq 1271 01:00:08,320 --> 01:00:10,530 artıq şey yaddaş ünvanı. 1272 01:00:10,530 --> 01:00:14,360 Və sonra star operator dereferences ki, pointer. 1273 01:00:14,360 --> 01:00:16,940 Və yenə, görək. 1274 01:00:16,940 --> 01:00:18,664 Biz yenə h almaq. 1275 01:00:18,664 --> 01:00:20,980 >> TƏLƏBƏ: nə dəqiq demək dereference? 1276 01:00:20,980 --> 01:00:23,650 >> JASON Hirschhorn: dereference getmək üçün bir xülya söz. 1277 01:00:23,650 --> 01:00:26,390 Ki, getmək və orada nə almaq bir göstərici dereference edir. 1278 01:00:26,390 --> 01:00:28,240 Bu yalnız bir xülya söz var. 1279 01:00:28,240 --> 01:00:29,986 >> Biz çap istəyirdi: STUDENT bütün simli, ola bilər biz 1280 01:00:29,986 --> 01:00:31,930 işareti göstərici nə? 1281 01:00:31,930 --> 01:00:33,490 >> JASON Hirschhorn: OK, biz burada fasilə olacaq. 1282 01:00:33,490 --> 01:00:35,480 Biz burada son gedir. 1283 01:00:35,480 --> 01:00:41,760 Ampersand bir ünvanını verir yeri, belə ki, siz işareti etmək 1284 01:00:41,760 --> 01:00:44,080 dəyişən, siz ünvanı verir ki, dəyişən saxlanılır yerləşir. 1285 01:00:44,080 --> 01:00:48,580 Ampersand pointer siz verəcək Ptr yaddaşında olduğu Ptr ünvanı. 1286 01:00:48,580 --> 01:00:50,140 >> Biz getmək fikrində deyilik Bu nümunə ilə. 1287 01:00:50,140 --> 01:00:52,640 Bu anlamaq bilər öz şeylər. 1288 01:00:52,640 --> 01:00:55,740 Amma yenə də, bu, hətta bir verging bilər Sizin üçün bilmək lazımdır nə kənarda bit 1289 01:00:55,740 --> 01:00:58,000 bu orta müddətli dairəsi - 1290 01:00:58,000 --> 01:00:59,070 və ya bu viktorina, olduqca. 1291 01:00:59,070 --> 01:01:00,270 Üzr istəyirik. 1292 01:01:00,270 --> 01:01:03,770 >> Mən, çünki hərəkət edir bir kodlaşdırma problem etmək istəyirəm 1293 01:01:03,770 --> 01:01:05,100 Zaman qədər əvvəl. 1294 01:01:05,100 --> 01:01:09,340 Və biz nə kod gedir Bu ən çekici 1295 01:01:09,340 --> 01:01:11,020 nümunələri, atoi. 1296 01:01:11,020 --> 01:01:14,520 Belə ki, bu bir sual idi iki il əvvəl bir viktorina. 1297 01:01:14,520 --> 01:01:17,810 Və mən burada board var. 1298 01:01:17,810 --> 01:01:20,680 >> İnsanlar viktorina soruşuldu - 1299 01:01:20,680 --> 01:01:23,640 onlar bir az daha tesxt verildi sual, amma aradan 1300 01:01:23,640 --> 01:01:26,640 gərəksiz olduğunu mətn çünki indi bizim məqsədləri üçün. 1301 01:01:26,640 --> 01:01:29,180 Bu, yalnız bir fon idi nə atoi haqqında. 1302 01:01:29,180 --> 01:01:31,425 Amma bütün bilirik və çox ATOI ilə tanış. 1303 01:01:31,425 --> 01:01:35,620 >> Mən sizə bu kod gəlir kağız bir hesabatı. 1304 01:01:35,620 --> 01:01:39,310 Mən də sizə strategiya istifadə gəlir biz artıq getdi etdik ki, 1305 01:01:39,310 --> 01:01:41,040 bizim bölməsində bir çox. 1306 01:01:41,040 --> 01:01:44,130 Birincisi, əmin anlaya nə atoi əməlindəndir. 1307 01:01:44,130 --> 01:01:47,580 Şəkil çəkmək və ya bir ilə gəlmək Başınıza psixi image. 1308 01:01:47,580 --> 01:01:51,120 Next, bu pseudocode yazmaq. 1309 01:01:51,120 --> 01:01:53,120 Viktorina, siz bütün əgər pseudocode, ən azı 1310 01:01:53,120 --> 01:01:54,550 bir şey yazmaq. 1311 01:01:54,550 --> 01:02:00,070 Və sonra üzərinə ki, pseudocode xəritəsi C. Siz bir çek varsa sizin 1312 01:02:00,070 --> 01:02:03,760 pseudocode kimi yoxlamaq əgər bir şey 1, sanki üzərində xəritələr edir 1313 01:02:03,760 --> 01:02:05,750 s vəziyyəti və. 1314 01:02:05,750 --> 01:02:07,850 Və nəhayət, C. proqramı kod 1315 01:02:07,850 --> 01:02:15,000 >> Belə ki, geri ATOI getmək və beş dəqiqə bir hesabatında bu kod 1316 01:02:15,000 --> 01:02:19,480 haqqında yəqin olan kağız, Bir almaq olacaq zaman məbləği 1317 01:02:19,480 --> 01:02:21,260 kodu ATOI viktorina. 1318 01:02:21,260 --> 01:02:27,060 Beş 15 dəqiqə, beş beş, 12 10 dəqiqə, məbləği haqqında 1319 01:02:27,060 --> 01:02:30,150 Bu sərf istədiyiniz zaman Viktorinada sual. 1320 01:02:30,150 --> 01:02:31,670 Belə ki, indi beş dəqiqə xahiş edirik. 1321 01:02:31,670 --> 01:02:35,957 Və hər hansı bir sualınız varsa, qaldırmaq əl və mən ətrafında gəlmək lazımdır. 1322 01:02:35,957 --> 01:06:39,570 1323 01:06:39,570 --> 01:06:41,066 >> [SIDE Söhbətlər] 1324 01:06:41,066 --> 01:08:35,279 1325 01:08:35,279 --> 01:08:37,580 >> JASON Hirschhorn: OK, belə ki, ki, beş dəqiqə idi. 1326 01:08:37,580 --> 01:08:39,880 Bu məbləğin yəqin idi zaman, bir viktorina ki sərf ediyorum 1327 01:08:39,880 --> 01:08:42,120 O zaman bəlkə aşağı sonu. 1328 01:08:42,120 --> 01:08:44,010 Biz bir az Recap lazımdır. 1329 01:08:44,010 --> 01:08:45,740 Bizə bu kodlaşdırma başlamaq edək. 1330 01:08:45,740 --> 01:08:49,479 Və biz bütün yolu yoxdur, əgər, bu cavab və bu 1331 01:08:49,479 --> 01:08:54,189 viktorina sual yenə mövcuddur, Fall 2011 sual zaman 1332 01:08:54,189 --> 01:08:54,913 viktorina çıxdı. 1333 01:08:54,913 --> 01:08:57,830 >> Və səkkiz bal dəyər idi viktorina sonra. 1334 01:08:57,830 --> 01:09:01,140 Səkkiz xal yüksək sonunda edir bal bir şey məbləği dəyər. 1335 01:09:01,140 --> 01:09:04,790 Ən suallar intervalında bir altı xal. 1336 01:09:04,790 --> 01:09:08,500 Belə ki, bu bir daha çətin əmin üçün sual. 1337 01:09:08,500 --> 01:09:09,750 Mənə heç başlamaq edə bilərəmmi? 1338 01:09:09,750 --> 01:09:13,260 1339 01:09:13,260 --> 01:09:15,380 >> Ümumiyyətlə, biz gedir Bu etmək istəyirəm 1340 01:09:15,380 --> 01:09:17,550 məntiqi, ATOI fəaliyyət? 1341 01:09:17,550 --> 01:09:19,569 Biz nə istəyirik? 1342 01:09:19,569 --> 01:09:22,279 Beləliklə, biz yazmaq olacaq bəzi pseudocode. 1343 01:09:22,279 --> 01:09:24,090 >> TƏLƏBƏ: simvol Convert integers daxil. 1344 01:09:24,090 --> 01:09:26,700 >> JASON Hirschhorn: simvol Convert integers daxil. 1345 01:09:26,700 --> 01:09:27,479 OK. 1346 01:09:27,479 --> 01:09:30,870 Belə ki, necə çox simvol biz keçmək lazımdır gedir? 1347 01:09:30,870 --> 01:09:32,295 >> TƏLƏBƏ: Onların hamısı. 1348 01:09:32,295 --> 01:09:34,100 >> TƏLƏBƏ: Bütün simvol simli. 1349 01:09:34,100 --> 01:09:35,540 >> JASON Hirschhorn: Hamısı simli simvol. 1350 01:09:35,540 --> 01:09:42,180 Biz hər vasitəsilə getmək istəyirdi Belə ki, əgər simli xarakter, bir şey nədir 1351 01:09:42,180 --> 01:09:44,560 C biz imkan verdi ki, gördüm Bizə hər vasitəsilə getmək üçün 1352 01:09:44,560 --> 01:09:45,939 simli xarakter? 1353 01:09:45,939 --> 01:09:46,819 >> TƏLƏBƏLƏR: loop üçün. 1354 01:09:46,819 --> 01:09:48,069 >> JASON Hirschhorn: loop üçün. 1355 01:09:48,069 --> 01:09:52,020 1356 01:09:52,020 --> 01:09:55,330 Beləliklə, biz vasitəsilə loop olacaq ə hər character. 1357 01:09:55,330 --> 01:10:00,940 >> Sonra biz nə istəyirik gedir biz xüsusi xarakter almaq zaman? 1358 01:10:00,940 --> 01:10:02,480 Biz 90 qəbul edirik deyirlər. 1359 01:10:02,480 --> 01:10:03,460 Biz 9 almaq. 1360 01:10:03,460 --> 01:10:04,240 Bu bir xarakter var. 1361 01:10:04,240 --> 01:10:07,440 Biz nə ilə nə istəyirsiniz ki, xarakter 9? 1362 01:10:07,440 --> 01:10:10,082 >> TƏLƏBƏ: xarakter 0 onu çıxar? 1363 01:10:10,082 --> 01:10:11,860 >> TƏLƏBƏ: 0 Add? 1364 01:10:11,860 --> 01:10:13,350 >> JASON Hirschhorn: çıxar xarakter 0 onu? 1365 01:10:13,350 --> 01:10:13,800 >> TƏLƏBƏ: Bəli. 1366 01:10:13,800 --> 01:10:15,573 >> JASON Hirschhorn: Niyə Bunu etmək istəyirsiniz? 1367 01:10:15,573 --> 01:10:16,560 >> TƏLƏBƏ: [işitilemez] 1368 01:10:16,560 --> 01:10:17,010 dəyər. 1369 01:10:17,010 --> 01:10:18,380 Onun int dəyər. 1370 01:10:18,380 --> 01:10:21,580 >> JASON Hirschhorn: OK, belə ki, biz almaq xarakter 9 dən çıxmaq 1371 01:10:21,580 --> 01:10:25,820 karakter 0 bir almaq üçün faktiki tam 9. 1372 01:10:25,820 --> 01:10:27,070 Sweet. 1373 01:10:27,070 --> 01:10:31,255 1374 01:10:31,255 --> 01:10:37,000 Və necə ki, karakter bilmirəm 9 0 minus karakter 9? 1375 01:10:37,000 --> 01:10:39,222 Siz nə chart baxmaq idi? 1376 01:10:39,222 --> 01:10:43,130 >> TƏLƏBƏ: doqquz məntiqi var 9 və 0 arasında yerləri. 1377 01:10:43,130 --> 01:10:44,620 Və ya ASCII masa baxmaq bilər. 1378 01:10:44,620 --> 01:10:45,120 >> JASON Hirschhorn: ASCII masa. 1379 01:10:45,120 --> 01:10:46,490 Amma bəli, siz də doğru danışırsınızsa. 1380 01:10:46,490 --> 01:10:47,780 Beləliklə, biz 0 çıxmaq. 1381 01:10:47,780 --> 01:10:49,010 Belə ki, indi biz tam 9 var. 1382 01:10:49,010 --> 01:10:49,970 Və biz nə ilə nə istəyirsiniz? 1383 01:10:49,970 --> 01:10:54,970 Biz 90 varsa, ilk tam deyil biz nə istəyirik? 1384 01:10:54,970 --> 01:10:58,180 >> TƏLƏBƏ: Mən müvəqqəti tam qoymaq istədiyiniz array, sonra ona riyaziyyat etmək 1385 01:10:58,180 --> 01:11:02,088 sonra sona daxil etmək üçün. 1386 01:11:02,088 --> 01:11:03,020 >> JASON Hirschhorn: OK. 1387 01:11:03,020 --> 01:11:06,990 >> TƏLƏBƏ: Siz sonunda başlaya bilərsiniz sonra array və irəli hərəkət 1388 01:11:06,990 --> 01:11:10,350 ki, irəli hərəkət hər zaman, Siz 10 ilə çoxaltmaq. 1389 01:11:10,350 --> 01:11:10,830 >> JASON Hirschhorn: OK. 1390 01:11:10,830 --> 01:11:12,250 Ki, olduqca kimi səslənir çekici fikir. 1391 01:11:12,250 --> 01:11:16,040 Biz serialın sonunda başlaya bilərsiniz, və biz strleng istifadə edə bilərsiniz. 1392 01:11:16,040 --> 01:11:17,030 Biz burada strleng istifadə edə bilərsiniz. 1393 01:11:17,030 --> 01:11:18,870 Biz simli uzunluğu almaq lazımdır. 1394 01:11:18,870 --> 01:11:20,100 Biz sonunda başlamaq. 1395 01:11:20,100 --> 01:11:29,170 Və + birinci, biz yalnız almaq ki, tam, və bəlkə biz kimi yaratmaq 1396 01:11:29,170 --> 01:11:32,270 yeni tam dəyişən up top yerləşir biz hər şeyi saxlanılması edirik. 1397 01:11:32,270 --> 01:11:37,340 S hər char vasitəsilə Beləliklə, biz loop geri ön, biz 0 çıxmaq və 1398 01:11:37,340 --> 01:11:42,790 sonra biz onu, və asılı harada, biz bunu çoxaltmaq 1399 01:11:42,790 --> 01:11:45,860 10 bir güc tərəfindən. 1400 01:11:45,860 --> 01:11:50,644 Çünki birinci, biz nə rightmost xarakter çoxaltmaq? 1401 01:11:50,644 --> 01:11:51,440 >> TƏLƏBƏ: The 0 10. 1402 01:11:51,440 --> 01:11:53,170 >> JASON Hirschhorn: The 0 10. 1403 01:11:53,170 --> 01:11:56,010 Biz ikinci nə çoxaltmaq yoxdur rightmost xarakter tərəfindən? 1404 01:11:56,010 --> 01:11:57,450 >> TƏLƏBƏ: [işitilemez]. 1405 01:11:57,450 --> 01:11:57,960 >> JASON Hirschhorn: Nə? 1406 01:11:57,960 --> 01:11:59,150 >> TƏLƏBƏ: 1. 10. 1407 01:11:59,150 --> 01:12:00,420 >> JASON Hirschhorn: 1 üçün 10. 1408 01:12:00,420 --> 01:12:03,754 Üçüncü-rightmost xarakter? 1409 01:12:03,754 --> 01:12:04,580 >> TƏLƏBƏ: 2 10. 1410 01:12:04,580 --> 01:12:05,350 >> JASON Hirschhorn: 2 10. 1411 01:12:05,350 --> 01:12:07,200 >> TƏLƏBƏ: Bağışlayın, mən başa düşmürəm biz burada nə edirik. 1412 01:12:07,200 --> 01:12:08,640 >> JASON Hirschhorn: OK, nin, sonra geri gedək. 1413 01:12:08,640 --> 01:12:12,500 Beləliklə, biz almaq olacaq simli keçdi. 1414 01:12:12,500 --> 01:12:14,470 Biz ATOI yazılı etdiyiniz çünki. 1415 01:12:14,470 --> 01:12:15,260 Beləliklə, biz bir simli qəbul almaq. 1416 01:12:15,260 --> 01:12:17,640 Biz keçdi əldə etdiyiniz demək simli 90. 1417 01:12:17,640 --> 01:12:19,930 >> Biz nə olacaq ilk şey müəyyən edilir biz istəyirik ki, yeni tam dəyişən 1418 01:12:19,930 --> 01:12:22,150 yalnız yaratmaq niyyətindədir yeni tam kimi. 1419 01:12:22,150 --> 01:12:24,630 Yəni biz olacaq nə sonunda qayıtmaq üçün. 1420 01:12:24,630 --> 01:12:30,110 Biz hər bir xarakter ilə getmək lazımdır simli biz müəyyən etdik, çünki 1421 01:12:30,110 --> 01:12:34,430 biz hər bir toxunmaq lazımdır ki, sonra bizim yeni tam əlavə edin. 1422 01:12:34,430 --> 01:12:36,330 >> Amma biz yalnız bir sıra əlavə edə bilməz. 1423 01:12:36,330 --> 01:12:38,270 Biz yalnız 9 və bilməz bizim tam 9 əlavə edin. 1424 01:12:38,270 --> 01:12:40,560 Bu nə yer asılıdır Bu simli edir. 1425 01:12:40,560 --> 01:12:42,960 Biz çoxaltmaq lazım olacaq Bu 10 bir güc tərəfindən. 1426 01:12:42,960 --> 01:12:45,580 Ki, çünki necə bazası 10 işləri. 1427 01:12:45,580 --> 01:12:49,050 >> Belə ki, biz faktiki almaq olacaq xarakter, və ya faktiki tam 1428 01:12:49,050 --> 01:12:53,860 sayı, xarakter 0 çıxarılaraq xarakterli 9 biz olduğu kimi olan 1429 01:12:53,860 --> 01:12:57,560 xarakter kapital subtracting biz bir idi nə xarakter 1430 01:12:57,560 --> 01:12:58,120 o problemləri. 1431 01:12:58,120 --> 01:13:04,190 Belə ki, biz, həqiqətən, 0-dan bir sıra almaq lazımdır 9 real sayı qeyd, və biz will 1432 01:13:04,190 --> 01:13:07,590 asılı olaraq 10 bir güc ilə çoxaltmaq biz simli olduğu haqqında. 1433 01:13:07,590 --> 01:13:19,430 1434 01:13:19,430 --> 01:13:22,575 Və sonra biz onu geri əlavə olacaq yeni tam dəyişən. 1435 01:13:22,575 --> 01:13:32,840 1436 01:13:32,840 --> 01:13:37,890 >> Belə ki, nə bu olduğu kimi görünür biz burada çəkmək lazımdır - ola. 1437 01:13:37,890 --> 01:13:40,086 Biz simli 90 keçdi almaq - 1438 01:13:40,086 --> 01:13:41,336 >> TƏLƏBƏ: [işitilemez]. 1439 01:13:41,336 --> 01:13:43,190 1440 01:13:43,190 --> 01:13:45,540 >> JASON Hirschhorn: Amma atoi bir simli edir. 1441 01:13:45,540 --> 01:13:46,350 Belə ki, biz vasitəsilə getmək olacaq holdinq. 1442 01:13:46,350 --> 01:13:49,900 Biz 90-ci ildə qəbul almaq lazımdır. 1443 01:13:49,900 --> 01:13:51,540 Biz qarşısında geri getmək. 1444 01:13:51,540 --> 01:13:53,920 Biz 0 almaq. 1445 01:13:53,920 --> 01:13:55,080 >> TƏLƏBƏ: Üzgünüm. 1446 01:13:55,080 --> 01:13:55,880 Bəlkə bu axmaq deyil. 1447 01:13:55,880 --> 01:13:59,440 Biz simli qəbul olmaq istəyirsinizsə, niyə biz istəyirik nə 90 1448 01:13:59,440 --> 01:14:00,260 keçdi mi? 1449 01:14:00,260 --> 01:14:03,160 90 tam deyil. 1450 01:14:03,160 --> 01:14:06,820 >> JASON Hirschhorn: atoi bir tutur string və tam daxil çevrilir 1451 01:14:06,820 --> 01:14:08,320 ki, simli nümayəndəliyi. 1452 01:14:08,320 --> 01:14:13,650 Amma string 90 tam deyil 90 və ya 90. 1453 01:14:13,650 --> 01:14:17,920 The string 90 iki array, və ya üç simvol, daha doğrusu, 9 1454 01:14:17,920 --> 01:14:22,740 xarakteri, 0 xarakteri, və backslash 0 character. 1455 01:14:22,740 --> 01:14:26,260 >> Və biz, çünki üçün ATOI yazıyoruz Məsələn, siz əmri almaq zaman 1456 01:14:26,260 --> 01:14:30,230 line arqument və bu qeyd edir argv, bir string kimi xilas oldu. 1457 01:14:30,230 --> 01:14:32,940 Amma bir sıra kimi müalicə etmək istəyirsinizsə, Əgər onu çevirmək lazımdır 1458 01:14:32,940 --> 01:14:34,700 faktiki tam. 1459 01:14:34,700 --> 01:14:37,210 Hansı biz problem dəstdən birini etdi. 1460 01:14:37,210 --> 01:14:38,800 Biz bir sıra hansı Bizim problem dəstləri. 1461 01:14:38,800 --> 01:14:41,690 Bir tam aldı ki, hər kəs bir command line arqument kimi. 1462 01:14:41,690 --> 01:14:46,490 Belə ki, niyə bizim atoi funksiyası bir simli edir. 1463 01:14:46,490 --> 01:14:51,910 >> Belə ki, yenə burada bizim misalda, biz istəyirik son bir almaq üçün gedir. 1464 01:14:51,910 --> 01:14:55,050 Biz xarakter çıxmaq olacaq Bu 0, çünki simvol 0 1465 01:14:55,050 --> 01:14:58,810 xarakteri 0 çıxılacaq verir görə faktiki sayı 0, 1466 01:14:58,810 --> 01:15:00,950 biz ki, ASCII riyaziyyat. 1467 01:15:00,950 --> 01:15:04,870 >> Simvol kimi təmsil olunur onların faktiki fərqli - burada 1468 01:15:04,870 --> 01:15:08,830 xarakter, məsələn, kiçik bir 97 edir. 1469 01:15:08,830 --> 01:15:10,260 Bu deyil - oops! 1470 01:15:10,260 --> 01:15:13,290 Sizin gözləmək olardı nə deyil Məsələn, 0 olacaq. 1471 01:15:13,290 --> 01:15:16,200 Beləliklə, siz çıxmaq üçün var xarakter 0 almaq. 1472 01:15:16,200 --> 01:15:18,950 >> Beləliklə, biz burada nə olacaq faktiki sayı almaq üçün. 1473 01:15:18,950 --> 01:15:22,560 Və sonra biz onu çoxaltmaq üçün gedir 10 güc yerdə asılı olaraq 1474 01:15:22,560 --> 01:15:27,030 simli və sonra almaq və yerin sahibi əlavə 1475 01:15:27,030 --> 01:15:32,520 dəyişən biz ilə gəlmək olar bizim son yeni tam. 1476 01:15:32,520 --> 01:15:35,080 Ki, hər kəs üçün əhəmiyyət kəsb edir mu? 1477 01:15:35,080 --> 01:15:37,730 >> Beləliklə, biz bu kod fikrində deyilik indi, çünki biz istəyirik 1478 01:15:37,730 --> 01:15:38,830 zaman qısa əldə. 1479 01:15:38,830 --> 01:15:40,860 Mən müddəti üçün üzr istəyirik. 1480 01:15:40,860 --> 01:15:44,620 Amma bu nə, ümid edirəm ki, siz ki, edir at - viktorina edə 1481 01:15:44,620 --> 01:15:47,710 ən azı, bu pseudocode almaq yazılı. 1482 01:15:47,710 --> 01:15:50,840 >> Və sonra, biz əgər yazmaq pseudocode, həqiqətən, biz bunu edə bilər 1483 01:15:50,840 --> 01:15:51,490 olduqca tez. 1484 01:15:51,490 --> 01:15:55,230 Biz yazırdı şərhlər hər line burada tərcümə 1485 01:15:55,230 --> 01:15:56,970 C kodu bir line. 1486 01:15:56,970 --> 01:16:01,780 Yeni bir dəyişən, yazılı elan bir loop, bəzi toplama işlemi, bəzi 1487 01:16:01,780 --> 01:16:07,070 vurma, və bəzi tapşırıq. 1488 01:16:07,070 --> 01:16:09,020 Biz yəqin ki, həmçinin istəyirəm bir qaytarılması line yazın. 1489 01:16:09,020 --> 01:16:12,040 Biz də qoymaq istəyirəm bilər Burada bəzi yoxlayır. 1490 01:16:12,040 --> 01:16:12,655 Bəli. 1491 01:16:12,655 --> 01:16:15,720 >> TƏLƏBƏ: Beləliklə, biz müalicə edə bilər faktiki string kimi s? 1492 01:16:15,720 --> 01:16:18,730 Mən bilirəm çünki yalnız bir ünvanı var. 1493 01:16:18,730 --> 01:16:22,090 Kimi, necə uzunluğu almaq olardı simli keçdiyi? 1494 01:16:22,090 --> 01:16:25,310 >> JASON Hirschhorn: Belə ki, necə bir simli uzunluğu? 1495 01:16:25,310 --> 01:16:25,830 Strlen. 1496 01:16:25,830 --> 01:16:26,660 >> TƏLƏBƏ: strlen, evet. 1497 01:16:26,660 --> 01:16:30,550 Amma kimi s qoya bilər ki dəlil? 1498 01:16:30,550 --> 01:16:34,620 >> JASON Hirschhorn: Belə strlen bir char ulduz edir. 1499 01:16:34,620 --> 01:16:38,090 Və bu char ulduz aşağıdakı və o, bir olur qədər hesablanması saxlayır 1500 01:16:38,090 --> 01:16:41,865 backslash 0. strlen əslində digər proqramları biri 1501 01:16:41,865 --> 01:16:42,850 kodu gedirdi. 1502 01:16:42,850 --> 01:16:44,560 Bu kod yaxşı biri. 1503 01:16:44,560 --> 01:16:47,270 Ki, bir, bir az daha asandır, çünki Bu barədə düşünəcəyik 1504 01:16:47,270 --> 01:16:47,830 konseptual - 1505 01:16:47,830 --> 01:16:51,620 Mən yalnız onu yüksək səslə dedi - strlen aşağıdakı bir pointer və saxlayır gedən və 1506 01:16:51,620 --> 01:16:54,210 hesablanması və qədər track saxlanılması bir backslash 0 çatmaq. 1507 01:16:54,210 --> 01:16:56,530 >> TƏLƏBƏ: OK, var. 1508 01:16:56,530 --> 01:17:00,200 >> JASON Hirschhorn: belə ki, yaxşı viktorina 0 sabah uğurlar. 1509 01:17:00,200 --> 01:17:03,170 Əgər hər hansı bir sualınız varsa, mən will Bu sonra xaricində. 1510 01:17:03,170 --> 01:17:05,610 Mənə e-poçt çekinmeyin. 1511 01:17:05,610 --> 01:17:08,480 Değilseniz öz TF həyata nail olmaq mənim bölməsində, və ya almaq deyil mənim 1512 01:17:08,480 --> 01:17:10,005 istədiyiniz əgər e-poçt. 1513 01:17:10,005 --> 01:17:13,140 >> Sizə qəribə istəyirəm və yalnız göndərmək mənə bir e-poçt, bir Freakout e-poçt, I will 1514 01:17:13,140 --> 01:17:16,710 , bir smiley face, kimi, geri göndərmək və ya kimi, bir zarafat və ya bir şey. 1515 01:17:16,710 --> 01:17:18,190 Belə də bunu çekinmeyin. 1516 01:17:18,190 --> 01:17:20,750 Uğurlar yenidən və mən will bütün gələn həftə görmək. 1517 01:17:20,750 --> 01:17:23,435