1 00:00:00,000 --> 00:00:02,742 2 00:00:02,742 --> 00:00:05,680 >> HOPARLÖR 1: Hi everyone. 3 00:00:05,680 --> 00:00:07,530 Biz başlamaq üçün gedir. 4 00:00:07,530 --> 00:00:09,330 Mən insanların hələ də davam edirəm filtreleme olmalıdır. 5 00:00:09,330 --> 00:00:12,840 Amma vaxt maraq da, biz belə vaxt buradan siz uşaqlar almaq, 6 00:00:12,840 --> 00:00:14,110 biz başlamaq olacaq. 7 00:00:14,110 --> 00:00:18,780 Belə ki, CS50 Quiz 0 nəzərdən salamlayıram. 8 00:00:18,780 --> 00:00:23,020 Həyata olmayan sizin üçün hələ, çərşənbə günü bir sual var. 9 00:00:23,020 --> 00:00:25,700 Woo-hoo. 10 00:00:25,700 --> 00:00:29,780 >> Siz hələ öyrənilməsi açılmış deyil və ya Bu hələ var ki, həyata deyil, 11 00:00:29,780 --> 00:00:34,070 keçmiş viktorina və bütün məlumat Sizin viktorina cs50.net/quizzes var. 12 00:00:34,070 --> 00:00:38,090 Bəzi olduqca yaxşı stuff orada var, 10 Son keçmiş sınavlar 13 00:00:38,090 --> 00:00:43,760 il həmçinin informasiya Bu viktorina və mövzular haqqında 14 00:00:43,760 --> 00:00:46,250 ki, əhatə olunacaq. 15 00:00:46,250 --> 00:00:48,980 Belə ki, in başlamaq bildirin. 16 00:00:48,980 --> 00:00:54,240 >> Belə ki, uşaqlar, ilk xatırlayıram bilər class Davudun gün o işıqlar idi. 17 00:00:54,240 --> 00:00:59,650 Belə ki, mahiyyətcə, hər şey gedir ki, bir kompüter başlıq altında 18 00:00:59,650 --> 00:01:00,860 ikili edilir. 19 00:01:00,860 --> 00:01:04,080 Binary səslənir nə deməkdir kimi, 0 və 1-in. 20 00:01:04,080 --> 00:01:09,290 Bu iki dəyərlər var ki, təmsil oluna bilər. 21 00:01:09,290 --> 00:01:14,675 >> Belə ki, yalnız bölməsində birinci gün kimi David bir işıq açıq zaman 22 00:01:14,675 --> 00:01:21,990 ampul, bizim kompüter təmsil, və ya 1 anlayır 0 kimi ikili və 23 00:01:21,990 --> 00:01:24,110 1-nin, və ya off. 24 00:01:24,110 --> 00:01:25,360 Binary əsasları. 25 00:01:25,360 --> 00:01:29,440 26 00:01:29,440 --> 00:01:32,470 Hər yer təmsil olunur bazasında iki. 27 00:01:32,470 --> 00:01:36,260 Beləliklə, siz üçün 0 2 əlavə 1 bütün yol qədər 2 üçün. 28 00:01:36,260 --> 00:01:41,970 >> Sizin ikili nə hesablamaq üçün decimal, yalnız bu tənlik edin 29 00:01:41,970 --> 00:01:42,840 növü şey. 30 00:01:42,840 --> 00:01:49,510 Siz həmin yerlərdə hər hansı bir 1 varsa, siz çoxaltmaq nə 31 00:01:49,510 --> 00:01:53,820 Bu var bazası, onu əlavə və Siz decimal almaq. 32 00:01:53,820 --> 00:01:57,930 Belə ki, bu saymaq necə ikili 5. 33 00:01:57,930 --> 00:02:01,400 Sadəcə biz nə etdiklərinizi kimi Son slide, bu necə edərdi 34 00:02:01,400 --> 00:02:02,650 5 ilə 1 etdirir. 35 00:02:02,650 --> 00:02:05,320 36 00:02:05,320 --> 00:02:09,660 >> Eynilə, yalnız əlavə edə bilərsiniz kimi və decimal çıxmaq və ya 10 əsas, və ya 37 00:02:09,660 --> 00:02:13,040 həqiqətən heç bir əsas, əlavə edə bilərsiniz və ikili çıxmaq. 38 00:02:13,040 --> 00:02:18,400 Zaman gözləmək dəqiq nə Bu böyük bərabərdir əgər, iki up əlavə 39 00:02:18,400 --> 00:02:24,220 1-dən, bir 1, 0 etmək keçirmək, və yalnız əlavə yol yoxdur 40 00:02:24,220 --> 00:02:29,910 kimi müntəzəm gözləmək olardı decimal və ya hər hansı digər baza. 41 00:02:29,910 --> 00:02:30,970 Cool. 42 00:02:30,970 --> 00:02:35,140 >> Mən hər şey əvvəlki kimi Belə ki, bizim kompüter başlıq altında gedir 43 00:02:35,140 --> 00:02:37,560 0 və 1-in və ya ikili edilir. 44 00:02:37,560 --> 00:02:43,470 Beləliklə, biz ifadə necə, məsələn, məktublar, və ya nömrələri, və ya simvol? 45 00:02:43,470 --> 00:02:45,560 Və cavab ASCII edir. 46 00:02:45,560 --> 00:02:49,380 >> ASCII simvol arasında mapping edir biz adətən görmək ki, 47 00:02:49,380 --> 00:02:53,360 A, B kimi ingilis dili, C, vurğulamaq, tire, və 48 00:02:53,360 --> 00:02:54,910 kimi bir şey. 49 00:02:54,910 --> 00:02:57,260 Və bir ASCII dəyəri xəritələr. 50 00:02:57,260 --> 00:03:03,080 Bir ASCII dəyəri yalnız bir sıra ki, Sizin kompüter tərəfindən başa düşülə bilər. 51 00:03:03,080 --> 00:03:07,430 Və əlavə edə bilərsiniz kimi və nömrələri ilə toplama işlemi, siz edə bilərsiniz 52 00:03:07,430 --> 00:03:10,890 ASCII dəyərləri ilə onları. 53 00:03:10,890 --> 00:03:14,050 >> , Bu nümunə belə nə Bu çap edəcək? 54 00:03:14,050 --> 00:03:26,790 55 00:03:26,790 --> 00:03:35,480 Bəli, belə ki, yalnız A space B space C space D. Mənim siçan getmək idi? 56 00:03:35,480 --> 00:03:39,200 57 00:03:39,200 --> 00:03:43,380 Siz 65 bir int müəyyən edə bilərsiniz edək. 58 00:03:43,380 --> 00:03:47,080 Və istifadə ki, çap zaman faiz C, bir kimi şərh edəcəyik 59 00:03:47,080 --> 00:03:49,330 xarakteri və A. çap edəcək 60 00:03:49,330 --> 00:03:52,800 >> Eynilə, siz elan edə bilər bir char kimi. 61 00:03:52,800 --> 00:03:56,860 Və siz faiz istifadə edərək, çap zaman C, kimi ki, şərh lazımdır 62 00:03:56,860 --> 00:04:05,240 faiz D. Və bir əlavə edə bilərsiniz kimi sayı, simvol əlavə edə bilərsiniz 63 00:04:05,240 --> 00:04:06,878 Bu halda ASCII dəyərləri. 64 00:04:06,878 --> 00:04:11,370 65 00:04:11,370 --> 00:04:16,130 >> Hamı üçün bir az göstərici. 66 00:04:16,130 --> 00:04:19,610 5, bir string kimi, deyil həqiqətən 5 bərabərdir. 67 00:04:19,610 --> 00:04:26,610 Belə ki, necə çevirmək bilər bu tam 5 string 5? 68 00:04:26,610 --> 00:04:28,930 Hər hansı bir fikir? 69 00:04:28,930 --> 00:04:31,630 Bəli. 70 00:04:31,630 --> 00:04:36,720 >> Beləliklə, biz bir string kimi 5 varsa, biz 0 çıxmaq bilər. 71 00:04:36,720 --> 00:04:37,820 Və bizə 5 verəcəyik. 72 00:04:37,820 --> 00:04:41,670 Və eyni, biz kimi 5 varsa tam, simli 0 ki, əlavə. 73 00:04:41,670 --> 00:04:43,112 Və bizə simli 5 verir. 74 00:04:43,112 --> 00:04:46,350 75 00:04:46,350 --> 00:04:48,350 Cool. 76 00:04:48,350 --> 00:04:52,940 >> İndi, bir harada mühazirə geri geri biz alqoritmlər danışdıq. 77 00:04:52,940 --> 00:04:57,260 Belə ki, biz, həqiqətən, bir kompüter istəyirik necə maraqlı şeylər etmək? 78 00:04:57,260 --> 00:05:00,460 Siz yalnız əlavə və subtracting, bilirik nömrələri və çap şeyi deyil 79 00:05:00,460 --> 00:05:01,730 ki, maraqlı. 80 00:05:01,730 --> 00:05:04,620 Adətən, biz bizim kompüter istəyirik alqoritm bir növ həyata keçirir. 81 00:05:04,620 --> 00:05:07,820 Bir az daha kompleks bir şey yalnız sadə hesab çox. 82 00:05:07,820 --> 00:05:11,930 >> Bir alqoritm addım set yalnız bir addımdır yerinə yetirmək üçün necə üçün təlimatlar 83 00:05:11,930 --> 00:05:14,640 müəyyən task-- 84 00:05:14,640 --> 00:05:15,660 bir resept kimi. 85 00:05:15,660 --> 00:05:19,990 Siz ilk günü xatırlayıram bilər David bizə otaq saymaq olduğu sinif 86 00:05:19,990 --> 00:05:22,550 insanların və necə bir çox insanlar otaqda idi. 87 00:05:22,550 --> 00:05:24,480 Siz hesablanması üçün istifadə edilə bilər bir-bir. 88 00:05:24,480 --> 00:05:25,860 1, 2, 3, 4. 89 00:05:25,860 --> 00:05:28,010 Bu halda, xətti alqoritm. 90 00:05:28,010 --> 00:05:31,710 >> Amma David üçün bir alqoritm təqdim Siz oda insanlar saymaq 91 00:05:31,710 --> 00:05:37,340 hər kəs dayanır, siz sizin demək başqa şəxsə sayı, əlavə 92 00:05:37,340 --> 00:05:39,200 sıra, bir şəxs aşağı oturur. 93 00:05:39,200 --> 00:05:40,410 Və ki, deyirəm. 94 00:05:40,410 --> 00:05:42,910 Ki, alqoritm bir növü var. 95 00:05:42,910 --> 00:05:47,520 Biz necə səmərəli an analiz edə bilərsiniz Bu vaxt çalıştırmak üzrə alqoritm əsaslanır. 96 00:05:47,520 --> 00:05:49,680 Amma biz bir az danışmaq lazımdır sonra haqqında daha çox. 97 00:05:49,680 --> 00:05:52,740 98 00:05:52,740 --> 00:05:57,090 >> Belə ki, bütün alqoritmlər həmçinin pseudocode yazılı. 99 00:05:57,090 --> 00:06:01,120 Pseudocode kimi bir İngilis syntax təmsil etmək üçün istifadə 100 00:06:01,120 --> 00:06:02,420 bir proqramlaşdırma dili. 101 00:06:02,420 --> 00:06:06,070 Məsələn, bir istifadəçi istədik, xahiş mənim sevimli nömrəni tahmin, biz 102 00:06:06,070 --> 00:06:08,390 kimi pseudocode ola bilər. 103 00:06:08,390 --> 00:06:09,850 >> Bir istifadəçi tapmaq alın. 104 00:06:09,850 --> 00:06:13,570 Tahmin doğru deyil, onlara onlar doğru danışırsınızsa, başqa onlara 105 00:06:13,570 --> 00:06:15,560 Onlar doğru deyilik. 106 00:06:15,560 --> 00:06:22,530 Və pseudocode asanlıqla bir yoldur bir fikir və ya bir alqoritm təmsil. 107 00:06:22,530 --> 00:06:26,910 Belə ki, indi biz, həqiqətən, yazmaq istəyirəm bilər Bu dil, kompüter 108 00:06:26,910 --> 00:06:27,980 anlayış bilər. 109 00:06:27,980 --> 00:06:35,660 Belə ki, biz pseudocode yazmaq bilər və mənbə kodu daxil şərh. 110 00:06:35,660 --> 00:06:41,320 >> İndiyə qədər, mənbə kodu riayət etməlidirlər müəyyən sintaksis 111 00:06:41,320 --> 00:06:42,490 bir proqramlaşdırma dili. 112 00:06:42,490 --> 00:06:45,430 Və bu günə qədər, CS50, biz əsasən c istifadə edilmişdir. 113 00:06:45,430 --> 00:06:48,320 Belə ki, bu c mənbə kodu ola bilər. 114 00:06:48,320 --> 00:06:51,440 Sonra əlbəttə, siz gecə gəlib digər proqramlaşdırma ilə əlaqə 115 00:06:51,440 --> 00:06:52,480 PHP kimi languages. 116 00:06:52,480 --> 00:06:57,540 Və ya hətta, sizə digər dərsləri almaq əgər Java, Python, və ya hətta OCML edə bilər. 117 00:06:57,540 --> 00:07:01,570 Amma bizim c proqram dilində, bu biz üçün mənbə kodu yazmaq necə 118 00:07:01,570 --> 00:07:04,760 pseudocode alqoritm ki Mən yalnız əvvəllər təsvir. 119 00:07:04,760 --> 00:07:08,630 120 00:07:08,630 --> 00:07:11,430 >> Belə ki, necə həqiqətən, sizin kompüter yoxdur ki? 121 00:07:11,430 --> 00:07:14,490 Mən yalnız, həqiqətən, əvvəl dediyim kimi adet sıfır və olanları başa düşür. 122 00:07:14,490 --> 00:07:17,880 Belə ki, necə bu mənbədən əldə edir ola bilər ki, bir şey code 123 00:07:17,880 --> 00:07:18,960 başa? 124 00:07:18,960 --> 00:07:22,920 Bəli, biz bir şey var bir compiler çağırıb. 125 00:07:22,920 --> 00:07:28,450 >> Siz ən geri geri varsa sizin psets, siz proqram bir növ idi 126 00:07:28,450 --> 00:07:30,370 bir dot c fayl yazılı. 127 00:07:30,370 --> 00:07:32,550 Və sonra markası yazın olardı. 128 00:07:32,550 --> 00:07:35,970 Belə ki, nə etmək edir? 129 00:07:35,970 --> 00:07:39,970 >> Siz tərtib etmək yazın bilərsiniz proqram someone-- çünki 130 00:07:39,970 --> 00:07:42,730 kim p set yazdı; yəqin ki, David-- 131 00:07:42,730 --> 00:07:44,190 bir fayl yaradılmışdır. 132 00:07:44,190 --> 00:07:51,320 Və çalıştırmak üçün bilmək deyir sizin compiler adlı cingilti ki, iradə 133 00:07:51,320 --> 00:07:55,560 sonra etiraz mənbə kodu tərtib adet sıfır və olanları olan kodu, 134 00:07:55,560 --> 00:07:57,720 Sizin kompüter anlayır ki. 135 00:07:57,720 --> 00:08:01,610 Amma sonra bir az, biz gedəcək derleyiciler haqqında daha ətraflı. 136 00:08:01,610 --> 00:08:05,640 137 00:08:05,640 --> 00:08:10,800 >> Belə ki, geri pset 0, oxlar bəli, Bir sual var? 138 00:08:10,800 --> 00:08:11,620 >> Auditoriya: [Işitilemez]? 139 00:08:11,620 --> 00:08:12,490 >> HOPARLÖR 1: Bəli. 140 00:08:12,490 --> 00:08:14,960 Mən, həqiqətən, onlar hesab online olmalıdır. 141 00:08:14,960 --> 00:08:15,120 Bəli. 142 00:08:15,120 --> 00:08:16,572 >> Auditoriya: Bu [Işitilemez] kimi mi? 143 00:08:16,572 --> 00:08:19,476 144 00:08:19,476 --> 00:08:20,830 >> HOPARLÖR 1: deyil. 145 00:08:20,830 --> 00:08:25,810 The cs50.net/quizzes var. 146 00:08:25,810 --> 00:08:32,900 >> Auditoriya: Slash sınavlar, 2013 doğramaq 0 doğramaq, və yalnız vasitəsilə basın 147 00:08:32,900 --> 00:08:35,956 sınavlar 2013 və viktorina 0, bölmə slaydlar nəzərdən. 148 00:08:35,956 --> 00:08:40,380 >> HOPARLÖR 1: Bəli, belə uşaqlar istəyirsinizsə onu qoparmaq və ona baxmaq sizin 149 00:08:40,380 --> 00:08:42,740 öz kompüter ki, çox gözəl var. 150 00:08:42,740 --> 00:08:43,130 Daha demək. 151 00:08:43,130 --> 00:08:44,546 >> Auditoriya: [işitilemez]. 152 00:08:44,546 --> 00:08:48,780 >> HOPARLÖR 1: Bəli, [Işitilemez] Bu dummy dəyişir. 153 00:08:48,780 --> 00:08:49,644 Bəli, Oh? 154 00:08:49,644 --> 00:08:51,372 >> Auditoriya: [Işitilemez]? 155 00:08:51,372 --> 00:08:54,300 >> HOPARLÖR 1: Xeyr, tətillər imtahan deyil. 156 00:08:54,300 --> 00:08:55,950 Üzr istəyirik, idi onun sual idi imtahan çəkir. 157 00:08:55,950 --> 00:08:59,530 Və bu deyil. 158 00:08:59,530 --> 00:09:05,780 Belə ki, pset 0, uşaqlar bütün olmalıdır danışıq istifadə edərək bir şey həyata. 159 00:09:05,780 --> 00:09:13,100 Və biz bəzi əsas proqramlaşdırma öyrənildi danışıq istifadə bloklar. 160 00:09:13,100 --> 00:09:15,590 >> Belə ki, bəzi nəzər salaq Bu bloklar 161 00:09:15,590 --> 00:09:18,170 ki, bir proqram təşkil edir. 162 00:09:18,170 --> 00:09:20,570 İlk Boolean ifadə edir. 163 00:09:20,570 --> 00:09:24,540 Boolean ifadələr olanlardır və Ki, 0 və ya bir şey 164 00:09:24,540 --> 00:09:25,700 iki mümkün dəyərlər. 165 00:09:25,700 --> 00:09:30,320 Bu halda, doğru və ya yalan, və ya off, və bəli və ya xeyr. 166 00:09:30,320 --> 00:09:35,390 Çox sadə, sadə bir misal, bir Boolean istifadə edir ki proqram 167 00:09:35,390 --> 00:09:39,140 Burada ifadə up. 168 00:09:39,140 --> 00:09:43,220 >> Belə ki, Boolean ifadələr üçün faydalı ola bilər, biz Boolean operatorları var. 169 00:09:43,220 --> 00:09:48,920 Bu istifadə edilə bilər ki operatorları müəyyən dəyərləri müqayisə etmək. 170 00:09:48,920 --> 00:09:52,820 Belə ki, biz və ya bərabər daha az daha çox və ya daha çox bərabər və ya 171 00:09:52,820 --> 00:09:55,130 bərabər və daha az daha çox və ya daha. 172 00:09:55,130 --> 00:09:59,060 Lakin bu operatorları çox faydalı deyil biz onları birləşdirə bilər halda 173 00:09:59,060 --> 00:10:00,320 şərtlər. 174 00:10:00,320 --> 00:10:04,370 >> Belə ki, uşaqlar sıfırdan xatırlayıram bilər və s ki, biz müəyyən 175 00:10:04,370 --> 00:10:05,400 şərait var idi. 176 00:10:05,400 --> 00:10:09,710 Onlar çəngəllər kimi, mahiyyətcə var Sizin proqram məntiq 177 00:10:09,710 --> 00:10:12,670 asılı olaraq icra bir vəziyyət görüşüb. 178 00:10:12,670 --> 00:10:18,150 Biz idi ki, şərait belə bir Bu kurs çox dəfə istifadə edir 179 00:10:18,150 --> 00:10:21,470 başqa, əgər, və başqa şərtlər, əgər. 180 00:10:21,470 --> 00:10:24,060 >> Burada necə bir misal var Siz istifadə edə bilər. 181 00:10:24,060 --> 00:10:28,430 Hər kəs arasında fərq bilir yalnız hesabatlarının əgər bütün istifadə 182 00:10:28,430 --> 00:10:32,530 əgər başqa ayələrdə aşağı yol, əgər və başqa birləşdirilmiş? 183 00:10:32,530 --> 00:10:33,013 Bəli? 184 00:10:33,013 --> 00:10:34,263 >> Auditoriya: [işitilemez]. 185 00:10:34,263 --> 00:10:40,741 186 00:10:40,741 --> 00:10:42,160 >> HOPARLÖR 1: Exactly. 187 00:10:42,160 --> 00:10:50,210 Mən olsaydı, bu bütün yol aşağı yol, hətta bu vəziyyət yekunları əgər 188 00:10:50,210 --> 00:10:52,800 doğru, hələ davam edəcək növbəti iki sınaq. 189 00:10:52,800 --> 00:11:00,120 Halbuki, bir başqa əgər, bir başqa ilə Şərhdə, bir doğru qayıtdıqda əgər, 190 00:11:00,120 --> 00:11:02,640 digərləri test deyil. 191 00:11:02,640 --> 00:11:05,955 Ki, Hər hansı bir sualınız? 192 00:11:05,955 --> 00:11:06,890 Cool. 193 00:11:06,890 --> 00:11:12,240 >> Belə ki, bir başqa bir if-else istifadə Bilirsiniz, əgər şərhdə yalnız bilərsiniz 194 00:11:12,240 --> 00:11:14,470 Bu hallarda biri. 195 00:11:14,470 --> 00:11:21,550 X az 0 əgər Beləliklə, biz bu bilirik, mütləq olacaq deyil 196 00:11:21,550 --> 00:11:22,890 0-dən çox. 197 00:11:22,890 --> 00:11:26,940 198 00:11:26,940 --> 00:11:31,480 >> Next, bir bina blok öyrəndik ki, loops var. 199 00:11:31,480 --> 00:11:33,310 Biz loops üç növü var. 200 00:11:33,310 --> 00:11:35,830 Loops üçün, loops, və loops isə yoxdur. 201 00:11:35,830 --> 00:11:38,730 Və ümumiyyətlə, zaman oturub bir şey yazmaq, siz qərar var 202 00:11:38,730 --> 00:11:40,060 istifadə etmək istədiyiniz üç olan. 203 00:11:40,060 --> 00:11:41,900 Belə ki, necə biz bir karar verirsiniz? 204 00:11:41,900 --> 00:11:44,920 205 00:11:44,920 --> 00:11:48,790 >> Biz bilirik ki, əgər Biz, ümumiyyətlə, loop üçün istifadə neçə dəfə biz təkrarlamaq istəyirəm 206 00:11:48,790 --> 00:11:53,650 bir və ya neçə dəfə biz bir tapşırıq yerinə yetirmək istəyirəm. 207 00:11:53,650 --> 00:11:58,830 Biz bəzi lazımdır, əgər biz loops istifadə vəziyyəti davam saxlamaq üçün doğru olmalıdır. 208 00:11:58,830 --> 00:12:03,730 Və biz çox oxşar nə isə istifadə isə, lakin biz kodu çalıştırmak üçün istədiyiniz 209 00:12:03,730 --> 00:12:04,880 ən azı bir dəfə. 210 00:12:04,880 --> 00:12:09,410 >> Bu do nə bunu edərkən, iradə həmişə ən azı bir dəfə axır. 211 00:12:09,410 --> 00:12:13,120 Halbuki müddət ilə, bütün əgər run bilər 212 00:12:13,120 --> 00:12:15,490 şərt qane etmir. 213 00:12:15,490 --> 00:12:16,740 Ki, Hər hansı bir sualınız? 214 00:12:16,740 --> 00:12:20,480 215 00:12:20,480 --> 00:12:22,860 >> Loop üçün belə quruluşu. 216 00:12:22,860 --> 00:12:23,620 Siz uşaqlar bütün bu gördük. 217 00:12:23,620 --> 00:12:25,320 Siz başlamaq. 218 00:12:25,320 --> 00:12:26,600 Siz vəziyyət bir növ var. 219 00:12:26,600 --> 00:12:32,340 Belə ki, məsələn, biz başlamaq bilər kimi i 0 bərabərdir. 220 00:12:32,340 --> 00:12:34,040 i az 10 edir. 221 00:12:34,040 --> 00:12:35,442 Və i ++. 222 00:12:35,442 --> 00:12:39,010 Biz etdik ki, çox sadə biridir. 223 00:12:39,010 --> 00:12:42,210 >> Bir müddət loop üçün, eyni, siz başlatma bir növ var, 224 00:12:42,210 --> 00:12:44,980 vəziyyəti bir növ, və yeniləmə bir növ. 225 00:12:44,980 --> 00:12:51,990 Beləliklə, biz də loop üçün bizim həyata keçirə bilər bir müddət loop kimi istifadə. 226 00:12:51,990 --> 00:12:56,000 Və eyni do isə loop ilə, biz bəzi başlatma ola bilər, 227 00:12:56,000 --> 00:12:58,640 bir şey icra yeniləmə, və sonra vəziyyəti yoxlamaq. 228 00:12:58,640 --> 00:13:03,500 229 00:13:03,500 --> 00:13:05,140 >> Belə ki, indi funksiyaları. 230 00:13:05,140 --> 00:13:06,460 Biz hər şeyi birlikdə qoymaq. 231 00:13:06,460 --> 00:13:10,140 Biz bəzi yazmaq istəyirəm bilər funksiyası cür. 232 00:13:10,140 --> 00:13:12,790 Ümumi funksiyası güc artıq gördük əsas deyil. 233 00:13:12,790 --> 00:13:13,770 Main bir funksiyası var. 234 00:13:13,770 --> 00:13:16,160 Bu bir dönüş növü int var. 235 00:13:16,160 --> 00:13:18,470 Bu əsas funksiyası adı var. 236 00:13:18,470 --> 00:13:20,810 Və bu dəlilləri, argc və argv var. 237 00:13:20,810 --> 00:13:24,040 Belə ki, əsas yalnız bir funksiyası var. 238 00:13:24,040 --> 00:13:27,230 >> Istifadə edə bilər, digər funksiyaları printf printf bir funksiyası edir 239 00:13:27,230 --> 00:13:29,330 GetInt, toupper. 240 00:13:29,330 --> 00:13:32,010 Lakin bu olmuşdur nə bizim üçün həyata 241 00:13:32,010 --> 00:13:33,270 kitabxana bir növ. 242 00:13:33,270 --> 00:13:37,400 Sizlərin o cümlədən Xatırlayırsınızsa, Bu CS50.h kitabxana və ya 243 00:13:37,400 --> 00:13:38,510 standart I / O kitabxana. 244 00:13:38,510 --> 00:13:39,200 Bəli, sual? 245 00:13:39,200 --> 00:13:41,610 >> Auditoriya: c yalnız xas əsas varmı? 246 00:13:41,610 --> 00:13:44,740 Yalnız cür [Işitilemez] mu? 247 00:13:44,740 --> 00:13:47,370 >> HOPARLÖR 1: sual Əsas əgər c xasdır. 248 00:13:47,370 --> 00:13:51,460 Və bəli, bütün funksiyaları əsas funksiyası var. 249 00:13:51,460 --> 00:13:55,290 Bu cür kompüter üçün lazımdır harada başlamaq üçün bilmək 250 00:13:55,290 --> 00:13:55,993 kodu çalışan. 251 00:13:55,993 --> 00:13:58,108 >> Auditoriya: Belə ki, olmaz [Işitilemez]? 252 00:13:58,108 --> 00:13:59,480 >> HOPARLÖR 1: No. 253 00:13:59,480 --> 00:14:00,760 Hər hansı digər suallar? 254 00:14:00,760 --> 00:14:03,430 255 00:14:03,430 --> 00:14:04,770 Cool. 256 00:14:04,770 --> 00:14:08,050 Bir funksiyası istifadə edə bilərsiniz kimi sizin üçün yazılı, siz də edə bilərsiniz 257 00:14:08,050 --> 00:14:10,380 öz funksiyasını yazmaq. 258 00:14:10,380 --> 00:14:17,050 Bu ki, kimsə bilər bir funksiyası həcmini hesablamaq üçün yazılmış 259 00:14:17,050 --> 00:14:18,395 məsələn bir q, və. 260 00:14:18,395 --> 00:14:21,300 261 00:14:21,300 --> 00:14:29,500 Bir dönüş növü bu halda, burada var int, funksiyası adı q və bizim 262 00:14:29,500 --> 00:14:31,360 parametrlərin siyahısı. 263 00:14:31,360 --> 00:14:34,550 >> Və siz məlumat yazmaq lazımdır ki, qeyd Siz istədiyiniz parametri növü 264 00:14:34,550 --> 00:14:38,660 istifadə və ya funksiyası deyil başqa nə cür bilmək 265 00:14:38,660 --> 00:14:41,650 parametri I qəbul edilməlidir. 266 00:14:41,650 --> 00:14:48,110 Belə ki, bu halda, biz istəyirik bizim giriş kimi bir tamsayı. 267 00:14:48,110 --> 00:14:50,390 Belə ki, niyə biz funksiyaları istifadə etmək istəyirsiniz? 268 00:14:50,390 --> 00:14:52,800 >> İlk növbədə, təşkilat üçün böyük. 269 00:14:52,800 --> 00:14:56,350 Onlar daxil kodu up qırmaq kömək daha chunks təşkil etmək 270 00:14:56,350 --> 00:14:57,960 asan oxumaq. 271 00:14:57,960 --> 00:14:59,760 Sadələşdirilməsi. 272 00:14:59,760 --> 00:15:01,740 Bu dizayn üçün yaxşıdır. 273 00:15:01,740 --> 00:15:04,570 Siz kodu bir parça oxu etdiyiniz zaman və əsas funksiyası, həqiqətən 274 00:15:04,570 --> 00:15:07,750 həqiqətən uzun, daha ola bilər neler haqqında səbəb. 275 00:15:07,750 --> 00:15:11,710 Belə ki, funksiyaları daxil qırmaq əgər, Bu oxumaq üçün asan ola bilər. 276 00:15:11,710 --> 00:15:12,750 Və təkrar-imkanı. 277 00:15:12,750 --> 00:15:16,940 Siz kodu bir yığın varsa olmaqla ki, adlı və ya birdən çox dəfə run, 278 00:15:16,940 --> 00:15:20,690 əvəzinə kodunu 10 dəfə yeniden əsas funksiyası, siz bilər 279 00:15:20,690 --> 00:15:21,440 yeniden istəyirəm. 280 00:15:21,440 --> 00:15:25,740 Və sonra hər zaman istifadə etmək lazımdır kod parça, funksiyası zəng. 281 00:15:25,740 --> 00:15:30,550 282 00:15:30,550 --> 00:15:35,380 >> Belə ki, indi biz danışıq geri xatırlayıram, biz də bir neçə konsepsiyaları haqqında danışdı 283 00:15:35,380 --> 00:15:37,680 olan bir Threading olunur. 284 00:15:37,680 --> 00:15:41,120 Mövzu çox anlayışdır kod ardıcıllığı 285 00:15:41,120 --> 00:15:43,040 eyni zamanda həyata. 286 00:15:43,040 --> 00:15:47,490 Davud olduğu gün bir geri düşünüyorsanız Sizlərin sayı off saymaq 287 00:15:47,490 --> 00:15:48,440 oda insanlar. 288 00:15:48,440 --> 00:15:50,550 >> Əsasən, nə gedirdi Siz uşaqlar bütün idi 289 00:15:50,550 --> 00:15:52,370 ayrı-ayrı mövzuları çalışır. 290 00:15:52,370 --> 00:15:55,540 Və bu mövzuları bir araya gəlirdilər cavab bir növ almaq. 291 00:15:55,540 --> 00:15:58,890 Eynilə, Not, zaman var çox sprites, güc 292 00:15:58,890 --> 00:16:01,070 pişik və it var. 293 00:16:01,070 --> 00:16:08,770 Onlar eyni zamanda olacaq öz skript çalışan. 294 00:16:08,770 --> 00:16:10,020 Ki, Threading bir nümunəsidir. 295 00:16:10,020 --> 00:16:12,860 296 00:16:12,860 --> 00:16:18,000 >> Və digər konsepsiyası idi ki, Sıfırdan təqdim hadisələr idi. 297 00:16:18,000 --> 00:16:22,550 Və hadisələr zaman çox hissələri Sizin kodu bir-biri ilə ünsiyyət. 298 00:16:22,550 --> 00:16:26,840 Siz istifadə edərkən Not bu idi yayım nəzarət və Mən 299 00:16:26,840 --> 00:16:29,500 Blokları almaq. 300 00:16:29,500 --> 00:16:35,170 >> Və həmçinin, Problem Set 4 gördük eləcə də hadisələr bir az. 301 00:16:35,170 --> 00:16:38,250 Siz uşaqlar istifadə edə bilər Bu Gevent kitabxana. 302 00:16:38,250 --> 00:16:42,450 Və bir funksiyası var idi waitForClick Siz gözləyir 303 00:16:42,450 --> 00:16:44,300 istifadəçi basın üçün. 304 00:16:44,300 --> 00:16:47,870 Və klik, bu halda, olardı klik üçün hadisə və gözləmək sizin edir 305 00:16:47,870 --> 00:16:49,120 hadisə handler. 306 00:16:49,120 --> 00:16:53,690 307 00:16:53,690 --> 00:16:58,630 >> Və həmçinin, sizin Psets çalışan və psets iş, siz 308 00:16:58,630 --> 00:17:01,920 ilə təmasda ola bilər bu əmrləri bəzi. 309 00:17:01,920 --> 00:17:05,579 Bu yazdığınız nə sizin terminal pəncərə və ya hər hansı pəncərə 310 00:17:05,579 --> 00:17:12,119 ki, sizin g redaktə göstərir mahiyyətcə, kompüter gedin. 311 00:17:12,119 --> 00:17:19,440 >> Belə ki, məsələn, LS siyahıları bir kataloq məzmunu. 312 00:17:19,440 --> 00:17:22,510 Directory yeni bir qovluq yaradır olun. 313 00:17:22,510 --> 00:17:24,819 CD, dəyişiklik directory. 314 00:17:24,819 --> 00:17:28,400 RM aradan qaldırılması, bir fayl silir və ya bəzi directory. 315 00:17:28,400 --> 00:17:31,050 Və sonra kataloq aradan qaldırılması bir kataloq rədd et. 316 00:17:31,050 --> 00:17:32,300 >> Auditoriya: [Işitilemez]? 317 00:17:32,300 --> 00:17:36,978 318 00:17:36,978 --> 00:17:38,370 >> HOPARLÖR 1: Bəli, əmin olun. 319 00:17:38,370 --> 00:17:42,530 320 00:17:42,530 --> 00:17:46,040 Üzr istəyirik, sual idi əgər Bu qoyaraq gəlir ki, 321 00:17:46,040 --> 00:17:48,840 istifadə etmək hesabatı. 322 00:17:48,840 --> 00:17:49,440 Bu kömək edə bilər. 323 00:17:49,440 --> 00:17:51,490 Siz otaq varsa, siz onu qoya bilər. 324 00:17:51,490 --> 00:17:56,170 Bu da kifayət qədər ümumiyyətlə yaxşı Siz onu istifadə çünki yadda saxlamaq 325 00:17:56,170 --> 00:17:59,060 istədiyiniz bilər yalnız Bu xatirəsi var. 326 00:17:59,060 --> 00:18:02,750 Sizin həyat çox asan etmək lazımdır. 327 00:18:02,750 --> 00:18:04,000 Mən sizin suala cavab mi? 328 00:18:04,000 --> 00:18:10,528 329 00:18:10,528 --> 00:18:14,290 >> Belə ki, indi biz bir az söhbət kitabxanalar haqqında qısa. 330 00:18:14,290 --> 00:18:18,570 Lakin iki əsas olanları biz etdik ki, bu günə qədər kurs istifadə 331 00:18:18,570 --> 00:18:20,860 standart I / O və cs50. 332 00:18:20,860 --> 00:18:25,410 Hansı şeyi daxil edilir standart I / O kitabxana? 333 00:18:25,410 --> 00:18:28,410 >> Bəli, bu günə qədər biz printf istifadə etdik. 334 00:18:28,410 --> 00:18:31,150 CS50, biz GetInt istifadə etdiyiniz və GetString. 335 00:18:31,150 --> 00:18:37,200 Və data type string də olur Bu cs50 kitabxana elan ediləcək. 336 00:18:37,200 --> 00:18:40,250 Biz dərin bir az daha çox danışmaq lazımdır necə kitabxanalar iş və necə 337 00:18:40,250 --> 00:18:41,870 kodunuzu qalan ilə qarşılıqlı. 338 00:18:41,870 --> 00:18:46,220 Lakin həmin iki əsas olanlardır ki, biz indiyə qədər ilə əlaqə gəlmişəm 339 00:18:46,220 --> 00:18:48,430 kurs. 340 00:18:48,430 --> 00:18:50,050 >> Növləri. 341 00:18:50,050 --> 00:18:58,120 Bu nə qədər xatırlamaq yaxşı hər bir növü necə ya təmsil olunur 342 00:18:58,120 --> 00:19:02,840 çox bytes növü hər requires-- 343 00:19:02,840 --> 00:19:04,990 int 4 bayt; char 1 byte. 344 00:19:04,990 --> 00:19:06,550 Float 4 bayt edir. 345 00:19:06,550 --> 00:19:07,782 Ikiqat nədir? 346 00:19:07,782 --> 00:19:09,032 >> Auditoriya: [işitilemez]. 347 00:19:09,032 --> 00:19:11,398 348 00:19:11,398 --> 00:19:16,240 >> HOPARLÖR 1: Bəli, belə bir float lakin ölçüsü ikiqat. 349 00:19:16,240 --> 00:19:17,150 Nə uzun haqqında? 350 00:19:17,150 --> 00:19:18,400 >> Auditoriya: [işitilemez]. 351 00:19:18,400 --> 00:19:21,614 352 00:19:21,614 --> 00:19:24,680 >> HOPARLÖR 1: OK. 353 00:19:24,680 --> 00:19:25,410 Uzun nədir? 354 00:19:25,410 --> 00:19:26,660 >> Auditoriya: [işitilemez]. 355 00:19:26,660 --> 00:19:29,400 356 00:19:29,400 --> 00:19:31,450 >> HOPARLÖR 1: Bəli, bir int ikiqat. 357 00:19:31,450 --> 00:19:34,240 358 00:19:34,240 --> 00:19:34,705 Bəli. 359 00:19:34,705 --> 00:19:36,100 >> Auditoriya: [işitilemez]. 360 00:19:36,100 --> 00:19:38,030 >> HOPARLÖR 1: Long [Işitilemez]. 361 00:19:38,030 --> 00:19:41,860 Və sonra uzun uzun ikiqat edir. 362 00:19:41,860 --> 00:19:42,814 >> Auditoriya: heç, No. 363 00:19:42,814 --> 00:19:47,107 Uzun yalnız bir int edir. 364 00:19:47,107 --> 00:19:50,910 Bu memarlıq asılıdır əvvəl [Işitilemez] 365 00:19:50,910 --> 00:19:52,922 və int eyni ölçüsü var. 366 00:19:52,922 --> 00:19:54,172 [Işitilemez]. 367 00:19:54,172 --> 00:19:58,841 368 00:19:58,841 --> 00:20:00,920 >> HOPARLÖR 1: Belə ki, uzun və bir int eynidir. 369 00:20:00,920 --> 00:20:02,943 Və sonra uzun uzun ikiqat int edir. 370 00:20:02,943 --> 00:20:03,910 Cool. 371 00:20:03,910 --> 00:20:05,550 Və sonra, son növü nədir? 372 00:20:05,550 --> 00:20:06,510 >> Auditoriya: Pointer. 373 00:20:06,510 --> 00:20:10,350 >> HOPARLÖR 1: Bəli, biz öyrəndik göstəricilər haqqında bir az. 374 00:20:10,350 --> 00:20:14,015 Və asılı olmayaraq pointer nə bu to-- işarə char ulduz ola bilər 375 00:20:14,015 --> 00:20:15,880 və ya int star-- 376 00:20:15,880 --> 00:20:20,530 həmişə bir göstərici 4 bayt var. 377 00:20:20,530 --> 00:20:21,633 Ki, haqqında suallar? 378 00:20:21,633 --> 00:20:22,116 Bəli? 379 00:20:22,116 --> 00:20:24,531 >> Auditoriya: [Işitilemez]? 380 00:20:24,531 --> 00:20:29,530 >> HOPARLÖR 1: Belə ki, uzun və int var Bu cs50 cihaz eyni. 381 00:20:29,530 --> 00:20:32,302 >> Auditoriya: Bu cihaz tamamilə əvəz. 382 00:20:32,302 --> 00:20:33,510 >> HOPARLÖR 1: Bəli. 383 00:20:33,510 --> 00:20:36,610 Belə ki, sonra uzun uzun ikiqat bir int edir. 384 00:20:36,610 --> 00:20:39,250 >> Auditoriya: Bu 32 bit edir? 385 00:20:39,250 --> 00:20:40,620 >> HOPARLÖR 1: 32 bit, evet. 386 00:20:40,620 --> 00:20:43,572 >> Auditoriya: Belə [Işitilemez]? 387 00:20:43,572 --> 00:20:46,790 >> HOPARLÖR 1: Bəli, bu deyil, əgər aydın, demək 388 00:20:46,790 --> 00:20:47,870 32 bit götürməlidir. 389 00:20:47,870 --> 00:20:50,040 >> Auditoriya: Bu, bir şey demək olardı bir fərz kimi 390 00:20:50,040 --> 00:20:51,498 Aracın kimi memarlıq. 391 00:20:51,498 --> 00:20:58,800 392 00:20:58,800 --> 00:21:01,710 64 bit, yalnız şeylər üçün dəyişiklik longs və göstəricilər var. 393 00:21:01,710 --> 00:21:05,614 Onlar həm də [Işitilemez]. 394 00:21:05,614 --> 00:21:06,590 >> HOPARLÖR 1: Bəli? 395 00:21:06,590 --> 00:21:07,566 >> Auditoriya: Sual. 396 00:21:07,566 --> 00:21:10,982 Təcrübə viktorina biri belə ki, Bu imzasız int haqqında soruşur. 397 00:21:10,982 --> 00:21:15,374 Belə ki, necə müəyyən olunacaq int [Işitilemez] dan? 398 00:21:15,374 --> 00:21:18,140 >> HOPARLÖR 1: An imzasız da 4 bayt edir. 399 00:21:18,140 --> 00:21:21,172 Amma imzalanmış haqqında müxtəlif nədir int və imzasız int? 400 00:21:21,172 --> 00:21:22,422 >> Auditoriya: [işitilemez]. 401 00:21:22,422 --> 00:21:24,868 402 00:21:24,868 --> 00:21:25,630 >> HOPARLÖR 1: Right. 403 00:21:25,630 --> 00:21:27,570 Bir mənfi dəyərlər təmsil edə bilər. 404 00:21:27,570 --> 00:21:28,580 Amma necə ki, bunu edir? 405 00:21:28,580 --> 00:21:30,536 >> Auditoriya: [işitilemez]. 406 00:21:30,536 --> 00:21:36,370 >> HOPARLÖR 1: Bəli, bu, 1 saxlayır bit işarəsi təmsil etmək. 407 00:21:36,370 --> 00:21:40,910 408 00:21:40,910 --> 00:21:45,040 Imzalanmış bir az var ki, işarəsi təmsil edir. 409 00:21:45,040 --> 00:21:48,886 Və imzasız yalnız bütün müsbət deyil. 410 00:21:48,886 --> 00:21:50,365 >> Auditoriya: OK. 411 00:21:50,365 --> 00:21:54,230 Belə ki, ikiqat edir ki, bir float iki dəfə ölçüsü? 412 00:21:54,230 --> 00:21:58,202 >> HOPARLÖR 1: Double iki dəfə bir float ölçüsü, bəli. 413 00:21:58,202 --> 00:22:01,639 >> Auditoriya: bir göstərici yoxdur necə bir uzun uzun [Işitilemez]? 414 00:22:01,639 --> 00:22:06,058 415 00:22:06,058 --> 00:22:10,870 >> HOPARLÖR 1: necə Belə ki, sual uzun uzun üçün pointer 416 00:22:10,870 --> 00:22:13,800 necə ki, yalnız dörd bytes zaman onun 8 bayt uzun uzun. 417 00:22:13,800 --> 00:22:17,310 Belə bir göstərici nə xatırlayıram, mahiyyətcə, çox baza dəyər. 418 00:22:17,310 --> 00:22:19,046 >> Auditoriya: [işitilemez]. 419 00:22:19,046 --> 00:22:22,670 >> HOPARLÖR 1: Bəli, belə bir pointer yalnız bir yaddaş yeridir. 420 00:22:22,670 --> 00:22:28,040 Belə ki, necə çox yer etməz ki, pointer işarə edir. 421 00:22:28,040 --> 00:22:32,060 Bu, yalnız izlemek üçün 4 bayt lazımdır ki, yaddaş yeri. 422 00:22:32,060 --> 00:22:34,760 423 00:22:34,760 --> 00:22:36,010 Hər hansı digər suallar? 424 00:22:36,010 --> 00:22:39,800 425 00:22:39,800 --> 00:22:41,050 Cool. 426 00:22:41,050 --> 00:22:42,920 427 00:22:42,920 --> 00:22:47,460 >> Belə ki, son şey var standart çıxış edir. 428 00:22:47,460 --> 00:22:51,020 Siz tez-tez istifadə etməlidir Siz yadda bilər ki, kifayət qədər. 429 00:22:51,020 --> 00:22:54,800 Biz istifadə edərkən Amma bu printf, misal üçün. 430 00:22:54,800 --> 00:22:59,260 Və biz bu placeholders var format kodları çağırıldı. 431 00:22:59,260 --> 00:23:03,910 >> Belə ki, int üçün yüzdə c char, yüzdə i, və biz də faiz d istifadə edə bilərsiniz. 432 00:23:03,910 --> 00:23:05,130 Bu eyni şey. 433 00:23:05,130 --> 00:23:08,200 Lakin, ümumiyyətlə, CS50 biz faiz i istifadə edin. 434 00:23:08,200 --> 00:23:09,860 Float üçün yüzdə f. 435 00:23:09,860 --> 00:23:15,620 Uzun uzun üçün yüzdə ld və simli üçün yüzdə s. 436 00:23:15,620 --> 00:23:18,550 >> Eynilə, biz bir neçə istifadə etdik bu escape ardıcıllığı. 437 00:23:18,550 --> 00:23:22,431 Məsələn, backslash n yeni xətt üçün. 438 00:23:22,431 --> 00:23:26,910 Bu format etdiyiniz zaman üçün yalnız çap f üçün kodu. 439 00:23:26,910 --> 00:23:27,260 Bəli? 440 00:23:27,260 --> 00:23:28,906 >> Auditoriya: faiz d nədir? 441 00:23:28,906 --> 00:23:31,850 >> HOPARLÖR 1: Belə ki, sual faiz d üçün nə edir? 442 00:23:31,850 --> 00:23:33,270 Yüzdə d ints üçün. 443 00:23:33,270 --> 00:23:37,392 Yüzdə d və faiz i eynidir. 444 00:23:37,392 --> 00:23:41,130 >> Auditoriya: arasındakı fərq nədir backslash n və backslash r? 445 00:23:41,130 --> 00:23:45,300 >> HOPARLÖR 1: Belə ki, sual nə edir boşluq n arasında fərq 446 00:23:45,300 --> 00:23:48,615 boşluq r? 447 00:23:48,615 --> 00:23:50,906 Mən backslash r hesab That 448 00:23:50,906 --> 00:23:54,340 >> Auditoriya: Belə backslash r yalnız nəzərdə tutur Xəttin əvvəlində qaytarır 449 00:23:54,340 --> 00:23:56,670 həqiqətən yeni bir xətt davam olmadan. 450 00:23:56,670 --> 00:24:01,000 Belə bir backslash r çap və əgər Xəttin əvvəlində geri 451 00:24:01,000 --> 00:24:04,005 onda siz üzerine, daha stuff çap artıq olan məhsulları 452 00:24:04,005 --> 00:24:04,390 [Işitilemez]. 453 00:24:04,390 --> 00:24:06,725 Halbuki, n həqiqətən yeni gedir line və [Işitilemez] gedir. 454 00:24:06,725 --> 00:24:10,525 455 00:24:10,525 --> 00:24:13,915 >> HOPARLÖR 1: Bəli, hər hansı digər suallar? 456 00:24:13,915 --> 00:24:15,430 Bütün hüquqlar. 457 00:24:15,430 --> 00:24:18,617 Mən onu əl gedirəm Davam edən Dan. 458 00:24:18,617 --> 00:24:25,078 >> [Alqış] 459 00:24:25,078 --> 00:25:08,814 460 00:25:08,814 --> 00:25:09,720 >> DAN: Bütün righty. 461 00:25:09,720 --> 00:25:18,590 Mən başqa geniş söhbət olacaq ki, sinif ideyaları üçündür 462 00:25:18,590 --> 00:25:23,220 təxminən həftə iki nümayəndəsi və Həftə üç başlanğıc off başlayaraq 463 00:25:23,220 --> 00:25:28,690 yalnız bir yoludur tökmə ilə müəyyən bir növü bir dəyər kimi müalicə 464 00:25:28,690 --> 00:25:30,830 müxtəlif tipli dəyəri. 465 00:25:30,830 --> 00:25:34,110 Belə ki, biz chars ilə bunu edə bilərsiniz ints, ints üçün üzüb gedirdi və 466 00:25:34,110 --> 00:25:35,360 uzun longs ikiqat. 467 00:25:35,360 --> 00:25:38,170 468 00:25:38,170 --> 00:25:44,500 >> Bütün bunlar yolları kimi istifadə edilə bilər bəzi rəqəmli dəyəri müalicə 469 00:25:44,500 --> 00:25:48,370 bəzi digər mənfi char rəqəmli dəyəri. 470 00:25:48,370 --> 00:25:54,480 Bəzi məsələlər bu ilə var, belə ki, Siz atıldıqları zaman gəlir, əlbəttə ki, 471 00:25:54,480 --> 00:25:57,860 ints üçün float kimi şeylər. 472 00:25:57,860 --> 00:26:00,500 Belə ki, bu bir az qəribə deyil. 473 00:26:00,500 --> 00:26:03,170 Biz 1.31 bir float. 474 00:26:03,170 --> 00:26:05,220 Biz 10,000 çoxaltmaq. 475 00:26:05,220 --> 00:26:08,380 Və sonra biz bir int kimi onu çap. 476 00:26:08,380 --> 00:26:09,630 Bu çıxış nə? 477 00:26:09,630 --> 00:26:11,600 478 00:26:11,600 --> 00:26:14,020 10,000 dəfə 1.31. 479 00:26:14,020 --> 00:26:18,761 Belə ki, 13,000 tahmin ki? 480 00:26:18,761 --> 00:26:20,685 >> Auditoriya: Mən 10,000 hesab edirəm. 481 00:26:20,685 --> 00:26:24,234 >> DAN: Mən 10,000 çarparaq alıram Mən onu tökmə alıram əvvəl. 482 00:26:24,234 --> 00:26:25,202 >> Auditoriya: Oh. 483 00:26:25,202 --> 00:26:27,622 Orada bir 9 olmaz və bəzi 0 ədəd? 484 00:26:27,622 --> 00:26:29,270 >> DAN: Siz bir qəribə rəqəm ola bilər. 485 00:26:29,270 --> 00:26:32,410 486 00:26:32,410 --> 00:26:37,670 Belə ki, sağ, 1,3 dəfə 10,000. 487 00:26:37,670 --> 00:26:40,040 Belə ki, 13,000 var. 488 00:26:40,040 --> 00:26:41,313 Və bu əlavə to 489 00:26:41,313 --> 00:26:42,160 >> Auditoriya: 13,100. 490 00:26:42,160 --> 00:26:42,650 >> DAN: 13,100. 491 00:26:42,650 --> 00:26:44,910 , Rob edirik. 492 00:26:44,910 --> 00:26:46,610 Və bu əlavə weirdness-- 493 00:26:46,610 --> 00:26:48,060 Bu 9,9-- 494 00:26:48,060 --> 00:26:53,860 sadəcə bu tökmə, çünki başa aşağı olduğu yuvarlaqlaşdırma 495 00:26:53,860 --> 00:26:55,394 bu olmamalıdır. 496 00:26:55,394 --> 00:26:55,871 Bəli. 497 00:26:55,871 --> 00:26:58,256 >> Auditoriya: The tökmə olur Başqa bir şey sonra? 498 00:26:58,256 --> 00:27:03,865 >> DAN: çünki Mən ki, çap bu var əvvəl bu vurma yoxdur 499 00:27:03,865 --> 00:27:05,230 Bu tökmə yoxdur. 500 00:27:05,230 --> 00:27:06,140 >> Auditoriya: [işitilemez]. 501 00:27:06,140 --> 00:27:11,350 >> DAN: Mən, ilk tökmə olardı Bəli, 10,000 olan olacaq. 502 00:27:11,350 --> 00:27:12,610 Başqa bir şey? 503 00:27:12,610 --> 00:27:13,330 Cool. 504 00:27:13,330 --> 00:27:16,344 Belə ki, bu 13,099 edir. 505 00:27:16,344 --> 00:27:17,840 Niyə bu baş verir? 506 00:27:17,840 --> 00:27:18,900 Qeyri-dəqiqlik. 507 00:27:18,900 --> 00:27:21,020 >> Üzüb gedirdi mükəmməl deyil. 508 00:27:21,020 --> 00:27:27,550 Onlar yalnız bir nömrələri təmsil edə bilər əhəmiyyətli rəqəmlər müəyyən nömrəsi. 509 00:27:27,550 --> 00:27:35,120 Biz 8 sig əncir çap Belə ki, Bu float, biz bir növ almaq 510 00:27:35,120 --> 00:27:36,800 çirkin axtarır nömrəsi. 511 00:27:36,800 --> 00:27:45,580 Və çünki 1.31 dəqiq bilməz sadə təmsil olunacaq 512 00:27:45,580 --> 00:27:49,000 maşın iki səlahiyyətləri. 513 00:27:49,000 --> 00:27:53,530 Bu yaxın alaraq bitir belə olan qədər başa, tahmin 514 00:27:53,530 --> 00:27:55,710 bir az aşağı olan. 515 00:27:55,710 --> 00:27:57,730 Mənada etmək? 516 00:27:57,730 --> 00:27:59,110 OK. 517 00:27:59,110 --> 00:28:05,840 >> İndi işə fərqli bir yol var şərti hesabatları bütün bunu 518 00:28:05,840 --> 00:28:09,900 biz bir dəyişən haqqında qayğı. 519 00:28:09,900 --> 00:28:16,570 Belə ki, bu misalda, biz istəyirik istifadəçi bir tam almaq. 520 00:28:16,570 --> 00:28:21,070 Və sonra biz aradığınız ki, tam nə. 521 00:28:21,070 --> 00:28:23,500 Ehtimal ki, bu sıra bir və dörd arasında. 522 00:28:23,500 --> 00:28:24,800 Yəni biz üçün xahiş edirik nə var. 523 00:28:24,800 --> 00:28:28,450 >> Beləliklə, siz bir keçid yoxdur dəyişən adı. 524 00:28:28,450 --> 00:28:34,290 Sonra mümkün halları qurmaq Bu ola bilər qiymətləndirir. 525 00:28:34,290 --> 00:28:37,730 Belə bir halda, o, aşağı deyirlər. 526 00:28:37,730 --> 00:28:41,080 Və sonra çıxmaq qırmaq keçid şəraitində belə 527 00:28:41,080 --> 00:28:43,270 Siz davam deyil. 528 00:28:43,270 --> 00:28:44,830 >> Növbəti iki halda da 529 00:28:44,830 --> 00:28:46,940 belə halda iki və hal three-- 530 00:28:46,940 --> 00:28:51,920 Bu halda iki əgər yalnız aşağı düşür Bu kimi görür kodu ilk line 531 00:28:51,920 --> 00:28:55,400 Bu fasilə görür qədər üç halda. 532 00:28:55,400 --> 00:29:00,430 Belə ki, səbəb siz işi bir almaq yalnız çap aşağı, çünki mən 533 00:29:00,430 --> 00:29:01,890 burada bu fasilə var. 534 00:29:01,890 --> 00:29:05,360 I varsa, demək, bu fasiləsiz rədd Mən bu breakaway-- atdı əgər 535 00:29:05,360 --> 00:29:09,740 aşağı çap olardı və bundan sonra da orta çap və sonra qırmaq. 536 00:29:09,740 --> 00:29:12,200 >> Fasilələri mühüm hissəsidir belə şərtləri keçid və 537 00:29:12,200 --> 00:29:14,340 Onlar olmalıdır. 538 00:29:14,340 --> 00:29:20,070 Aydın ifadə deyil ki, heç bir halda default tərəfindən idarə olunur 539 00:29:20,070 --> 00:29:26,645 və keçid halda tökmə edilməlidir. 540 00:29:26,645 --> 00:29:31,363 >> Auditoriya: Belə ki, 1, 2, 3, 4 n olacaq? 541 00:29:31,363 --> 00:29:33,310 >> DAN: n ola bilər ki Dəyərlər. 542 00:29:33,310 --> 00:29:34,654 Bəli. 543 00:29:34,654 --> 00:29:35,146 Bəli? 544 00:29:35,146 --> 00:29:37,606 >> Auditoriya: Belə ki, zaman [Işitilemez] ki? 545 00:29:37,606 --> 00:29:44,002 546 00:29:44,002 --> 00:29:46,830 >> DAN: Siz sonra aşağı çap olardı Bu orta çap olardı 547 00:29:46,830 --> 00:29:47,400 sonra qırmaq. 548 00:29:47,400 --> 00:29:50,244 >> Auditoriya: Niyə çap olardı orta əgər [Işitilemez]? 549 00:29:50,244 --> 00:29:54,036 550 00:29:54,036 --> 00:30:00,550 >> DAN: bir halda altında Yəni hər şey fasilə altında düşür əvvəl. 551 00:30:00,550 --> 00:30:09,390 Belə bir halda çap altında olduğu kimi bu aşağıdakı çap edir. 552 00:30:09,390 --> 00:30:09,890 Bəli? 553 00:30:09,890 --> 00:30:11,140 >> Auditoriya: [Işitilemez]? 554 00:30:11,140 --> 00:30:15,890 555 00:30:15,890 --> 00:30:22,170 >> DAN: Bu sayı yalnız bir xüsusi edir dəyəri bu dəyişən 556 00:30:22,170 --> 00:30:23,420 sağ, edə bilər? 557 00:30:23,420 --> 00:30:26,740 558 00:30:26,740 --> 00:30:28,490 Ki, mənada edirmi? 559 00:30:28,490 --> 00:30:28,990 Bəli. 560 00:30:28,990 --> 00:30:31,490 >> Auditoriya: [Işitilemez]? 561 00:30:31,490 --> 00:30:34,130 >> DAN: Bəli, hal iki çap olardı orta və sonra qırmaq. 562 00:30:34,130 --> 00:30:35,380 >> Auditoriya: [Işitilemez]? 563 00:30:35,380 --> 00:30:37,954 564 00:30:37,954 --> 00:30:40,050 >> DAN: Mən heç mi? 565 00:30:40,050 --> 00:30:43,855 Hansı digər data növləri Siz artıq keçid edə bilərsiniz? 566 00:30:43,855 --> 00:30:46,320 >> Auditoriya: Siz bilərsiniz hər hansı bir məlumat növləri var. 567 00:30:46,320 --> 00:30:50,905 Amma bu, yalnız chars dən çox şey deməkdir və ints və kimi stuff, çünki 568 00:30:50,905 --> 00:30:55,600 Bir göstərici keçid edirsinizsə ki, həqiqətən, mənada etmir 569 00:30:55,600 --> 00:30:59,555 hətta edək əgər yük keçid çünki üzən point, bunu 570 00:30:59,555 --> 00:31:02,840 dəqiq, siz həqiqətən olmaz hər halda bunu etmək istəyirəm. 571 00:31:02,840 --> 00:31:07,320 Belə ki, olduqca çox, yalnız ints və kimi chars və stuff. 572 00:31:07,320 --> 00:31:12,360 >> DAN: Siz açıq zaman Bəli, bu Bildiyiniz dəyərlər ki, mən hesab edirəm ki, ola bilər 573 00:31:12,360 --> 00:31:14,250 ki, keçid həqiqətən faydalıdır. 574 00:31:14,250 --> 00:31:17,094 575 00:31:17,094 --> 00:31:18,990 Yaxşı? 576 00:31:18,990 --> 00:31:21,370 OK. 577 00:31:21,370 --> 00:31:26,180 >> Sayt elan üçündür, dəyişən uzanır. 578 00:31:26,180 --> 00:31:32,190 Mən kodu bu kiçik yığın Belə ki, Bu səhvlər dolu olardı. 579 00:31:32,190 --> 00:31:41,450 Və səbəbi Mən bu int elan edir i loop üçün bu çərçivəsində. 580 00:31:41,450 --> 00:31:46,390 Və sonra mən ki, istinad üçün çalışıram i loop daxilində ki, kənarda. 581 00:31:46,390 --> 00:31:50,330 >> Belə ki, əsasən, siz daxilində haqqında düşünmək olar bəyan ki, bir şey kimi 582 00:31:50,330 --> 00:31:59,750 qıvrım aşırma bir sıra daxili ilə yalnız bu qıvrım aşırma ərzində mövcuddur. 583 00:31:59,750 --> 00:32:04,990 Və siz cəhd və dəyişən istifadə əgər bu qıvrım aşırma xaricində, will 584 00:32:04,990 --> 00:32:08,356 compiler bir səhv almaq. 585 00:32:08,356 --> 00:32:08,812 Bəli? 586 00:32:08,812 --> 00:32:09,724 >> Auditoriya: Belə ki, bu bir iş deyil? 587 00:32:09,724 --> 00:32:11,790 >> DAN: Bu bəli, işləmir. 588 00:32:11,790 --> 00:32:17,190 589 00:32:17,190 --> 00:32:18,660 Strings. 590 00:32:18,660 --> 00:32:19,780 String bir char *. 591 00:32:19,780 --> 00:32:22,250 Onlar eyni istəyirik. 592 00:32:22,250 --> 00:32:25,540 Onlar yalnız simvol göstəricilər var. 593 00:32:25,540 --> 00:32:33,000 Və hər hansı bir strings bitirmək lazımdır yalnız olan backslash sıfır ilə 594 00:32:33,000 --> 00:32:34,410 bir c konqres. 595 00:32:34,410 --> 00:32:36,680 >> Bu NULL terminator adlanır. 596 00:32:36,680 --> 00:32:39,050 Və null 597 00:32:39,050 --> 00:32:41,670 kapital N, kapital U, kapital L, kapital L-- 598 00:32:41,670 --> 00:32:44,290 kimi eyni deyil NULL terminator. 599 00:32:44,290 --> 00:32:46,640 Bu bir göstəricisidir. 600 00:32:46,640 --> 00:32:48,280 Bu bir xarakter. 601 00:32:48,280 --> 00:32:49,530 Onlar çox fərqlənir. 602 00:32:49,530 --> 00:32:50,200 Xatırlayıram. 603 00:32:50,200 --> 00:32:52,320 Bu, yəqin ki, viktorina olacaq. 604 00:32:52,320 --> 00:32:54,040 Mən viktorina görmədim. 605 00:32:54,040 --> 00:32:57,880 606 00:32:57,880 --> 00:32:58,840 Bəli? 607 00:32:58,840 --> 00:33:01,232 >> Auditoriya: Belə NULL pointer, demək, deyil? 608 00:33:01,232 --> 00:33:01,995 >> DAN: Bəli. 609 00:33:01,995 --> 00:33:05,170 >> Auditoriya: [Işitilemez] edir? 610 00:33:05,170 --> 00:33:10,050 >> DAN: demək, malloc adlanır zaman almaq üçün kifayət qədər yaddaş yoxdur 611 00:33:10,050 --> 00:33:14,400 nə üçün xahiş edirik ölçüsü, malloc NULL qayıtmaq olacaq. 612 00:33:14,400 --> 00:33:19,550 Bir funksiyası zaman, əsasən var bir pointer qayıtmaq ehtimal, siz 613 00:33:19,550 --> 00:33:22,600 NULL çünki qarşı yoxlamaq lazımdır NULL olduqca good-- edir 614 00:33:22,600 --> 00:33:25,260 Bu, sort, zibil dəyəri. 615 00:33:25,260 --> 00:33:27,050 Bu qədər göstəricilərinə getmək kimi bir sıfır var. 616 00:33:27,050 --> 00:33:29,630 617 00:33:29,630 --> 00:33:32,250 >> Zaman bir funksiyası zəng, ki, bir pointer qaytarır. 618 00:33:32,250 --> 00:33:35,960 Siz olmaq check istədiyiniz olacaq ki, pointer NULL deyil əmin 619 00:33:35,960 --> 00:33:37,760 NULL çox ümumi, çünki. 620 00:33:37,760 --> 00:33:40,160 Bu zibil qaytarılması sort var. 621 00:33:40,160 --> 00:33:44,902 Bir şey doğru getmək olmasaydı belə, yalnız əvəzinə NULL qayıtmaq. 622 00:33:44,902 --> 00:33:45,898 >> Auditoriya: [Işitilemez]? 623 00:33:45,898 --> 00:33:48,922 >> DAN: Bəli, bu var. 624 00:33:48,922 --> 00:33:51,750 >> Auditoriya: [Işitilemez]? 625 00:33:51,750 --> 00:33:52,800 >> DAN: Bu kimi Hərfbəh. 626 00:33:52,800 --> 00:33:54,150 Bu NULL terminator var. 627 00:33:54,150 --> 00:33:56,560 Bu kiçik N-U-L-L, əgər Siz yazım edirik. 628 00:33:56,560 --> 00:33:59,860 >> Auditoriya: Mən yalnız getdi geri və test. 629 00:33:59,860 --> 00:34:03,010 Və siz bir üzən point qoymaq üçün cəhd edin bir keçid daxil dəyəri, bu da fəğan lazımdır 630 00:34:03,010 --> 00:34:05,916 deyərək, bəyanat ifadə tələb tam növü. 631 00:34:05,916 --> 00:34:07,166 >> DAN: Burada getmək. 632 00:34:07,166 --> 00:34:09,639 633 00:34:09,639 --> 00:34:12,246 Lakin Bəli, sual yenə nə idi? 634 00:34:12,246 --> 00:34:13,496 >> Auditoriya: [Işitilemez]? 635 00:34:13,496 --> 00:34:16,150 636 00:34:16,150 --> 00:34:23,679 >> DAN: Belə kapital N, kapital U, kapital L, kapital L faktiki c şeydir. 637 00:34:23,679 --> 00:34:29,719 Bu NULL pointer və olacaq yalnız kimi müalicə. 638 00:34:29,719 --> 00:34:33,530 Siz heç cəhd və sehr edəcək NULL xarakteri və hər hansı bir bax 639 00:34:33,530 --> 00:34:35,630 Bu başqa yol. 640 00:34:35,630 --> 00:34:36,610 Bəli? 641 00:34:36,610 --> 00:34:42,490 >> Auditoriya: Belə max char qaytarılması və ya qeydlərdə bir şey olardı 642 00:34:42,490 --> 00:34:43,960 Eyni funksiyası təcəssüm [Işitilemez] kimi? 643 00:34:43,960 --> 00:34:50,655 644 00:34:50,655 --> 00:34:54,949 >> Auditoriya: Belə ki, istinad edilir getchar dən char max qaytarılması və ya 645 00:34:54,949 --> 00:34:55,444 nə bu? 646 00:34:55,444 --> 00:34:55,940 >> Auditoriya: Bəli. 647 00:34:55,940 --> 00:34:58,620 >> Auditoriya: Bəli, ümumi belə bütün bu şeylər üçün müddət 648 00:34:58,620 --> 00:34:59,920 sentinel dəyərlərdir. 649 00:34:59,920 --> 00:35:03,640 Belə ki, GetInt dən int max qaytarılması kimi və getchar dən char max, bu 650 00:35:03,640 --> 00:35:06,010 əgər bütün hüququ kimi ehtimal bunlar bizə qayıdır 651 00:35:06,010 --> 00:35:07,210 bir şey yanlış getdi. 652 00:35:07,210 --> 00:35:09,950 >> Göstəricilər, biz yalnız var nə Bu sentinel dəyəri ki, hər kəs 653 00:35:09,950 --> 00:35:10,750 razılaşdırır. 654 00:35:10,750 --> 00:35:13,210 Və bu geri şey şeyi yanlış getmək zaman. 655 00:35:13,210 --> 00:35:15,910 Belə ki, char max biz istifadə etdiyiniz nə bir şey təmsil 656 00:35:15,910 --> 00:35:18,100 NULL və ya getchar kimi. 657 00:35:18,100 --> 00:35:23,420 >> Auditoriya: Siz GetChar test etdiyiniz əgər, yalnız NULL qoymaq olar? 658 00:35:23,420 --> 00:35:23,910 Ki, bir fərq edə bilər? 659 00:35:23,910 --> 00:35:25,400 >> DAN: Siz yalnız NULL kontrol bilmədi. 660 00:35:25,400 --> 00:35:30,130 Siz, çünki char max yoxlamaq üçün istədiyiniz funksiyası qaytarılması dəyəri 661 00:35:30,130 --> 00:35:35,416 bir xarakter bir pointer. 662 00:35:35,416 --> 00:35:35,888 Bəli? 663 00:35:35,888 --> 00:35:38,248 >> Auditoriya: Bu sual soruşur simli uzunluğu. 664 00:35:38,248 --> 00:35:40,136 NULL xarakter daxil edir? 665 00:35:40,136 --> 00:35:41,000 >> DAN: No. 666 00:35:41,000 --> 00:35:45,930 Və necə ki, simli uzunluğu həqiqətən vasitəsilə gedir, çünki dayandırmaq bilir 667 00:35:45,930 --> 00:35:49,070 simvol array qədər bir NULL xarakter görür. 668 00:35:49,070 --> 00:35:51,030 Və sonra bütün kimi sağ, mən bitirdim. 669 00:35:51,030 --> 00:35:52,130 >> Auditoriya: [Işitilemez] beş? 670 00:35:52,130 --> 00:35:53,990 >> DAN: Hello beş olardı. 671 00:35:53,990 --> 00:35:55,240 Yep. 672 00:35:55,240 --> 00:35:59,580 673 00:35:59,580 --> 00:36:02,880 Belə ki, diziler davamlı yaddaş blokları. 674 00:36:02,880 --> 00:36:08,480 Onlar deyərək anında erişim var buruq da, serialın adını və sonra 675 00:36:08,480 --> 00:36:16,720 Siz getmək istədiyiniz hər hansı index aşırma, , onlar vasitəsilə sıfırdan dizine edirik 676 00:36:16,720 --> 00:36:20,100 1 minus serialın uzunluğu. 677 00:36:20,100 --> 00:36:23,070 >> Onlar növü elan edirik Siz saxlanılması edirik şey 678 00:36:23,070 --> 00:36:29,750 array serialın adı, və sonra nə ölçüsü array. 679 00:36:29,750 --> 00:36:36,660 Belə ki, bu uzunluğu char array edir bu dəyərləri var ki, altı. 680 00:36:36,660 --> 00:36:42,050 681 00:36:42,050 --> 00:36:42,700 Bəli? 682 00:36:42,700 --> 00:36:43,950 >> Auditoriya: [Işitilemez]? 683 00:36:43,950 --> 00:36:47,980 684 00:36:47,980 --> 00:36:48,460 >> DAN: Bəli. 685 00:36:48,460 --> 00:36:51,340 >> Auditoriya: [Işitilemez]? 686 00:36:51,340 --> 00:36:56,700 >> DAN: Siz gedir nə varsa massivinə artıq. 687 00:36:56,700 --> 00:37:02,260 Belə ki, əvəzinə bu müəyyən edə bilər kimi, və demək, char, nə adı sizin 688 00:37:02,260 --> 00:37:12,200 array boş mötərizədə buruq bərabərdir ki, H vergül E vergül L vergül L vergül burğu 689 00:37:12,200 --> 00:37:16,290 O vergül NULL xarakter və buruq brace. 690 00:37:16,290 --> 00:37:18,180 Ki, bir bəyannamə kimi işləmək olardı. 691 00:37:18,180 --> 00:37:20,886 >> Auditoriya: [Işitilemez]? 692 00:37:20,886 --> 00:37:23,110 >> DAN: Sonra lazımdır ölçüsü artıq. 693 00:37:23,110 --> 00:37:23,896 >> Auditoriya: [Işitilemez]? 694 00:37:23,896 --> 00:37:25,146 >> DAN: Bəli. 695 00:37:25,146 --> 00:37:30,114 696 00:37:30,114 --> 00:37:32,420 Bütün righty. 697 00:37:32,420 --> 00:37:36,430 Command line dəlilləri bir yoldur istifadəçi kimi daxil almaq 698 00:37:36,430 --> 00:37:39,380 əsas arqumentlər. 699 00:37:39,380 --> 00:37:40,600 Main iki dəlilləri edir. 700 00:37:40,600 --> 00:37:47,680 Olunur ki, dəlilləri sayı skript satırı və a boyunca keçdi 701 00:37:47,680 --> 00:37:55,340 string vektor və ya bir string array dəlilləri bütün. 702 00:37:55,340 --> 00:38:07,840 >> Mən demək, kimi bir funksiyası zəng 1 yer, 2 yer, üç bir dot, 703 00:38:07,840 --> 00:38:10,110 argc 4 olacaq. 704 00:38:10,110 --> 00:38:17,370 Və argv 0 bir dot olardı. 705 00:38:17,370 --> 00:38:19,130 Argv1 1 olardı. 706 00:38:19,130 --> 00:38:23,030 argv2 2. argv3 olardı olardı 3, xüsusi halda. 707 00:38:23,030 --> 00:38:23,310 Bəli? 708 00:38:23,310 --> 00:38:25,400 >> Auditoriya: [Işitilemez]? 709 00:38:25,400 --> 00:38:34,010 >> DAN: serialın son element Bu array uzunluğu argc, çünki plus 710 00:38:34,010 --> 00:38:41,050 argb biri, son element NULL pointer edir. 711 00:38:41,050 --> 00:38:42,580 Bu argc plus 1. 712 00:38:42,580 --> 00:38:46,210 713 00:38:46,210 --> 00:38:52,150 Mən yalnız onu bildirib ki, halda belə 0 argv olunacaq bir nöqtə deyil. 714 00:38:52,150 --> 00:38:56,330 argv 1 1. argv2 3 3 2. argv edir. 715 00:38:56,330 --> 00:39:03,490 bir böyük olan argv 4, argc daha NULL ola bilər. 716 00:39:03,490 --> 00:39:04,870 >> Və NULL pointer var. 717 00:39:04,870 --> 00:39:06,590 Bəli. 718 00:39:06,590 --> 00:39:11,250 String, çünki ki, var bir char ulduz bir göstəricisidir. 719 00:39:11,250 --> 00:39:14,102 Belə ki, eyni tipli olmalıdır. 720 00:39:14,102 --> 00:39:14,595 Bəli? 721 00:39:14,595 --> 00:39:16,074 >> Auditoriya: iki sual. 722 00:39:16,074 --> 00:39:21,004 Belə bir fərq arasında nə bir növü başqa bu və GetString 723 00:39:21,004 --> 00:39:22,483 istifadəçi mühərriki? 724 00:39:22,483 --> 00:39:25,934 Və iki, ərzində saxlanılır son yaddaş? 725 00:39:25,934 --> 00:39:28,399 Belə ki, kimi, GetString ki [Işitilemez] olacaq? 726 00:39:28,399 --> 00:39:31,357 727 00:39:31,357 --> 00:39:33,650 >> DAN: Harada saxlanılır? 728 00:39:33,650 --> 00:39:34,905 Saxlandığı bilmirəm. 729 00:39:34,905 --> 00:39:40,000 >> Auditoriya: Belə ki, həqiqətən, necə hansı bilmək Siz bu dəlilləri var deyirik fəaliyyət 730 00:39:40,000 --> 00:39:42,170 yığını saxlanılır? 731 00:39:42,170 --> 00:39:46,610 Belə ki, argc və argv dəlilləri əsas var və onlar yığını, və ya, həqiqətən, 732 00:39:46,610 --> 00:39:49,131 yalnız siz düşüncelerinizi bax yığını start. 733 00:39:49,131 --> 00:39:53,490 Digər hissəsi nə idi sual? 734 00:39:53,490 --> 00:39:56,821 >> Auditoriya: Belə ki, nə var [Işitilemez]? 735 00:39:56,821 --> 00:40:00,990 >> DAN: Bəli, yalnız fərqli bir yol var istifadəçi daxil almaq. 736 00:40:00,990 --> 00:40:06,030 Bu bir az daha səmərəli və scripts üçün handlear var çünki 737 00:40:06,030 --> 00:40:10,070 yalnız əsas dəlilləri keçə bilər funksiyası daha gözləmək olan daha 738 00:40:10,070 --> 00:40:13,400 istifadəçilər üçün hər hansı bir istifadəçi yoxdur. 739 00:40:13,400 --> 00:40:16,280 >> Auditoriya: Və Bəli, strings almaq [Işitilemez] olardı. 740 00:40:16,280 --> 00:40:17,922 Bu sizə lazım olan məhsulları saxlamaq olardı. 741 00:40:17,922 --> 00:40:18,834 >> DAN: Bəli? 742 00:40:18,834 --> 00:40:21,114 >> Auditoriya: [Işitilemez]? 743 00:40:21,114 --> 00:40:27,545 >> DAN: Bəli, argv 0 həmişə daxildir dot funksiyası zəng doğramaq. 744 00:40:27,545 --> 00:40:28,042 Bəli? 745 00:40:28,042 --> 00:40:29,292 >> Auditoriya: [Işitilemez]? 746 00:40:29,292 --> 00:40:33,509 747 00:40:33,509 --> 00:40:37,310 >> DAN: Bəli, dəlilləri hər var NULL xarakter başa çünki onlar 748 00:40:37,310 --> 00:40:38,310 strings var. 749 00:40:38,310 --> 00:40:40,892 >> Auditoriya: [Işitilemez]? 750 00:40:40,892 --> 00:40:44,116 >> DAN: Bəli, argv argc bir NULL pointer edir. 751 00:40:44,116 --> 00:40:45,112 >> Auditoriya: [Işitilemez]? 752 00:40:45,112 --> 00:40:47,104 >> DAN: Bəli Oh. 753 00:40:47,104 --> 00:40:48,100 Bəli, sorry. 754 00:40:48,100 --> 00:40:49,594 >> Auditoriya: Belə [Işitilemez]? 755 00:40:49,594 --> 00:41:08,518 756 00:41:08,518 --> 00:41:16,340 >> DAN: Siz var idi, əgər sual Belə ki, command line dot, 2, 1 bir nöqtə doğramaq 757 00:41:16,340 --> 00:41:20,410 ki command line sayı arqumentlər iki olmaq və ya üç olardı? 758 00:41:20,410 --> 00:41:24,420 759 00:41:24,420 --> 00:41:28,240 >> Auditoriya: Mən bu deyil düşünürəm həqiqətən Fərq. 760 00:41:28,240 --> 00:41:31,370 Mən oh, siz keçə bilmədi, deyirlər hər hansı bir command line dəlilləri, 761 00:41:31,370 --> 00:41:32,730 Aydındır ki, siz funksiyası adlanır. 762 00:41:32,730 --> 00:41:37,950 Mən vocally istisna edirlər command line funksiyası 763 00:41:37,950 --> 00:41:40,350 Bu belə olsa dəlilləri argv daxildir. 764 00:41:40,350 --> 00:41:42,600 >> DAN: Amma bu test-- idi əgər 765 00:41:42,600 --> 00:41:46,550 yeah-- və də bir şey demək əgər argc 3 bərabərdir kimi, 766 00:41:46,550 --> 00:41:48,512 Siz təhlükəsiz daimi istəyirik. 767 00:41:48,512 --> 00:41:49,416 Bəli? 768 00:41:49,416 --> 00:41:50,666 >> Auditoriya: [Işitilemez]? 769 00:41:50,666 --> 00:42:00,990 770 00:42:00,990 --> 00:42:09,510 >> DAN: Mən əgər əvəzinə bu zəng edirəm argc və simli argv mötərizədə 771 00:42:09,510 --> 00:42:14,350 lakin eyni növ saxlanılır və yalnız adlı kimi müxtəlif onlara bir şey 772 00:42:14,350 --> 00:42:16,640 və b, hələ işləmək olardı? 773 00:42:16,640 --> 00:42:18,790 Və hələ işləmək olardı, Siz izlersin olardı 774 00:42:18,790 --> 00:42:21,520 əvəzinə argc-- istifadə bir və b istifadə edin. 775 00:42:21,520 --> 00:42:24,436 776 00:42:24,436 --> 00:42:25,408 Bəli? 777 00:42:25,408 --> 00:42:26,658 >> Auditoriya: [Işitilemez]? 778 00:42:26,658 --> 00:42:34,642 779 00:42:34,642 --> 00:42:38,850 >> DAN: Belə ki, sual GetString edir yığın yaddaş saxlamaq niyyətindədir 780 00:42:38,850 --> 00:42:42,280 GetString char, çünki *. 781 00:42:42,280 --> 00:42:47,530 Bu, çünki yığın yaddaş mağazalar faktiki ərzində indi malloc çağırır 782 00:42:47,530 --> 00:42:49,258 GetString həyata keçirilməsi. 783 00:42:49,258 --> 00:42:53,210 784 00:42:53,210 --> 00:42:55,090 OK, hərəkət. 785 00:42:55,090 --> 00:42:55,950 >> Təhlükəsizlik. 786 00:42:55,950 --> 00:43:01,090 Belə ki, həqiqətən təhlükəsiz, heç bir etibar bir və hər hansı bir heç bir imkan 787 00:43:01,090 --> 00:43:04,540 Sizin informasiya, hansı nə hər kəs öz maşın qurur 788 00:43:04,540 --> 00:43:09,580 öz əməliyyat sistemi, bütün onların sıfırdan proqramları, və açıq-aydın 789 00:43:09,580 --> 00:43:13,410 hər hansı digər maşın əlaqə yoxdur internet vasitəsilə. 790 00:43:13,410 --> 00:43:17,350 Belə ki, kompüter etibarsız edir. 791 00:43:17,350 --> 00:43:19,200 Onlar, həqiqətən, var. 792 00:43:19,200 --> 00:43:20,940 Biz digər insanların etibar etmək. 793 00:43:20,940 --> 00:43:26,500 >> Və təhlükəsizlik ideyası edirik ki, məbləği məhdudlaşdırmaq üçün çalışırıq 794 00:43:26,500 --> 00:43:27,540 sizə lazım olan inam. 795 00:43:27,540 --> 00:43:32,080 Və vasitələrdən biri bunu Kriptoqrafiya vasitəsilə. 796 00:43:32,080 --> 00:43:34,950 Kriptoqrafiya, mahiyyətcə edir biz sirləri var. 797 00:43:34,950 --> 00:43:38,880 >> Bəzən biz sirlərini keçmək lazımdır yanaşı vasitəsilə, demək, internet və ya 798 00:43:38,880 --> 00:43:39,980 başqa şeylər. 799 00:43:39,980 --> 00:43:43,180 Və biz istəmirik Bu sirlərini bilmək. 800 00:43:43,180 --> 00:43:50,100 Beləliklə, biz bir şəkildə bizim sirlərini şifrelemek ki, biz heç bir anlamaq bilərsiniz ümid edirik. 801 00:43:50,100 --> 00:43:51,600 >> Beləliklə, biz used-- 802 00:43:51,600 --> 00:43:54,340 bu class-- kurs vasitəsilə 803 00:43:54,340 --> 00:44:00,750 Caesar parol kimi şeylər və Həm də çox çox olan [Işitilemez] 804 00:44:00,750 --> 00:44:03,200 şeyi Şifreleme etibarsız yolları. 805 00:44:03,200 --> 00:44:07,930 Onlar anlamaq asan edirik nə onlar və sirri nə var. 806 00:44:07,930 --> 00:44:12,130 Real dünya daha çox istifadə edir mürəkkəb şifreleme sxemləri. 807 00:44:12,130 --> 00:44:13,880 Və biz daxil deyil daha çox. 808 00:44:13,880 --> 00:44:18,280 809 00:44:18,280 --> 00:44:19,430 >> Ayıklama. 810 00:44:19,430 --> 00:44:20,785 Gdb yaxşı deyil. 811 00:44:20,785 --> 00:44:24,014 812 00:44:24,014 --> 00:44:25,810 Mən bu qeyd gedirəm. 813 00:44:25,810 --> 00:44:30,920 Gdb bütün vaxt, zaman hər istifadə zaman bir problem var. 814 00:44:30,920 --> 00:44:36,030 Gdb faydalı əmrləri Siz bir xətt ya keçmək ki, qırmaq 815 00:44:36,030 --> 00:44:41,330 sayı, bir funksiyası adı, mahiyyətcə harada kodu dayandırmaq istəyirəm, 816 00:44:41,330 --> 00:44:45,600 və nəzarət edə bilər. 817 00:44:45,600 --> 00:44:54,140 >> Print dəyişən edir və çap ki, dəyişən ki, nə 818 00:44:54,140 --> 00:44:55,990 icrası point. 819 00:44:55,990 --> 00:45:00,130 Yanında icra hərəkət bir addım birlikdə. 820 00:45:00,130 --> 00:45:05,050 Və funksiyası daxilində addımlar addım icrası. 821 00:45:05,050 --> 00:45:10,480 >> Digər şeylər necə olan run Siz, həqiqətən, sizin kodu axır. 822 00:45:10,480 --> 00:45:16,630 Davam lazım olan bütün addımları atır növbəti fasilə nöqtəsinə almaq üçün. 823 00:45:16,630 --> 00:45:18,300 Və bir çox başqaları var. 824 00:45:18,300 --> 00:45:19,040 Onları gözləyirik. 825 00:45:19,040 --> 00:45:19,901 Onlar böyük istəyirik. 826 00:45:19,901 --> 00:45:20,863 Bəli? 827 00:45:20,863 --> 00:45:22,113 >> Auditoriya: [Işitilemez]? 828 00:45:22,113 --> 00:45:26,635 829 00:45:26,635 --> 00:45:28,200 >> DAN: Bəli, ayıklama edir. 830 00:45:28,200 --> 00:45:34,230 Belə ki, bir ayıklama bir proqramdır ki, Siz proqram debug imkan verir. 831 00:45:34,230 --> 00:45:39,931 Bu hatalar üçün hesab edir ki, bir proqram deyil Siz, baxmayaraq ki, böyük olardı. 832 00:45:39,931 --> 00:45:43,020 833 00:45:43,020 --> 00:45:46,040 >> Və axtarış mənim üçün son deyil. 834 00:45:46,040 --> 00:45:51,470 Söhbət axtarış növləri belə Bu sinif haqqında xətti axtarış var, 835 00:45:51,470 --> 00:45:55,960 siz hər vasitəsilə baxmaq yalnız Axtarış sahəsi element, bir 836 00:45:55,960 --> 00:46:00,410 bir zamanda element, nə tapmaq qədər Siz və ya çatana qədər aradığınız 837 00:46:00,410 --> 00:46:03,350 Axtarış sahəsi sonuna olan Siz tapa bilmədi ki, qeyd 838 00:46:03,350 --> 00:46:06,360 aradığınız ki, element. 839 00:46:06,360 --> 00:46:13,450 Və bu, ən yaxşı daimi vaxt alır olan 1 0 və pis xətti at 840 00:46:13,450 --> 00:46:16,070 n 0 olan zaman. 841 00:46:16,070 --> 00:46:19,250 >> Ehtiyacı olan ikili axtarış, kasıb elementləri. 842 00:46:19,250 --> 00:46:24,230 Siz elementləri ortasında getmək, görmək əgər aradığınız element 843 00:46:24,230 --> 00:46:30,120 element daha böyük və ya daha kiçik Əgər ortada istəyirik ki,. 844 00:46:30,120 --> 00:46:36,510 Bu böyük, siz alt ki, Axtarış sahəsi sizin edir 845 00:46:36,510 --> 00:46:41,550 Cari yeri, orta, və bu proses yenidən başladın. 846 00:46:41,550 --> 00:46:46,150 Bu kiçik, siz demək baxmaq Bəli, nə qədər var the-- ki? 847 00:46:46,150 --> 00:46:47,400 >> Auditoriya: [Işitilemez]? 848 00:46:47,400 --> 00:46:51,000 849 00:46:51,000 --> 00:46:54,260 >> DAN: Bəli. 850 00:46:54,260 --> 00:46:58,360 Tədris edilmişdir ki, hansı hər hansı bir sort sinif test üçün ədalətli oyun. 851 00:46:58,360 --> 00:47:01,504 852 00:47:01,504 --> 00:47:04,920 >> [Gülüş] 853 00:47:04,920 --> 00:47:10,260 >> DAN: Siz idi yoxdur ki, bir problem set üçün bunu, ədalətli 854 00:47:10,260 --> 00:47:12,420 test üçün oyun. 855 00:47:12,420 --> 00:47:15,186 >> Auditoriya: Biz artıq getmək bilər necə to-- 856 00:47:15,186 --> 00:47:17,052 >> DAN: Bu artıq getdi olunacaq. 857 00:47:17,052 --> 00:47:20,496 >> HOPARLÖR 2: faktiki kodu [Işitilemez] study.cs50.net edir. 858 00:47:20,496 --> 00:47:25,910 859 00:47:25,910 --> 00:47:32,680 Siz təcrübə problem baxmaq belə, əgər bu birləşmə sort səhifə 860 00:47:32,680 --> 00:47:35,880 study.cs50.net, kodu var sort daxil həyata keçirilməsi üçün. 861 00:47:35,880 --> 00:47:38,550 Belə ki, həyata yoxdur özünüz axşam. 862 00:47:38,550 --> 00:47:42,090 Amma əmin olun deyil, anlamaq yalnız ezberlemeye. 863 00:47:42,090 --> 00:47:45,035 >> Auditoriya: [Işitilemez]? 864 00:47:45,035 --> 00:47:49,720 >> HOPARLÖR 2: Bu birləşmə sort səhifə study.cs50.net, təcrübə var 865 00:47:49,720 --> 00:47:53,570 Siz vasitəsilə basın ki, əgər problem problem, çox sonunda orada bir 866 00:47:53,570 --> 00:47:56,280 birləşməsi olan həlli, sort həyata keçirilməsi. 867 00:47:56,280 --> 00:47:58,510 Amma əmin olun siz bunu dərk deyil, yalnız ezberlemeye daha 868 00:47:58,510 --> 00:47:59,760 və ya aşağı çıxarmaq. 869 00:47:59,760 --> 00:48:02,870 870 00:48:02,870 --> 00:48:06,340 >> Auditoriya: Və mükəmməl etibarlı İmtahana problem olacaq 871 00:48:06,340 --> 00:48:07,990 Burada kimi bir şey bir siyahısı. 872 00:48:07,990 --> 00:48:12,100 Bu siyahıda sonra kimi baxmaq nə Marka növ bir addım və ya 873 00:48:12,100 --> 00:48:13,330 durub sort və ya hər hansı. 874 00:48:13,330 --> 00:48:14,940 Siyahısının tam iteration. 875 00:48:14,940 --> 00:48:18,530 Siz ehtiyacı başa yoxdur belə, hətta Bunun üçün kodu, siz anlamaq lazımdır 876 00:48:18,530 --> 00:48:20,440 gedir necə bilmək kifayətdir Bu array değiştirmeyle olunacaq. 877 00:48:20,440 --> 00:48:24,144 878 00:48:24,144 --> 00:48:25,394 >> DAN: Bu mənim üçün var. 879 00:48:25,394 --> 00:48:30,604 880 00:48:30,604 --> 00:48:32,588 >> [Alqış] 881 00:48:32,588 --> 00:49:06,316 882 00:49:06,316 --> 00:49:07,410 >> LUCAS: Hey hər kəs. 883 00:49:07,410 --> 00:49:08,390 My name Lucas edir. 884 00:49:08,390 --> 00:49:16,840 Mən bütün recursion haqqında danışmaq üçün gedirəm biz öyrəndik ki, növ və 885 00:49:16,840 --> 00:49:18,050 bütün göstəricilərinə az. 886 00:49:18,050 --> 00:49:18,740 OK? 887 00:49:18,740 --> 00:49:20,340 Bütün Belə ki, ilk recursion. 888 00:49:20,340 --> 00:49:22,951 Ki, demək nə deməkdir bir funksiyası recursive edir? 889 00:49:22,951 --> 00:49:24,675 >> Auditoriya: özünü çağırır. 890 00:49:24,675 --> 00:49:26,500 >> LUCAS: OK, Bəli, özü çağırır. 891 00:49:26,500 --> 00:49:27,700 Belə ki, məsələn bu şəkil kimi. 892 00:49:27,700 --> 00:49:30,280 Bu daxili şəkil kimi bir şəkil və s. 893 00:49:30,280 --> 00:49:35,740 Belə ki, məsələn, siz Dan kimi yaxşıdır bilər ki, ikili axtarış bəhs edirdi. 894 00:49:35,740 --> 00:49:41,840 Bir yol olan binar axtarış recursive siz etdiyiniz faktdır 895 00:49:41,840 --> 00:49:43,130 bir sıra tapmaq üçün çalışırıq. 896 00:49:43,130 --> 00:49:44,250 Belə ki, orta gedin. 897 00:49:44,250 --> 00:49:47,130 Orada nömrələri əgər sonra yoxlamaq sol və sağ. 898 00:49:47,130 --> 00:49:49,650 >> Və sonra sayı tapmaq əgər sol olacaq, eyni var 899 00:49:49,650 --> 00:49:53,340 yenidən axtarış görən kimi bir şeydir, lakin yalnız siyahıda sol. 900 00:49:53,340 --> 00:49:57,350 Bu səslər necə Belə ki, kimi recursive var. 901 00:49:57,350 --> 00:50:01,870 Sizlərin recursive var nə ki, var birləşmə sort üçün həll. 902 00:50:01,870 --> 00:50:04,270 >> OK, belə ki, burada bir misal var. 903 00:50:04,270 --> 00:50:07,280 Belə ki, mən seçmək istəyirəm ki, deyək 1-dən n bütün nömrələri. 904 00:50:07,280 --> 00:50:13,790 Mən dərk edə bilər ki, n məbləği n plus n minus 1 1 təşkil edir. 905 00:50:13,790 --> 00:50:17,810 Amma sonra, mən n minus 1 baxsaq plus n minus 2 plus 1, ki, eyni 906 00:50:17,810 --> 00:50:20,680 cəmlənməsi nömrələri kimi şey n minus 1 up. 907 00:50:20,680 --> 00:50:25,890 Mən bərabər məcmusudur demək olar n minus 1 n plus məbləği bərabərdir. 908 00:50:25,890 --> 00:50:28,010 Ki, mənada edirmi? 909 00:50:28,010 --> 00:50:32,630 >> Mən də başqa bir şey var ki ki, bu, baza halda deyilən 910 00:50:32,630 --> 00:50:37,440 up nömrələri məbləği sıfıra sıfır olacaq. 911 00:50:37,440 --> 00:50:42,770 Belə ki, tezliklə mən çox almaq kimi sıfır, mən sayılması dayandırmaq. 912 00:50:42,770 --> 00:50:45,330 Ki, mənada edirmi? 913 00:50:45,330 --> 00:50:48,120 >> Belə ki, burada necə bir misal var Mən həyata keçirə bilər. 914 00:50:48,120 --> 00:50:49,860 Mən bəzi bu funksiyası var. 915 00:50:49,860 --> 00:50:51,700 Ki, bir tam n edir. 916 00:50:51,700 --> 00:50:56,300 N əgər Belə ki, burada ilk yoxlamaq az və ya sıfıra bərabərdir. 917 00:50:56,300 --> 00:51:00,310 Belə ki, sıfıra az və ya bərabər, mən bizim əsas işi olan, sıfır geri. 918 00:51:00,310 --> 00:51:05,690 Əks halda, mən yalnız ola bilər n plus nömrələri məbləği olan 919 00:51:05,690 --> 00:51:07,190 n minus bir bir. 920 00:51:07,190 --> 00:51:09,360 Mənada etmək? 921 00:51:09,360 --> 00:51:10,100 OK. 922 00:51:10,100 --> 00:51:11,610 >> Belə ki, burada bu kimi görünür nə. 923 00:51:11,610 --> 00:51:15,260 Siz 2 bərabərdir məbləğ 2 plus 1 cəmidir. 924 00:51:15,260 --> 00:51:18,930 Və 1 bəzi plus 1 0 olan 0 məbləği. 925 00:51:18,930 --> 00:51:20,216 Mənada etmək? 926 00:51:20,216 --> 00:51:25,342 Biz yığını baxsaq Belə ki, proqram, bu kimi görünür nə. 927 00:51:25,342 --> 00:51:26,820 >> Birincisi, biz əsas funksiyası var. 928 00:51:26,820 --> 00:51:30,320 Və sonra əsas funksiyası məbləği 2 çağırıb. 929 00:51:30,320 --> 00:51:36,690 Və sonra məbləği 2 oh, demək gedir, məbləği 2 2 plus bir məbləğ təşkil edir. 930 00:51:36,690 --> 00:51:39,460 Mən yığını 1 məbləği əlavə edin. 931 00:51:39,460 --> 00:51:43,860 Və 1 cəmidir məbləği zəng etmək üçün gedir 0, həmçinin əlavə olacaq 932 00:51:43,860 --> 00:51:44,630 yığını. 933 00:51:44,630 --> 00:51:49,240 Və var ki, bunlar sonra hər bir üst qayıtmaq 934 00:51:49,240 --> 00:51:52,020 digər olanları davam əvvəl. 935 00:51:52,020 --> 00:51:56,240 >> Belə ki, məsələn, burada 0 məbləğ, ilk, 0 qayıtmaq üçün gedir. 936 00:51:56,240 --> 00:51:58,320 Və sonra 1 məbləğ seçin. 937 00:51:58,320 --> 00:52:00,850 Sonra 1 məbləği gedir 2 yekunlaşdırmaq 1 qayıtmaq. 938 00:52:00,850 --> 00:52:03,900 Və nəhayət, 2 məbləğ gedir əsas 3 qayıtmaq üçün. 939 00:52:03,900 --> 00:52:05,320 Ki, mənada edirmi? 940 00:52:05,320 --> 00:52:09,496 >> Bu necə anlamaq üçün həqiqətən vacibdir yığını iş və cəhd 941 00:52:09,496 --> 00:52:11,980 Bu mənada edir görmek. 942 00:52:11,980 --> 00:52:13,260 OK, belə ki, çeşidlənməsi. 943 00:52:13,260 --> 00:52:16,170 Belə ki, niyə əhəmiyyətli çeşidlənməsi ilk növbədə? 944 00:52:16,170 --> 00:52:18,260 Niyə biz qayğı olmalıdır? 945 00:52:18,260 --> 00:52:20,310 Hər kəs? 946 00:52:20,310 --> 00:52:20,695 Mənə misal vermək? 947 00:52:20,695 --> 00:52:21,040 Bəli? 948 00:52:21,040 --> 00:52:22,968 >> Auditoriya: [işitilemez]. 949 00:52:22,968 --> 00:52:24,700 >> LUCAS: OK, Bəli. 950 00:52:24,700 --> 00:52:26,090 Belə ki, daha səmərəli axtarış edə bilərsiniz. 951 00:52:26,090 --> 00:52:28,580 Bu yaxşı bir yoldur. 952 00:52:28,580 --> 00:52:32,462 Belə ki, məsələn, biz bir çox var şeylər, əslində, bizim yaşayır ki, 953 00:52:32,462 --> 00:52:32,920 sıralanır. 954 00:52:32,920 --> 00:52:34,830 Məsələn, lüğət. 955 00:52:34,830 --> 00:52:39,210 >> Bu, bütün üçün çox vacibdir üçün bir növ sözləri ki, biz 956 00:52:39,210 --> 00:52:41,970 asanlıqla əldə edə bilərsiniz. 957 00:52:41,970 --> 00:52:43,280 Belə ki, nə söylədiyinin var. 958 00:52:43,280 --> 00:52:45,530 Siz daha səmərəli axtarış edə bilərsiniz. 959 00:52:45,530 --> 00:52:48,740 Bu bir olardı necə ağır düşünün Bu sözləri olan lüğət 960 00:52:48,740 --> 00:52:49,500 təsadüfi qaydada. 961 00:52:49,500 --> 00:52:53,120 Siz olduqca çox, baxmaq lazımdır hər bir söz tapmaq qədər 962 00:52:53,120 --> 00:52:54,720 aradığınız ki, söz. 963 00:52:54,720 --> 00:52:58,710 >> Siz də Facebook istifadə edirsinizsə, zaman Siz dostları baxırıq, sen 964 00:52:58,710 --> 00:53:03,540 Facebook qoymaq görmək olacaq sizin yaxın dostu olanlar üst var 965 00:53:03,540 --> 00:53:05,470 Siz qədər danışmaq deyil ki. 966 00:53:05,470 --> 00:53:08,080 Siz altındakı bütün yol getmək Sizin dost siyahısı, siz görmək olacaq 967 00:53:08,080 --> 00:53:11,250 Siz yəqin ki, hətta çıxmayan insanlar Siz dost olduğunuzu unutmayın. 968 00:53:11,250 --> 00:53:14,590 Və Facebook növ, çünki necə əsasında sizin dost 969 00:53:14,590 --> 00:53:16,472 onlar üçün yaxın. 970 00:53:16,472 --> 00:53:17,930 >> Belə ki, data təşkil edir. 971 00:53:17,930 --> 00:53:18,450 Həmçinin Pokemon. 972 00:53:18,450 --> 00:53:21,400 Belə ki, bütün Pokemons olduğunu görəcəksiniz nömrələri var. 973 00:53:21,400 --> 00:53:27,210 Və asan kimi məlumat daxil yol. 974 00:53:27,210 --> 00:53:29,050 >> Auditoriya: Pokemon giriş. 975 00:53:29,050 --> 00:53:29,890 >> LUCAS: Bəli. 976 00:53:29,890 --> 00:53:32,395 >> Auditoriya: [işitilemez]. 977 00:53:32,395 --> 00:53:33,460 >> LUCAS: Yep. 978 00:53:33,460 --> 00:53:35,140 OK, belə ki, seçim sort. 979 00:53:35,140 --> 00:53:41,610 Seçim sort seçin gedir siyahısı kiçik çeşidlənməmiş dəyəri hər 980 00:53:41,610 --> 00:53:43,300 hər iteration vaxt. 981 00:53:43,300 --> 00:53:46,800 Bu cür siz ki, növ kimi Başını siz çalışdığınız zaman 982 00:53:46,800 --> 00:53:48,430 tərəfdən siyahısını düzmək. 983 00:53:48,430 --> 00:53:51,990 >> Əsasən, siz bütün baxmaq kiçik sayı. 984 00:53:51,990 --> 00:53:54,280 Siz sıralanır siyahısı qoyun. 985 00:53:54,280 --> 00:53:56,230 Və sonra üçün baxmaq növbəti kiçik nömrəsi. 986 00:53:56,230 --> 00:54:00,080 Və sonra bunu saxlamaq və s. 987 00:54:00,080 --> 00:54:04,600 >> Belə ki, seçim sort siz əsasən hər zaman kiçik seçin 988 00:54:04,600 --> 00:54:05,750 çeşidlənməmiş dəyəri. 989 00:54:05,750 --> 00:54:10,840 Sıralanır sonunda qoyun siyahısına daxildir. 990 00:54:10,840 --> 00:54:12,370 Və bunu saxlamaq. 991 00:54:12,370 --> 00:54:15,890 Belə ki, tez görək nə bu kimi görünür. 992 00:54:15,890 --> 00:54:19,340 Belə ki, burada sıralanır var və çeşidlənməmiş siyahısı. 993 00:54:19,340 --> 00:54:23,350 >> Siyahı sıralanır Belə ki, ilkin boş. 994 00:54:23,350 --> 00:54:26,760 Və sonra mən seçmək üçün gedirəm 2 Burada kiçik sayı. 995 00:54:26,760 --> 00:54:30,650 Mən sayı 2 almaq və mən qoymaq siyahısına qarşısında. 996 00:54:30,650 --> 00:54:34,910 Və sonra mən növbəti kiçik baxmaq 3 olan element. 997 00:54:34,910 --> 00:54:37,050 Mən sonunda qoyun sıralanır siyahısı. 998 00:54:37,050 --> 00:54:38,140 Və sonra mən bunu saxlamaq. 999 00:54:38,140 --> 00:54:40,040 I 4 tapmaq və sonunda qoyun. 1000 00:54:40,040 --> 00:54:41,360 5 tapmaq və sonunda qoyun. 1001 00:54:41,360 --> 00:54:44,830 >> Və bu dəfə necə bütün baxmaq Mən sonu qoyun söyləyirəm 1002 00:54:44,830 --> 00:54:46,850 əsasən, iki dəyərləri dəyişdirmə. 1003 00:54:46,850 --> 00:54:48,100 OK? 1004 00:54:48,100 --> 00:54:50,140 1005 00:54:50,140 --> 00:54:52,825 Və sonra son bir, yalnız daha bir element var. 1006 00:54:52,825 --> 00:54:55,870 Belə ki, artıq sıralanır. 1007 00:54:55,870 --> 00:54:57,800 >> OK, belə ki, durub sırala. 1008 00:54:57,800 --> 00:55:03,180 Insertion sort siz də olacaq bir sıralanır edərək ki, bir şey və 1009 00:55:03,180 --> 00:55:04,690 çeşidlənməmiş siyahısı. 1010 00:55:04,690 --> 00:55:14,540 Yalnız bir şey hər zaman ki, Siz sıralanır bir element əlavə edirik 1011 00:55:14,540 --> 00:55:18,170 siyahısı, yalnız bir element seçin ki, çeşidlənməmiş siyahısı qarşısında. 1012 00:55:18,170 --> 00:55:20,880 Və sonra nə tapmaq olacaq mövqeyi sıralanır olmalıdır 1013 00:55:20,880 --> 00:55:22,300 siyahısına daxildir. 1014 00:55:22,300 --> 00:55:25,840 >> Bu belə nə görmək edək bu, daha anlamlı. 1015 00:55:25,840 --> 00:55:29,360 Belə ki, ilkin, məsələn, mən çalışıram in sayı üç daxil 1016 00:55:29,360 --> 00:55:30,680 siyahısı sıralanır hissəsi. 1017 00:55:30,680 --> 00:55:31,800 Belə ki, siyahı bir şey yoxdur. 1018 00:55:31,800 --> 00:55:34,160 Mən yalnız sayı 3 qoya bilər. 1019 00:55:34,160 --> 00:55:37,480 >> İndi mən nömrəni 5 əlavə etmək istədiyiniz siyahısı sıralanır hissəsi. 1020 00:55:37,480 --> 00:55:38,900 Mən sayı 5 oldu. 1021 00:55:38,900 --> 00:55:40,450 Mən bu 3-dən böyük fark. 1022 00:55:40,450 --> 00:55:41,980 Mən 3 sonra var ki, bilirik. 1023 00:55:41,980 --> 00:55:44,100 Mən 3 və 5 qoydu. 1024 00:55:44,100 --> 00:55:45,940 >> Sonra 2 saylı əlavə etmək istəyirəm. 1025 00:55:45,940 --> 00:55:51,630 Mən sayı 2 həqiqətən olduğunu qeyd sonra 3 və 5 də davam. 1026 00:55:51,630 --> 00:55:54,580 Mən, həqiqətən, bütün qoymaq lazımdır siyahının əvvəlində yol. 1027 00:55:54,580 --> 00:55:59,030 Mən, mehriban, bütün keçmək lazımdır sıralanır siyahısına mən bilərsiniz elementləri 1028 00:55:59,030 --> 00:56:01,970 sayı 2 otaq etmək. 1029 00:56:01,970 --> 00:56:03,160 >> Sonra sayı 6 oldu. 1030 00:56:03,160 --> 00:56:05,450 Mən bu 5 sonra olmalıdır ki, görəcəksiniz. 1031 00:56:05,450 --> 00:56:06,240 Mən orada qoyun. 1032 00:56:06,240 --> 00:56:07,965 Və nəhayət, mən sayı 4 oldu. 1033 00:56:07,965 --> 00:56:11,030 Mən onu qeyd 3 və 5 arasında olacaq. 1034 00:56:11,030 --> 00:56:14,870 Və sonra mən orada qoymaq və shift bütün digər elementləri. 1035 00:56:14,870 --> 00:56:16,120 Mənada etmək? 1036 00:56:16,120 --> 00:56:17,880 1037 00:56:17,880 --> 00:56:19,150 >> Bubble Sort. 1038 00:56:19,150 --> 00:56:25,730 Belə ki, bubble sırala etdiyiniz nə əsasən gedir, biz bubble zəng do-- üçün 1039 00:56:25,730 --> 00:56:30,113 Siz list-- keçmək sort çünki Mən yalnız göstərmək əgər həqiqətən yaxşıdır 1040 00:56:30,113 --> 00:56:32,300 Siz bu kimi 1041 00:56:32,300 --> 00:56:35,030 və müqayisə etmək olacaq qonşu ədəd. 1042 00:56:35,030 --> 00:56:38,410 Və dəyişdirmək olacaq onların sıralara değilseniz 1043 00:56:38,410 --> 00:56:39,190 sağ üçün. 1044 00:56:39,190 --> 00:56:42,570 >> Belə ki, əsasən, nə gedir burada baş verir, məsələn, 1045 00:56:42,570 --> 00:56:44,160 8 və 6 var. 1046 00:56:44,160 --> 00:56:47,270 Siz sıralanır sifariş bilirəm həqiqətən 6 və 5, ola? 1047 00:56:47,270 --> 00:56:49,540 Beləliklə, siz sifariş dəyişdirmək olacaq. 1048 00:56:49,540 --> 00:56:51,370 Sonra mən burada 8 və 4 görürük. 1049 00:56:51,370 --> 00:56:52,250 Mən eyni şey. 1050 00:56:52,250 --> 00:56:53,400 Mən yenə dəyişdirmək. 1051 00:56:53,400 --> 00:56:55,070 Və nəhayət, 2 və 8. 1052 00:56:55,070 --> 00:56:56,670 Mən də onları dəyişdirmək. 1053 00:56:56,670 --> 00:57:01,690 >> Bu Bubble Sort çünki sonra deyirlər bu tekrarlamalar hər, həqiqətən, 1054 00:57:01,690 --> 00:57:05,910 Bu siyahıda ən böyük sayı bütün alır siyahısı sonuna yol. 1055 00:57:05,910 --> 00:57:06,940 Ki, mənada edirmi? 1056 00:57:06,940 --> 00:57:11,880 Onu dəyişdirmə saxlayır, çünki və sağ hərəkət. 1057 00:57:11,880 --> 00:57:14,440 >> OK, belə ki, bu ikinci iteration edir. 1058 00:57:14,440 --> 00:57:17,200 Bu eyni şey olardı. 1059 00:57:17,200 --> 00:57:20,190 Mən bir svop edəcəyik və sonra son bir. 1060 00:57:20,190 --> 00:57:23,290 Svopları var Mən ki, və siyahısına çeşidlənir. 1061 00:57:23,290 --> 00:57:27,460 Bubble Sort Belə ki, biz əsasən saxlamaq siyahısında keçir və dəyişdirmə 1062 00:57:27,460 --> 00:57:32,310 şeyi mən etmədim ki, görürsünüz qədər ki, iteration bunu hər hansı svopları olan 1063 00:57:32,310 --> 00:57:34,270 siyahısı artıq çeşidlənir deməkdir. 1064 00:57:34,270 --> 00:57:35,520 Mənada etmək? 1065 00:57:35,520 --> 00:57:38,400 1066 00:57:38,400 --> 00:57:40,870 >> Nin bir az danışmaq edək Vaxt çalışır. 1067 00:57:40,870 --> 00:57:45,165 Belə ki, uşaqlar Böyük xatırlayıram O, Omega, və Theta? 1068 00:57:45,165 --> 00:57:49,290 1069 00:57:49,290 --> 00:57:50,990 Bəli? 1070 00:57:50,990 --> 00:57:53,070 OK, Big O, ilk növbədə, nədir? 1071 00:57:53,070 --> 00:57:54,315 >> Auditoriya: [işitilemez]. 1072 00:57:54,315 --> 00:57:59,070 >> LUCAS: Bəli, bu ən pis halda deyirlər yalnız o deməkdir ki, uzunluğu, 1073 00:57:59,070 --> 00:58:03,470 nə qədər proqram gözləyirik run etmək üçün. 1074 00:58:03,470 --> 00:58:04,910 Kimi, baxımından kontormerinin Təfərrüatlar 1075 00:58:04,910 --> 00:58:06,660 Bu iki halda n. 1076 00:58:06,660 --> 00:58:09,150 Bu elementlərin sayı ən pis halda siyahısı. 1077 00:58:09,150 --> 00:58:12,520 Kimi, ən pis mümkün halda. 1078 00:58:12,520 --> 00:58:17,100 >> Bubble Sort Belə ki, məsələn, biz n kvadrat Big O var. 1079 00:58:17,100 --> 00:58:20,580 Niyə biz var? 1080 00:58:20,580 --> 00:58:24,716 Niyə Bubble Big O n kvadrat Sort edir? 1081 00:58:24,716 --> 00:58:27,614 >> Auditoriya: [işitilemez]. 1082 00:58:27,614 --> 00:58:35,670 >> LUCAS: Bəli, belə ki, ən pis halda olacaq Mən n tekrarlamalar etmək lazımdır. 1083 00:58:35,670 --> 00:58:39,260 Belə ki, tekrarlamalar hər gedir Sonda ən böyük element gətirmək 1084 00:58:39,260 --> 00:58:40,290 siyahısı. 1085 00:58:40,290 --> 00:58:44,230 Belə ki, ən pis halda mən ki ki, bir şey n dəfə etmək. 1086 00:58:44,230 --> 00:58:48,550 Və bu dəfə hər biri üçün, mən var Mən müqayisə var, çünki n svopları edə 1087 00:58:48,550 --> 00:58:49,870 hər iki elementləri. 1088 00:58:49,870 --> 00:58:53,730 Bu n kvadrat nə ki, var Bu n dəfə n çünki. 1089 00:58:53,730 --> 00:59:00,120 >> Sonra seçim sort də n kvadrat edir Çünki, hər iteration, mən var 1090 00:59:00,120 --> 00:59:02,650 hər bir element baxmaq siyahıda. 1091 00:59:02,650 --> 00:59:04,980 Və sonra, kiçik tapmaq Mən o deməkdir ki, 1092 00:59:04,980 --> 00:59:06,130 n elementləri vasitəsilə baxmaq. 1093 00:59:06,130 --> 00:59:11,750 Və mən ki, n dəfə var Mən bütün n elementləri seçin. 1094 00:59:11,750 --> 00:59:18,273 >> Bir durub sort də n kvadrat edir ən pis ssenari olacaq, çünki 1095 00:59:18,273 --> 00:59:20,950 , bir olmaq, daxil var n nömrələri, sağ? 1096 00:59:20,950 --> 00:59:22,765 Mən artıq mən gedirəm bilirik ki, n tekrarlamalar var. 1097 00:59:22,765 --> 00:59:25,466 1098 00:59:25,466 --> 00:59:29,840 Amma mən həmin nömrələri hər biri üçün, əgər ədəd bütün baxmaq 1099 00:59:29,840 --> 00:59:34,380 sıralanır siyahısı və bu bütün yol qoymaq qarşısında ki, n kvadrat olacaq 1100 00:59:34,380 --> 00:59:36,230 Bu n dəfə n yenə olacaq, çünki. 1101 00:59:36,230 --> 00:59:38,280 Mənada etmək? 1102 00:59:38,280 --> 00:59:41,512 Nə omega haqqında? 1103 00:59:41,512 --> 00:59:42,886 >> Auditoriya: [işitilemez]. 1104 00:59:42,886 --> 00:59:44,620 >> LUCAS: Bu yaxşı ssenari var. 1105 00:59:44,620 --> 00:59:48,810 Belə ki, bir çox dəfə üçün, kimi Ən yaxşı ssenari deyil, çeşidlənməsi 1106 00:59:48,810 --> 00:59:50,660 siyahısı artıq çeşidlənir zaman. 1107 00:59:50,660 --> 00:59:52,670 Beləliklə, siz həqiqətən yoxdur heç bir şey. 1108 00:59:52,670 --> 00:59:56,290 Bubble Sort ən yaxşı var n ssenari. 1109 00:59:56,290 --> 00:59:58,820 Sizlərin niyə bilirsinizmi? 1110 00:59:58,820 --> 01:00:00,620 >> Auditoriya: [işitilemez]. 1111 01:00:00,620 --> 01:00:05,640 >> LUCAS: Bəli, siz takip əgər data rasionu hər hansı svopları olub və ya 1112 01:00:05,640 --> 01:00:10,533 Siz bir şey var əgər, müəyyən kimi bir iteration əgər var idi, əgər doğru 1113 01:00:10,533 --> 01:00:15,140 siyahısı artıq, əsasən, çeşidlənir nə baş verəcək Mən gedirəm 1114 01:00:15,140 --> 01:00:17,890 hər iki dəyişdirmək üçün cəhd edin qonşu elementləri. 1115 01:00:17,890 --> 01:00:19,920 Mən gedirəm svopları var. 1116 01:00:19,920 --> 01:00:21,230 Mən yalnız hemen geri. 1117 01:00:21,230 --> 01:00:24,240 >> Belə ki, mən yalnız idi o deməkdir ki, siyahısı bir dəfə keçir. 1118 01:00:24,240 --> 01:00:28,990 Mən baxmaq, çünki Belə ki, n var n elementləri. 1119 01:00:28,990 --> 01:00:30,930 Niyə seçim sort n kvadrat? 1120 01:00:30,930 --> 01:00:35,150 1121 01:00:35,150 --> 01:00:45,520 >> Bəli siyahısı sorted olsa belə, üçün Seleksiya sort hər iteration, mən 1122 01:00:45,520 --> 01:00:47,590 minimum element seçin. 1123 01:00:47,590 --> 01:00:49,980 Belə ki, mən baxmaq üçün o deməkdir ki, çeşidlənməmiş bütün elementləri 1124 01:00:49,980 --> 01:00:53,350 siyahısını və minimum tapmaq hər iteration üçün. 1125 01:00:53,350 --> 01:00:54,600 Ki, mənada edirmi? 1126 01:00:54,600 --> 01:00:56,880 1127 01:00:56,880 --> 01:01:04,690 >> Və durub qılınc, çünki n edir Mən daxil çalışıram ki, hal 1128 01:01:04,690 --> 01:01:09,320 nömrələri və nömrələr bütün, mən onları əlavə etmək üçün cəhd edin, mən onlar ki 1129 01:01:09,320 --> 01:01:10,510 doğru mövqe var. 1130 01:01:10,510 --> 01:01:15,120 Mən bütün digər yoxlamaq getmək yoxdur çeşidlənməmiş siyahısı nömrələri. 1131 01:01:15,120 --> 01:01:17,170 Bu n olacaq nə ki, var. 1132 01:01:17,170 --> 01:01:19,480 Mənada etmək? 1133 01:01:19,480 --> 01:01:21,035 Və teta nədir? 1134 01:01:21,035 --> 01:01:23,410 >> Auditoriya: [işitilemez]. 1135 01:01:23,410 --> 01:01:24,380 >> LUCAS: Nə, sorry? 1136 01:01:24,380 --> 01:01:24,960 Yenə deyirəm. 1137 01:01:24,960 --> 01:01:25,666 >> Auditoriya: [işitilemez]. 1138 01:01:25,666 --> 01:01:26,490 >> LUCAS: Exactly. 1139 01:01:26,490 --> 01:01:31,280 Belə ki, yalnız seçim edə bilərsiniz Birləşdirmə saxlanılır sort thetas var. 1140 01:01:31,280 --> 01:01:39,920 Yalnız teta var, çünki ki Big O və Omega eyni olduqda. 1141 01:01:39,920 --> 01:01:41,520 OK. 1142 01:01:41,520 --> 01:01:44,210 Və nəhayət, log n sort daxil. 1143 01:01:44,210 --> 01:01:48,910 >> Dan deyirdi kimi, sonra, sort Birleştirme cür eyni şəkildə kimi ki, 1144 01:01:48,910 --> 01:01:50,320 ikili axtarış. 1145 01:01:50,320 --> 01:01:53,530 Beləliklə, siz siyahısını almaq. 1146 01:01:53,530 --> 01:01:55,170 Və yarısında kəsilmiş olacaq. 1147 01:01:55,170 --> 01:02:00,580 Və sonra onları kəsmək kiçik yarıya indirir. 1148 01:02:00,580 --> 01:02:01,730 Və sonra onlara daxil. 1149 01:02:01,730 --> 01:02:02,960 Siz uşaqlar sağ, unutmayın ki? 1150 01:02:02,960 --> 01:02:04,960 OK, o deyirdi kimi. 1151 01:02:04,960 --> 01:02:08,330 >> OK, göstəricilər. 1152 01:02:08,330 --> 01:02:11,078 Belə bir göstərici nədir? 1153 01:02:11,078 --> 01:02:12,050 >> Auditoriya: [işitilemez]. 1154 01:02:12,050 --> 01:02:12,820 >> LUCAS: bir ünvan. 1155 01:02:12,820 --> 01:02:13,720 OK. 1156 01:02:13,720 --> 01:02:18,530 Mən David bir dəstə göstərir ki, bilirik binky video və hər şeyi işarə 1157 01:02:18,530 --> 01:02:19,080 bir-birinə. 1158 01:02:19,080 --> 01:02:22,960 Amma göstəricilərinə düşünmək istəyirəm sadəcə bir ünvan kimi. 1159 01:02:22,960 --> 01:02:26,110 Belə ki, edir ki, bir dəyişən var ünvan saxlamaq. 1160 01:02:26,110 --> 01:02:31,940 >> Belə ki, yalnız bu xüsusi dəyişən ki, dörd bayt uzun. 1161 01:02:31,940 --> 01:02:36,550 Bir şey ki, pointer Unutmayın, bizim 32-bit üçün uzun həmişə dörd bytes 1162 01:02:36,550 --> 01:02:39,370 maşın halda belə Aracın. 1163 01:02:39,370 --> 01:02:41,920 1164 01:02:41,920 --> 01:02:47,050 Və yalnız yer var içərisində bir dəyişən. 1165 01:02:47,050 --> 01:02:50,240 >> OK, belə ki, əsasən, bu yaddaş var. 1166 01:02:50,240 --> 01:02:57,420 Belə ki, yaddaş hər bir blok həqiqətən var Bu ünvanı olan etiket, 1167 01:02:57,420 --> 01:02:58,890 slotty yaddaş. 1168 01:02:58,890 --> 01:03:02,370 Belə ki, mən ola bilər o deməkdir ki, bir pointer işarə 1169 01:03:02,370 --> 01:03:03,380 Bu ünvanlarını hər hansı bir. 1170 01:03:03,380 --> 01:03:09,930 Beləliklə, biz göstəricilərinə istifadə edəcəyik səbəbi Mən yeri yadda varsa 1171 01:03:09,930 --> 01:03:12,300 ki, müəyyən bir dəyişən bir yaddaş. 1172 01:03:12,300 --> 01:03:16,560 >> Və uşaqlar unutmayın o biri ki, Mən bir funksiyası varsa hallarda idi 1173 01:03:16,560 --> 01:03:20,820 Mən, həqiqətən, əgər istəyirəm reals svop, Mən, həqiqətən, 1174 01:03:20,820 --> 01:03:22,110 bir göstərici göndərmək lazımdır. 1175 01:03:22,110 --> 01:03:23,460 Dəyişən. 1176 01:03:23,460 --> 01:03:25,200 Ki, uşaqlar yadınızdadırmı? 1177 01:03:25,200 --> 01:03:26,450 Fərq between-- 1178 01:03:26,450 --> 01:03:33,350 1179 01:03:33,350 --> 01:03:34,120 adı nədir? 1180 01:03:34,120 --> 01:03:36,010 Dəyəri və zəng ilə zəng istinadən, sağ? 1181 01:03:36,010 --> 01:03:36,840 >> Bəli, OK. 1182 01:03:36,840 --> 01:03:38,330 Belə ki, dəyər zəng. 1183 01:03:38,330 --> 01:03:43,570 Siz yalnız bir dəyişən göndərmək zaman Yalnız bir dəyəri göndərilməsi etdiyiniz fəaliyyət göstərir. 1184 01:03:43,570 --> 01:03:45,610 Beləliklə, siz həqiqətən gönderiyorsanız dəyişən surəti. 1185 01:03:45,610 --> 01:03:49,720 Və proqram az qayğı bilməz əslində eyni dəyişən əgər 1186 01:03:49,720 --> 01:03:51,650 surəti edir. 1187 01:03:51,650 --> 01:03:56,330 >> Və istinad deməkdir zəng Mən, həqiqətən, surəti göndərilməsi alıram 1188 01:03:56,330 --> 01:03:57,550 ki, dəyişən gösterci. 1189 01:03:57,550 --> 01:04:00,970 Belə ki, mən göndərilməsi alıram o deməkdir ki, ki, dəyişən yer. 1190 01:04:00,970 --> 01:04:04,440 Mən yeri var hiss dəyişən, mən zəng zaman funksiyası 1191 01:04:04,440 --> 01:04:09,700 göstəricilər ilə, mən, həqiqətən edə edirəm əsas idi ki, data dəyişir. 1192 01:04:09,700 --> 01:04:12,050 Mənada etmək? 1193 01:04:12,050 --> 01:04:17,560 >> Baxmayaraq ki, bu göstərici surəti edir pointer hələ də real ünvanı var 1194 01:04:17,560 --> 01:04:20,090 Mən dəyişmək istədiyiniz ki, dəyişən. 1195 01:04:20,090 --> 01:04:21,920 Mənada etmək? 1196 01:04:21,920 --> 01:04:24,290 >> Belə ki, göstəricilər yaradılması. 1197 01:04:24,290 --> 01:04:28,410 Həmişə göstərici var, saxla Bu işarə növü 1198 01:04:28,410 --> 01:04:29,890 bir ulduz və sonra. 1199 01:04:29,890 --> 01:04:31,030 Və sonra adını qoydu. 1200 01:04:31,030 --> 01:04:35,765 Belə ki, zaman unutmayın ki, nə ulduz, bir göstərici kimi 1201 01:04:35,765 --> 01:04:38,990 nə dəyişən ki, siz ki, yazın. 1202 01:04:38,990 --> 01:04:42,850 >> Belə ki, burada ulduz, misal üçün, bu bir pointer və tam. 1203 01:04:42,850 --> 01:04:47,680 Və sonra char ulduz göstərici char ulduz və s. 1204 01:04:47,680 --> 01:04:47,960 Bəli? 1205 01:04:47,960 --> 01:04:52,710 >> Auditoriya: Biz varsa n pointer x ulduz. 1206 01:04:52,710 --> 01:04:55,255 Mən x bir pointer yaradır bilirik. 1207 01:04:55,255 --> 01:04:59,432 Bu da tam x bəyan varmı? 1208 01:04:59,432 --> 01:05:05,170 >> LUCAS: OK, belə ki, n star x deyəndə, Bir bir pointer yaratmaq deyilik 1209 01:05:05,170 --> 01:05:06,000 dəyişən x. 1210 01:05:06,000 --> 01:05:08,170 Siz x adlı göstərici yaradılması edirik. 1211 01:05:08,170 --> 01:05:09,396 >> Auditoriya: [işitilemez]. 1212 01:05:09,396 --> 01:05:14,250 >> LUCAS: I n star x deyəndə, mən hey, yaddaş, mən gedirəm deyərək 1213 01:05:14,250 --> 01:05:16,390 Bu üç qutuları almaq. 1214 01:05:16,390 --> 01:05:20,750 Mən ki, demək gedirəm olan x olacaq 1215 01:05:20,750 --> 01:05:22,000 gedən bir göstərici olmalıdır. 1216 01:05:22,000 --> 01:05:26,860 1217 01:05:26,860 --> 01:05:30,640 Və göstəricilər haqqında maraqlı bir şey biz ki, demək ki 1218 01:05:30,640 --> 01:05:32,620 32-bit maşın üçün 4 bayt. 1219 01:05:32,620 --> 01:05:36,320 Və səbəbi, çünki 4 bayt 32-bit var. 1220 01:05:36,320 --> 01:05:40,490 >> 64 bit həqiqətən var ki, və maşın göstəricilərinə ünvanları 1221 01:05:40,490 --> 01:05:43,480 64 bit uzun ki. 1222 01:05:43,480 --> 01:05:49,820 Belə ki, yalnız o deməkdir ki, ölçüsü maşın URL fərqlidir. 1223 01:05:49,820 --> 01:05:52,270 >> Belə ki, sened və Dereferencing. 1224 01:05:52,270 --> 01:05:54,310 Iki operatorları var ki, Sizlərin yadda olmalıdır. 1225 01:05:54,310 --> 01:05:55,450 İlk işareti edir. 1226 01:05:55,450 --> 01:05:56,810 İkinci ulduz edir. 1227 01:05:56,810 --> 01:06:05,060 Ki, ulduz və bu səhv almaq etməyin çünki, unutmayın ki star 1228 01:06:05,060 --> 01:06:06,950 Bu halda, siz n ulduz var. 1229 01:06:06,950 --> 01:06:08,700 >> Bu birlikdə bütün şey kimi. 1230 01:06:08,700 --> 01:06:10,720 N kosmik ulduz var. 1231 01:06:10,720 --> 01:06:12,070 Belə ki, bu növü var deməkdir. 1232 01:06:12,070 --> 01:06:14,870 Siz ki, saxla dəyişən ulduz, sen 1233 01:06:14,870 --> 01:06:16,230 növü haqqında danışır. 1234 01:06:16,230 --> 01:06:20,540 >> Əgər yalnız ulduz və zaman dəyişən adı, o deməkdir ki, 1235 01:06:20,540 --> 01:06:24,100 Siz göstərici dereferencing etdiyiniz Siz aradığınız o deməkdir ki, 1236 01:06:24,100 --> 01:06:28,290 pointer, ünvanı tapmaq bu , işarə ünvana gedir, 1237 01:06:28,290 --> 01:06:30,850 və zaman axtarır siz var. 1238 01:06:30,850 --> 01:06:34,310 Mən sizə zaman ki, mənim tələbə bildirin star, siz hesab edirəm ki, lazımdır 1239 01:06:34,310 --> 01:06:36,850 tərkibi kısaltmasıdır. 1240 01:06:36,850 --> 01:06:39,770 >> Bir göstərici var belə, əgər siz star pointer, bunun var 1241 01:06:39,770 --> 01:06:41,720 göstərici content. 1242 01:06:41,720 --> 01:06:44,580 Belə ki, işarə nə getmək və daimi məzmununa baxmaq. 1243 01:06:44,580 --> 01:06:47,730 Və işareti eyni ünvanı kimi bir şey. 1244 01:06:47,730 --> 01:06:52,560 >> Mən kimi birimiz bir dəyişən var Belə ki, edək int a bərabərdir etdim ki, 3-- 1245 01:06:52,560 --> 01:06:56,900 Mən ünvanı tapmaq istəyirsinizsə dəyişən yaddaş, yalnız edə bilərsiniz 1246 01:06:56,900 --> 01:06:58,240 bir işareti. 1247 01:06:58,240 --> 01:07:00,280 Belə ki, bir ünvanı var. 1248 01:07:00,280 --> 01:07:01,530 Mənada etmək? 1249 01:07:01,530 --> 01:07:03,790 1250 01:07:03,790 --> 01:07:05,040 >> Belə ki, burada bir misal var. 1251 01:07:05,040 --> 01:07:08,370 1252 01:07:08,370 --> 01:07:11,530 Bu int b və int c yoxdur. 1253 01:07:11,530 --> 01:07:16,520 3 vasitə bərabərdir int Belə ki, Mən yaddaş getmək üçün gedirəm. 1254 01:07:16,520 --> 01:07:19,870 Və mən bir slot tapmaq üçün gedirəm və burada sayı 3 qoydu. 1255 01:07:19,870 --> 01:07:22,200 >> Və sonra int b 4 bərabərdir. 1256 01:07:22,200 --> 01:07:23,100 Mən eyni şey üçün gedirəm. 1257 01:07:23,100 --> 01:07:25,840 Yaddaş getmək və bir sıra qoymaq Qutuları biri 4. 1258 01:07:25,840 --> 01:07:27,100 Və int 5 bərabərdir. 1259 01:07:27,100 --> 01:07:29,740 Başqa qutusu tapmaq və bir sıra 5 qoydu. 1260 01:07:29,740 --> 01:07:36,160 >> Belə ki, həyata bu xətt nə edir? n star pa işareti a bərabərdir. 1261 01:07:36,160 --> 01:07:37,800 Belə ki, ilk növbədə, n star pa. 1262 01:07:37,800 --> 01:07:39,050 Bu nə edir? 1263 01:07:39,050 --> 01:07:40,930 1264 01:07:40,930 --> 01:07:42,298 >> Auditoriya: [işitilemez]. 1265 01:07:42,298 --> 01:07:47,890 >> LUCAS: Bəli, belə n star pa, ilk, pa adlı göstərici bəyan edir. 1266 01:07:47,890 --> 01:07:53,720 Və sonra dəyərini təyin edir ki, pointer bir ünvanı olmalıdır. 1267 01:07:53,720 --> 01:07:55,790 Belə ki, bir işareti. 1268 01:07:55,790 --> 01:07:58,510 Sonra mən star PB əgər, bir ulduz pb nədir? 1269 01:07:58,510 --> 01:08:02,418 1270 01:08:02,418 --> 01:08:03,150 >> Oh, sorry. 1271 01:08:03,150 --> 01:08:06,330 Bu da yoxdur. n star pb. 1272 01:08:06,330 --> 01:08:07,905 Mən ulduz pc deməkdir. 1273 01:08:07,905 --> 01:08:11,200 Üzüldüm. 1274 01:08:11,200 --> 01:08:11,940 Bu eyni şey. 1275 01:08:11,940 --> 01:08:16,408 Amma indi bir göstərici yaradılması ar yaxşı deyiləm sonra c bir pointer b və. 1276 01:08:16,408 --> 01:08:16,886 Bəli? 1277 01:08:16,886 --> 01:08:18,136 >> Auditoriya: [Işitilemez]? 1278 01:08:18,136 --> 01:08:25,490 1279 01:08:25,490 --> 01:08:26,670 >> LUCAS: Bəli. 1280 01:08:26,670 --> 01:08:32,630 Belə ki, yaddaş getmək və siz getmək əgər pa üçün designator ki box, 1281 01:08:32,630 --> 01:08:37,149 Siz həqiqətən olacaq bir ünvanını görürük. 1282 01:08:37,149 --> 01:08:38,399 OK? 1283 01:08:38,399 --> 01:08:42,970 1284 01:08:42,970 --> 01:08:43,300 Bəli? 1285 01:08:43,300 --> 01:08:45,605 >> Auditoriya: [Işitilemez]? 1286 01:08:45,605 --> 01:08:49,260 >> LUCAS: Bəli, pointer bir ünvan. 1287 01:08:49,260 --> 01:08:50,120 Heç vaxt unutmayacağıq. 1288 01:08:50,120 --> 01:08:52,800 Bu ən mühüm kimi göstəricilər haqqında hissəsidir. 1289 01:08:52,800 --> 01:08:56,180 Saxlanılması və ünvanı var bəzi dəyişən. 1290 01:08:56,180 --> 01:08:56,890 Başqa bir şey? 1291 01:08:56,890 --> 01:08:58,370 Hər hansı digər suallar? 1292 01:08:58,370 --> 01:08:59,189 OK. 1293 01:08:59,189 --> 01:09:00,399 >> Belə ki Pointers və Diziler. 1294 01:09:00,399 --> 01:09:08,189 Xatırla ki, array 3 int nə zaman, əsasən, nə edirəm mən cür deyiləm 1295 01:09:08,189 --> 01:09:12,779 , bir pointer elan. 1296 01:09:12,779 --> 01:09:18,960 Belə ki, array cür bir göstərici kimi yaddaş xüsusi yer olan I 1297 01:09:18,960 --> 01:09:21,999 integers üçün üç yuva ayrılıb. 1298 01:09:21,999 --> 01:09:23,430 Ki, mənada edirmi? 1299 01:09:23,430 --> 01:09:30,250 >> Mən int array 3 nə zaman, belə ki, mən nə edirəm bunu, əsasən, üç yaradılması 1300 01:09:30,250 --> 01:09:31,479 yaddaş slots. 1301 01:09:31,479 --> 01:09:33,899 Mən yalnız yaddaş üç yuva tapa bilərsiniz. 1302 01:09:33,899 --> 01:09:38,810 Mən sonra, bir ulduz array, bunu əgər əsasən serialın məzmunu deməkdir, 1303 01:09:38,810 --> 01:09:46,180 Mən getmək, mən göstərici silmək deməkdir Bu işarə ki, yerə, 1304 01:09:46,180 --> 01:09:47,939 və mən bir nömrəli qoydu. 1305 01:09:47,939 --> 01:09:53,729 >> Və sonra, mən star array plus 1 əgər, ki array bunu eyni şey var 1306 01:09:53,729 --> 01:09:59,690 yalnız mən getmək deməkdir, bir Mötərizədə Bu işarə ki, yer. 1307 01:09:59,690 --> 01:10:03,000 Və sonra plus 1 markalar Mənə bir mövqe keçmək. 1308 01:10:03,000 --> 01:10:06,510 Mən, həqiqətən, bu vəzifəyə getmək və sayı iki qoydu. 1309 01:10:06,510 --> 01:10:10,900 >> Və sonra, nəhayət, mən bunu array plus 2, harada getmək 1310 01:10:10,900 --> 01:10:11,825 da serialın işarə. 1311 01:10:11,825 --> 01:10:14,690 Və sonra mən yaddaş blokları hərəkət. 1312 01:10:14,690 --> 01:10:16,240 Və sonra mən burada üç qoydu. 1313 01:10:16,240 --> 01:10:16,600 Bəli? 1314 01:10:16,600 --> 01:10:21,400 >> Auditoriya: Belə star array sadəcə ilk nöqtəsi etdi. 1315 01:10:21,400 --> 01:10:25,090 Və yalnız, çünki, 1 əlavə edə bilərsiniz biz yalnız həqiqətən etdiyiniz 1316 01:10:25,090 --> 01:10:27,295 ilk ünvanı sened. 1317 01:10:27,295 --> 01:10:28,545 >> LUCAS: Bəli. 1318 01:10:28,545 --> 01:10:32,720 1319 01:10:32,720 --> 01:10:36,020 Niyə biz, məsələn, sıra deyirlər 0, array 1, array 2? 1320 01:10:36,020 --> 01:10:38,970 1321 01:10:38,970 --> 01:10:42,790 Mən niyə 0 etməliyəm deyirəm 1, 2, 3 əvəzinə 1, 2, 3? 1322 01:10:42,790 --> 01:10:46,550 Səbəblərindən biri, bir kompüter proqramçılar başlamaq üçün tercih 1323 01:10:46,550 --> 01:10:47,750 0-dan hesablanması. 1324 01:10:47,750 --> 01:10:52,370 Array 0 nə zaman, çünki iki deyil, Bu array etməklə eyni şey var 1325 01:10:52,370 --> 01:10:56,330 deməkdir plus 0, mən getmək ki mövqeyi, və mən deyil 1326 01:10:56,330 --> 01:10:59,320 hər hansı bir yaddaş blokları keçin. 1327 01:10:59,320 --> 01:11:01,750 Mən hər hansı bir yaddaş blokları hərəkət etmir. 1328 01:11:01,750 --> 01:11:02,015 Bəli? 1329 01:11:02,015 --> 01:11:03,265 >> Auditoriya: [Işitilemez]? 1330 01:11:03,265 --> 01:11:05,928 1331 01:11:05,928 --> 01:11:12,670 >> LUCAS: Belə ki, o nə xahiş bunu arasında fərq 1332 01:11:12,670 --> 01:11:14,000 bu və ya malloc edir. 1333 01:11:14,000 --> 01:11:17,550 Fərqlərdən biri ki, int array 3 yaradır 1334 01:11:17,550 --> 01:11:19,260 yığını array. 1335 01:11:19,260 --> 01:11:23,080 Mən malloc nə zaman, onu yığın yaradır. 1336 01:11:23,080 --> 01:11:25,250 Ki, mənada edirmi? 1337 01:11:25,250 --> 01:11:28,870 >> Belə ki, necə malloc həqiqətən işləyir? 1338 01:11:28,870 --> 01:11:32,245 Belə ki, niyə biz hətta malloc istifadə etmək lazımdır? 1339 01:11:32,245 --> 01:11:35,730 1340 01:11:35,730 --> 01:11:39,700 Rəqəmlər sizin compiler cür bütün Siz bəyan etdi ki, dəyişənlərin. 1341 01:11:39,700 --> 01:11:44,040 O bütün kosmik yaradır yığını onların. 1342 01:11:44,040 --> 01:11:47,180 Belə ki, dəyişənlərin bütün gedir haradasa yığın olmaq. 1343 01:11:47,180 --> 01:11:49,460 Belə ki, burada mühit dəyişənlər edir. 1344 01:11:49,460 --> 01:11:53,850 >> O dəyişənlər üçün Belə ki, əsasən, space yaddaş ayrılır 1345 01:11:53,850 --> 01:11:55,080 dəfə tərtib. 1346 01:11:55,080 --> 01:11:58,790 Belə ki, kompüter o deməkdir ki, bu dəyişənlərin bütün bilirik 1347 01:11:58,790 --> 01:11:59,790 əvvəlcədən. 1348 01:11:59,790 --> 01:12:02,500 Bu nə dəyəri bilmək lazım deyil Əgər siz onları qoymaq olacaq. 1349 01:12:02,500 --> 01:12:05,490 Amma necə bilməlidir sizə lazım çox yaddaş. 1350 01:12:05,490 --> 01:12:09,380 >> Amma indi ki, məsələn, deyək bir sıra yaratmaq və ya qəbul etdiyiniz 1351 01:12:09,380 --> 01:12:13,430 siz alaraq etdiyiniz string istifadəçi. 1352 01:12:13,430 --> 01:12:17,300 Siz bilmirəm nə qədər string Məsələn, olacaq. 1353 01:12:17,300 --> 01:12:20,600 Belə ki, dəqiq necə çox bilmirəm yaddaş blokları sağ, ayrılması? 1354 01:12:20,600 --> 01:12:24,120 >> Belə ki, həqiqətən mənada etmir 100 simvol qoymaq demək. 1355 01:12:24,120 --> 01:12:26,420 Və sonra istifadəçi 150 yazır nə olur? 1356 01:12:26,420 --> 01:12:27,670 Siz berbat olacaq. 1357 01:12:27,670 --> 01:12:30,160 1358 01:12:30,160 --> 01:12:34,620 >> Belə ki, əsasən, necə əmin ola bilməz siz ayrılması lazım olan çox yaddaş 1359 01:12:34,620 --> 01:12:35,960 zaman proqram tərtib edir. 1360 01:12:35,960 --> 01:12:38,240 Siz yalnız run vaxt bilirik. 1361 01:12:38,240 --> 01:12:39,950 Siz yığın var nə ki, var. 1362 01:12:39,950 --> 01:12:47,610 Belə ki, yığın yaddaş gedir Siz ərzində ayrılması edirik ki, 1363 01:12:47,610 --> 01:12:50,810 proqram çalışan müddəti. 1364 01:12:50,810 --> 01:12:55,780 >> Belə ki, əsasən, siz malloc nə zaman, nə Siz yaddaş ayrılması yapýyorsun 1365 01:12:55,780 --> 01:13:00,160 Siz etdiyiniz o deməkdir ki, uzunluğu, o anda hüququ qərar sizə 1366 01:13:00,160 --> 01:13:02,670 yaddaş olmalıdır. 1367 01:13:02,670 --> 01:13:04,210 Siz ayrılması etdiyiniz zaman ki, var. 1368 01:13:04,210 --> 01:13:06,430 Ki, mənada edirmi? 1369 01:13:06,430 --> 01:13:11,690 >> Belə yığını dəyişənlər var, unutmayın ki, tərtib vaxt yaradılmışdır. 1370 01:13:11,690 --> 01:13:14,560 Və sonra yığın dəyişənlər var Siz getmək kimi yaradılmışdır ki, 1371 01:13:14,560 --> 01:13:15,600 Məsələn malloc ilə. 1372 01:13:15,600 --> 01:13:16,850 >> Auditoriya: [Işitilemez]? 1373 01:13:16,850 --> 01:13:19,179 1374 01:13:19,179 --> 01:13:24,340 >> LUCAS: Belə GetString edir malloc zəng. 1375 01:13:24,340 --> 01:13:26,710 Mənə malloc danışaq, və Mən GetString izah edəcəyik. 1376 01:13:26,710 --> 01:13:32,000 Belə ki, malloc eyni şeydir yaddaş ayrılması kimi. 1377 01:13:32,000 --> 01:13:34,600 Belə ki ayırmaq olacaq yığın yaddaş. 1378 01:13:34,600 --> 01:13:40,010 Və bir pointer qayıtmaq olacaq harada ki, yaddaş təsis edildi. 1379 01:13:40,010 --> 01:13:43,090 >> Belə ki, do-- zaman 1380 01:13:43,090 --> 01:13:44,910 burada example-- üçün 1381 01:13:44,910 --> 01:13:45,830 n star pointer. 1382 01:13:45,830 --> 01:13:50,520 Və sonra pointer malloc bərabərdir inch dəfə 10 ölçüsü. 1383 01:13:50,520 --> 01:13:52,110 Mən bir pointer yaratmaq alıram. 1384 01:13:52,110 --> 01:13:59,020 Və sonra mən ki, pointer təyin alıram göstərici ki malloc dəyəri 1385 01:13:59,020 --> 01:13:59,680 mənə verir. 1386 01:13:59,680 --> 01:14:04,150 >> Mən soruşuram malloc ayıra bilər 10 integers üçün yer. 1387 01:14:04,150 --> 01:14:05,390 Ki söyləyərək nə var. 1388 01:14:05,390 --> 01:14:09,020 Və malloc mənə geri verir ki, yer gösterci. 1389 01:14:09,020 --> 01:14:11,460 Mənada etmək? 1390 01:14:11,460 --> 01:14:12,270 OK. 1391 01:14:12,270 --> 01:14:17,940 Mən Və GetString əsasən, edir Siz ayıra bilər, belə ki, malloc zəng 1392 01:14:17,940 --> 01:14:21,680 iş zamanı yaddaş. 1393 01:14:21,680 --> 01:14:26,460 >> Həmişə null kontrol unutmayın malloc null qayıtmaq üçün gedir çünki 1394 01:14:26,460 --> 01:14:28,200 Bu yaddaş ayrılması bilməz. 1395 01:14:28,200 --> 01:14:31,660 Siz gülünc üçün xahiş ki, deyirlər yaddaş məbləği. 1396 01:14:31,660 --> 01:14:33,950 Sizin kompüter olacaq deyil qədər ayıra. 1397 01:14:33,950 --> 01:14:36,410 >> Belə ki, malloc yalnız gedir null qayıtmaq üçün. 1398 01:14:36,410 --> 01:14:42,210 Belə ki, həmişə yoxlamaq unutmayın Siz malloc var ki pointer edir 1399 01:14:42,210 --> 01:14:45,640 null ya deyil, əgər güc, çünki bir pointer dereferencing etmək və 1400 01:14:45,640 --> 01:14:48,340 yan çatışmazlıqlar səbəb olur. 1401 01:14:48,340 --> 01:14:50,930 Və nəhayət, unutmayın pulsuz yaddaş. 1402 01:14:50,930 --> 01:14:57,800 1403 01:14:57,800 --> 01:15:00,560 >> Malloc yığın yaddaş yaradır. 1404 01:15:00,560 --> 01:15:03,436 Və siz yaddaş azad var proqram başa əvvəl. 1405 01:15:03,436 --> 01:15:05,370 OK, mənim üçün bütün var. 1406 01:15:05,370 --> 01:15:07,900 Üzr istəyirik, Rob. 1407 01:15:07,900 --> 01:15:07,950 Thanks. 1408 01:15:07,950 --> 01:15:09,878 >> [Alqış] 1409 01:15:09,878 --> 01:15:12,679 >> LUCAS: Hər Son suallar Rob gəlir əvvəl? 1410 01:15:12,679 --> 01:15:13,138 No? 1411 01:15:13,138 --> 01:15:13,597 Bəli? 1412 01:15:13,597 --> 01:15:15,892 >> Auditoriya: Mən görmədim bu bir online. 1413 01:15:15,892 --> 01:15:17,269 Siz hələ onu qəbul? 1414 01:15:17,269 --> 01:15:19,106 >> LUCAS: Mən Dave hesab edirəm tezliklə yüklemek. 1415 01:15:19,106 --> 01:15:19,880 >> DAVE: Bu dərc olacaq. 1416 01:15:19,880 --> 01:15:20,310 >> LUCAS: Bu online olacaq. 1417 01:15:20,310 --> 01:15:21,175 >> Auditoriya: Bu qədər var. 1418 01:15:21,175 --> 01:15:22,090 >> LUCAS: Bu qədər var? 1419 01:15:22,090 --> 01:15:23,157 OK. 1420 01:15:23,157 --> 01:15:23,644 Bəli? 1421 01:15:23,644 --> 01:15:27,053 >> Auditoriya: [Işitilemez]? 1422 01:15:27,053 --> 01:15:30,285 >> LUCAS: Bəli, azad olmalıdır bütün yığın qoyulur ki, yaddaş. 1423 01:15:30,285 --> 01:15:31,535 >> Auditoriya: [Işitilemez]? 1424 01:15:31,535 --> 01:15:34,518 1425 01:15:34,518 --> 01:15:36,160 >> LUCAS: Bəli. 1426 01:15:36,160 --> 01:15:39,980 Bir mədəniyyət malloc var ki, istənilən vaxt, Pulsuz mədəniyyəti olmalıdır 1427 01:15:39,980 --> 01:15:42,640 sonra ki, dəyişən istifadə dayandırmaq. 1428 01:15:42,640 --> 01:15:44,800 Belə ki, malloc və pulsuz həmişə birlikdə. 1429 01:15:44,800 --> 01:15:45,410 Onların ən yaxşı dost. 1430 01:15:45,410 --> 01:15:46,720 Bəli. 1431 01:15:46,720 --> 01:15:47,970 Rob? 1432 01:15:47,970 --> 01:15:55,595 1433 01:15:55,595 --> 01:15:56,850 >> Rob: Mən tez getmək lazımdır. 1434 01:15:56,850 --> 01:16:00,466 Həmçinin video çıxarılacaq. 1435 01:16:00,466 --> 01:16:01,716 Mən mikrofon var. 1436 01:16:01,716 --> 01:16:24,060 1437 01:16:24,060 --> 01:16:26,230 >> OK, belə ki, həftə beş stuff. 1438 01:16:26,230 --> 01:16:27,970 Biz ilk şey yığını deyil. 1439 01:16:27,970 --> 01:16:33,390 Belə ki, yalnız bir yığın var unutmayın ki, aktiv funksiyası zəng başına frame. 1440 01:16:33,390 --> 01:16:34,710 Biz ikinci görəcəksiniz. 1441 01:16:34,710 --> 01:16:37,850 Və həmçinin həqiqətən gedir nə xatırlayıram hər yığını çərçivəsində olacaq 1442 01:16:37,850 --> 01:16:41,880 Bizim funksiyaları yerli dəyişənlərin, keçdi ki, dəlilləri bizim 1443 01:16:41,880 --> 01:16:43,880 bir neçə ilə yanaşı funksiyaları, digər şeylər həqiqətən, yoxdur 1444 01:16:43,880 --> 01:16:45,260 narahat lazımdır. 1445 01:16:45,260 --> 01:16:50,950 >> Belə ki, burada bir nümunə proqram, bildiriş, əsas qaytarılması printfing edir 1446 01:16:50,950 --> 01:16:52,830 foo 4 dəyəri. 1447 01:16:52,830 --> 01:16:57,930 foo yalnız qayıtmaq üçün gedir bar 4 vergül 6 dəyəri. 1448 01:16:57,930 --> 01:17:02,380 Və bar bəzi yerli müəyyən edir 4 dəfə 6 bərabər dəyişən n. 1449 01:17:02,380 --> 01:17:03,920 Və sonra n qayıtmaq. 1450 01:17:03,920 --> 01:17:09,130 >> Belə ki, boyu yığını baxaq Bu proqram faktiki iteration. 1451 01:17:09,130 --> 01:17:10,500 Belə ki, bizim yığını alt var. 1452 01:17:10,500 --> 01:17:12,620 Yığını qədər artır ki, unutmayın. 1453 01:17:12,620 --> 01:17:15,370 Bizim yığını altında, belə ki, biz əsas üçün yığını çərçivəsində var. 1454 01:17:15,370 --> 01:17:17,000 Zaman proqram başlayır, əsas həmişə də olacaq 1455 01:17:17,000 --> 01:17:18,560 bizim yığını aşağı. 1456 01:17:18,560 --> 01:17:20,880 >> Və içərisində nə bizim əsas çərçivə yığın? 1457 01:17:20,880 --> 01:17:23,810 Belə ki, heç bir yerli var baxmayaraq əsas dəyişənlər Mən əvvəl bildirib kimi 1458 01:17:23,810 --> 01:17:29,670 Biz argc və RGV yer alaraq əsas yığını çərçivəsində daxilində. 1459 01:17:29,670 --> 01:17:33,260 Indi gedir Belə ki, əsas funksiyası foo zəng. 1460 01:17:33,260 --> 01:17:35,125 Və foo gedir deməkdir öz yığını çərçivəsində almaq. 1461 01:17:35,125 --> 01:17:36,970 >> Belə ki, indi biz daxili istəyirik funksiyası foo. 1462 01:17:36,970 --> 01:17:38,610 Və nə getmək lazımdır foo nin yığını çərçivəsində? 1463 01:17:38,610 --> 01:17:41,100 Yaxşı, foo bir dəlil n var. 1464 01:17:41,100 --> 01:17:45,440 Ki, ildən və N 4 bərabərdir nə əsas foo nin arqument kimi keçir. 1465 01:17:45,440 --> 01:17:48,490 >> Belə ki, indi foo bar zəng etmək üçün gedir. 1466 01:17:48,490 --> 01:17:52,070 Nə bar daxilində gedir onun yığını çərçivəsində? 1467 01:17:52,070 --> 01:17:55,610 Bu altı bərabər 4 y bərabər x var. 1468 01:17:55,610 --> 01:17:58,540 Yəni biz olacaq ki, bütün deyil bar, çünki yığını çərçivəsində 1469 01:17:58,540 --> 01:18:00,580 Həmçinin yerli dəyişən n var. 1470 01:18:00,580 --> 01:18:03,370 Və n biz 24 bərabər müəyyən olacaq. 1471 01:18:03,370 --> 01:18:05,750 >> Belə ki, indi bar n geri gedir. 1472 01:18:05,750 --> 01:18:09,300 Belə ki, bar üçün 24 qayıdır yığını çərçivəsində foo. 1473 01:18:09,300 --> 01:18:12,560 Və bar indi ki, qaytarılması, çünki biz yığını çərçivəsində yaratma edirik deməkdir 1474 01:18:12,560 --> 01:18:14,250 yığını off bar. 1475 01:18:14,250 --> 01:18:18,430 Bar olmuşdur ki, bütün yaddaş istifadə yığını off indi. 1476 01:18:18,430 --> 01:18:21,550 >> İndi, foo də gedir əsas 24 qayıtmaq üçün. 1477 01:18:21,550 --> 01:18:25,470 Belə ki, indi ki, foo, yaddaş qayıdır ki, foo onun 'istifadə edildi 1478 01:18:25,470 --> 01:18:27,550 yığını çərçivəsində də getdi. 1479 01:18:27,550 --> 01:18:29,660 İndi, əsas printf zəng etmək üçün gedir. 1480 01:18:29,660 --> 01:18:31,660 Belə printf yalnız bir funksiyası var. 1481 01:18:31,660 --> 01:18:35,320 Biz printf zəng zaman, olacaq Bu printf üçün bir yığını çərçivəsində 1482 01:18:35,320 --> 01:18:36,470 funksiyası zəng. 1483 01:18:36,470 --> 01:18:37,990 >> Nə biz printf keçən olunur? 1484 01:18:37,990 --> 01:18:40,090 Ki, getmək neler var onun yığını çərçivəsində. 1485 01:18:40,090 --> 01:18:44,970 Ən azı, biz keçən edirik ki, faiz i n backslash və 1486 01:18:44,970 --> 01:18:47,180 arqument 24. 1487 01:18:47,180 --> 01:18:50,370 Bu yığını çərçivə var bu çox ola bilər printf bəzi istifadə etmək olur 1488 01:18:50,370 --> 01:18:51,200 yerli dəyişənlər. 1489 01:18:51,200 --> 01:18:51,920 Biz bilmirik. 1490 01:18:51,920 --> 01:18:53,810 >> Lakin bütün printf nin gedir çərçivəsində yığın. 1491 01:18:53,810 --> 01:18:55,740 Bu printf həyata olacaq. 1492 01:18:55,740 --> 01:18:56,830 Sonra printf həyata. 1493 01:18:56,830 --> 01:18:57,820 Bu qayıdacaqlar. 1494 01:18:57,820 --> 01:18:58,960 Nəhayət, əsas edilir. 1495 01:18:58,960 --> 01:18:59,860 Main qayıdacaqlar. 1496 01:18:59,860 --> 01:19:02,020 Və sonra proqram edilir. 1497 01:19:02,020 --> 01:19:02,480 Bəli? 1498 01:19:02,480 --> 01:19:04,505 >> Auditoriya: Siz görürsünüzmü [Işitilemez] 1499 01:19:04,505 --> 01:19:05,900 arqumentlər [Işitilemez] 1500 01:19:05,900 --> 01:19:06,830 parametrləri? 1501 01:19:06,830 --> 01:19:09,970 >> Rob: Belə bir incə fərq var dəlilləri və parametrləri arasında. 1502 01:19:09,970 --> 01:19:14,400 Və həqiqətən, ümumi danışmaq, insanlar edirlər yalnız bütün zaman onları qarışdırılır. 1503 01:19:14,400 --> 01:19:17,550 Amma parametrləri formal var şeyi adı. 1504 01:19:17,550 --> 01:19:20,180 >> Belə ki, argc və argv var əsas parametrləri. 1505 01:19:20,180 --> 01:19:23,440 Arqumentləri nə həqiqətən var o parametrləri kimi keçir. 1506 01:19:23,440 --> 01:19:28,340 Belə ki, I 4 foo, 4 zəng zaman Mən keçən alıram dəlildir. 1507 01:19:28,340 --> 01:19:31,460 Və daxilində parametri n, foo, dəyəri 4 qalır 1508 01:19:31,460 --> 01:19:32,880 4 ildən dəlil idi. 1509 01:19:32,880 --> 01:19:35,826 >> Auditoriya: [Işitilemez]? 1510 01:19:35,826 --> 01:19:37,880 >> Rob: n bar bir yerli dəyişir. 1511 01:19:37,880 --> 01:19:41,420 1512 01:19:41,420 --> 01:19:44,960 n, hələ foo yerli deyil, foo bir parametr var. 1513 01:19:44,960 --> 01:19:48,190 Bu yerli dəyişən deyil. 1514 01:19:48,190 --> 01:19:48,546 Bəli? 1515 01:19:48,546 --> 01:19:51,180 >> Auditoriya: [Işitilemez]? 1516 01:19:51,180 --> 01:19:55,400 >> Rob: foo sadəcə zəng bar və nə bar yekunları qaytarılması. 1517 01:19:55,400 --> 01:19:56,786 >> Auditoriya: [Işitilemez]? 1518 01:19:56,786 --> 01:19:59,591 >> Rob: Bəli, yalnız çox görmək çərçivəsində yığın. 1519 01:19:59,591 --> 01:20:00,082 Bəli? 1520 01:20:00,082 --> 01:20:03,519 >> Auditoriya: Niyə foo adlı printf əvvəl? 1521 01:20:03,519 --> 01:20:05,920 >> Rob: Niyə foo printf əvvəl adlanırdı? 1522 01:20:05,920 --> 01:20:10,740 Mən ola bilər, belə ki, əvəzinə, bir şey int kimi x 4 foo bərabərdir 1523 01:20:10,740 --> 01:20:12,980 və sonra x çap. 1524 01:20:12,980 --> 01:20:17,900 Ancaq əvəzinə, funksiyası birləşdirilmiş printf mübahisəyə zəng. 1525 01:20:17,900 --> 01:20:23,670 >> Amma biz, həqiqətən bilməz biz qədər printf zəng icra 1526 01:20:23,670 --> 01:20:25,610 4 foo nə anlamaq. 1527 01:20:25,610 --> 01:20:27,480 Beləliklə, biz bu qiymətləndirmək olacaq. 1528 01:20:27,480 --> 01:20:32,504 Və həyata yalnız bir dəfə gedir geri gəlmək və qiymətləndirmək. 1529 01:20:32,504 --> 01:20:32,990 Bəli? 1530 01:20:32,990 --> 01:20:37,364 >> Auditoriya: həm bar ildən [Işitilemez] 1531 01:20:37,364 --> 01:20:41,738 dəyəri, niyə biz [Işitilemez] yoxdur? 1532 01:20:41,738 --> 01:20:44,400 >> Rob: Onlar tamamilə int olmalıdır. 1533 01:20:44,400 --> 01:20:46,260 Üzərində tutuldu deyil çox keçir. 1534 01:20:46,260 --> 01:20:49,010 Belə ki, int bar və int olmalıdır O, həm bəri foo 1535 01:20:49,010 --> 01:20:50,460 integers qayıdır. 1536 01:20:50,460 --> 01:20:54,214 Onlar fikrində deyilik əgər etibarsız yalnız faktiki dəyərlər qayıtmaq üçün. 1537 01:20:54,214 --> 01:20:54,692 Bəli? 1538 01:20:54,692 --> 01:20:58,038 >> Auditoriya: Siz bir xətt olsaydı bax qaytarılması, [Işitilemez]? 1539 01:20:58,038 --> 01:21:01,862 1540 01:21:01,862 --> 01:21:03,730 >> Rob: qaytarılması yuxarıda line? 1541 01:21:03,730 --> 01:21:04,410 >> Auditoriya: Bəli. 1542 01:21:04,410 --> 01:21:10,780 Kimi printf və [Işitilemez] əgər, iki dəfə çap olardı? 1543 01:21:10,780 --> 01:21:12,992 >> Rob: foo daxilində Belə ki,? 1544 01:21:12,992 --> 01:21:15,945 Biz burada printf olsaydı? 1545 01:21:15,945 --> 01:21:16,750 >> Auditoriya: Bəli. 1546 01:21:16,750 --> 01:21:19,510 >> Rob: Beləliklə, biz bir printf hüququ var Burada, bir çap olardı. 1547 01:21:19,510 --> 01:21:23,400 Biz bir dəfə sağ foo zəng ildən Burada, onda biz printf hit olacaq. 1548 01:21:23,400 --> 01:21:24,620 Sonra biz bar zəng edəcəyik. 1549 01:21:24,620 --> 01:21:25,710 Və sonra foo qayıdacaqlar. 1550 01:21:25,710 --> 01:21:26,275 Və ki, var. 1551 01:21:26,275 --> 01:21:30,985 Biz yalnız qarşılaşa bir printf. 1552 01:21:30,985 --> 01:21:31,482 Bəli? 1553 01:21:31,482 --> 01:21:32,973 >> Auditoriya: [işitilemez] 1554 01:21:32,973 --> 01:21:37,950 biz ilk istəyirik, çünki printf foo zəng printf zəng sonra biz keçən edirik 1555 01:21:37,950 --> 01:21:38,580 dəlilləri. 1556 01:21:38,580 --> 01:21:40,960 >> Rob: nəzəriyyə Belə ki, deyil printf foo zəng? 1557 01:21:40,960 --> 01:21:42,220 Belə ki, heç. 1558 01:21:42,220 --> 01:21:47,360 C gedir ki, yalnız sifarişi biz əvvəl bu şeyləri yerinə 1559 01:21:47,360 --> 01:21:49,800 , dəlilləri bütün bir funksiyası zəng funksiyası var 1560 01:21:49,800 --> 01:21:51,600 tamamilə qiymətləndiriləcək. 1561 01:21:51,600 --> 01:21:53,540 Belə ki, bu tamamilə qiymətləndirilir? 1562 01:21:53,540 --> 01:21:54,610 Bəli, yalnız bir simli var. 1563 01:21:54,610 --> 01:21:55,480 Bu yalnız bir dəyəri var. 1564 01:21:55,480 --> 01:21:57,200 >> Sonra biz tamamilə var qiymətləndirirsiniz. 1565 01:21:57,200 --> 01:21:59,720 Bu artıq bütün, həyata bir dəfə öz arqumentlərini qiymətləndirilir. 1566 01:21:59,720 --> 01:22:01,982 İndi biz edə bilərsiniz printf zəng. 1567 01:22:01,982 --> 01:22:02,478 Bəli? 1568 01:22:02,478 --> 01:22:03,966 >> Auditoriya: Bir sual. 1569 01:22:03,966 --> 01:22:06,942 Bir etibarsız funksiyası varsa, olmalıdır Siz geri nöqtəli vergül var? 1570 01:22:06,942 --> 01:22:09,910 >> Rob: Siz geri nöqtəli vergül deyil Bir etibarsız funksiyası var. 1571 01:22:09,910 --> 01:22:13,370 1572 01:22:13,370 --> 01:22:14,780 OK. 1573 01:22:14,780 --> 01:22:15,830 Belə ki, indi bəzi yığın stuff. 1574 01:22:15,830 --> 01:22:19,640 Belə ki, yığın biz məşğul olacaq necə dinamik yaddaş rəhbərliyi ilə. 1575 01:22:19,640 --> 01:22:23,100 Və bu birbaşa ilə ziddiyyət biz avtomatik zəng edən stack 1576 01:22:23,100 --> 01:22:24,100 yaddaş idarə edilməsi. 1577 01:22:24,100 --> 01:22:27,140 >> Yığını Belə ki, həqiqətən heç vaxt necə yerli dəyişənlərin ilə məşğul 1578 01:22:27,140 --> 01:22:30,400 sövq və bütün off atdı olunur bu yığını çərçivəsində və bütün stuff. 1579 01:22:30,400 --> 01:22:31,070 Siz bu barədə narahat yoxdur. 1580 01:22:31,070 --> 01:22:32,070 Bu avtomatik var. 1581 01:22:32,070 --> 01:22:36,990 Belə ki, yığın manual edir. 1582 01:22:36,990 --> 01:22:38,070 Və [Işitilemez] 1583 01:22:38,070 --> 01:22:41,260 Bu funksiyaları gəlir malloc və pulsuz. 1584 01:22:41,260 --> 01:22:43,550 >> Belə ki, burada başqa bir proqram. 1585 01:22:43,550 --> 01:22:47,145 Biz yapýyorsun bütün mallocing edir tam. 1586 01:22:47,145 --> 01:22:49,360 Biz star x saxlanılması edirik. 1587 01:22:49,360 --> 01:22:52,520 Əlbəttə ki, biz yoxlamaq üçün x null görmek üçün. 1588 01:22:52,520 --> 01:22:56,400 Sonra biz yalnız nə müəyyən olacaq x 50 işarə edir. 1589 01:22:56,400 --> 01:23:00,350 1590 01:23:00,350 --> 01:23:03,260 , Işarə nə x Print print x, və sonra pulsuz x. 1591 01:23:03,260 --> 01:23:08,920 >> Belə ki, necə bu, həqiqətən baxmaq edir biz yığını və yığın baxsaq? 1592 01:23:08,920 --> 01:23:10,950 Yəni biz yenidən başlamaq lazımdır. 1593 01:23:10,950 --> 01:23:12,580 Əvvəlki kimi yığını alt. 1594 01:23:12,580 --> 01:23:15,930 Sənə birbaşa yığın Unutmayın ki, yığını qarşı? 1595 01:23:15,930 --> 01:23:18,850 Beləliklə, biz olacaq orada bizim yığın üst. 1596 01:23:18,850 --> 01:23:22,590 >> Bizim yığını altında, belə ki, biz əsas üçün yığını çərçivəsində. 1597 01:23:22,590 --> 01:23:28,000 Bu argc argv üçün yer var və biz İndi yerli dəyişən x, var olan 1598 01:23:28,000 --> 01:23:30,030 bir int ulduz edir. 1599 01:23:30,030 --> 01:23:32,240 Beləliklə, biz təkrarlamaq olacaq Bu proqram vasitəsilə. 1600 01:23:32,240 --> 01:23:34,420 Biz ilk şey malloc zəng. 1601 01:23:34,420 --> 01:23:36,250 >> Beləliklə, biz malloc zəng edirik. 1602 01:23:36,250 --> 01:23:37,100 Malloc bir funksiyası var. 1603 01:23:37,100 --> 01:23:38,770 Bu yığını çərçivəsində almaq olacaq. 1604 01:23:38,770 --> 01:23:40,180 Biz nə malloc keçirik? 1605 01:23:40,180 --> 01:23:41,610 Ki, daxili getmək olacaq yığını çərçivəsində. 1606 01:23:41,610 --> 01:23:45,130 Biz 4 olan n, ölçüsü keçən edirik. 1607 01:23:45,130 --> 01:23:49,700 Belə ki, malloc üçün qəbul edilir. 1608 01:23:49,700 --> 01:23:50,910 >> Malloc nə edir? 1609 01:23:50,910 --> 01:23:53,820 Bu, bizə yığın bəzi kosmik Polip. 1610 01:23:53,820 --> 01:23:55,320 Beləliklə, biz yığını getmək olacaq. 1611 01:23:55,320 --> 01:23:57,990 Və biz işğalçı olacaq Yığın 4 bayt. 1612 01:23:57,990 --> 01:24:01,500 Belə ki, yalnız verək ixtiyari ünvanı. 1613 01:24:01,500 --> 01:24:06,680 0x123 Just bir iddia yığın ki, ünvanı. 1614 01:24:06,680 --> 01:24:12,300 >> Belə ki, daxili həqiqətən nə ünvanı ox123 yaddaş rayon? 1615 01:24:12,300 --> 01:24:13,080 Tullantı. 1616 01:24:13,080 --> 01:24:15,270 Belə ki, biz heç bir şey saxlanılır deyil. 1617 01:24:15,270 --> 01:24:18,830 Yəni, biz bunu bildiyiniz kimi bir şey ola bilər. 1618 01:24:18,830 --> 01:24:20,560 Siz sıfır güman etməməlidir. 1619 01:24:20,560 --> 01:24:23,870 Bu sıfır ən çox ehtimal var. 1620 01:24:23,870 --> 01:24:26,260 >> Belə ki, indi malloc qaytarır. 1621 01:24:26,260 --> 01:24:28,020 Və biz zaman malloc yekunları nə etməliyəm? 1622 01:24:28,020 --> 01:24:29,800 Biz qaytarır nə müəyyən. 1623 01:24:29,800 --> 01:24:32,290 Biz bərabər x müəyyən nə Bu qayıdır. 1624 01:24:32,290 --> 01:24:33,690 Belə ki, nə qayıdır? 1625 01:24:33,690 --> 01:24:38,150 Ki, çünki 0x123 qaytarılması yaddaş blokunun ünvanı bunun 1626 01:24:38,150 --> 01:24:40,850 yalnız yığın ayrılmış. 1627 01:24:40,850 --> 01:24:47,160 >> Belə ki, 0x123 x indi müəyyən olacaq qayıtmaq 0x123 bərabər olan pictorially, 1628 01:24:47,160 --> 01:24:52,940 biz tez-tez faktiki olan x kimi cəlb ki blokunun işarə arrow. 1629 01:24:52,940 --> 01:24:55,820 Amma x yalnız ünvanı saxlanılması. 1630 01:24:55,820 --> 01:24:58,670 Belə ki, indi biz x null əgər yoxlamaq lazımdır. 1631 01:24:58,670 --> 01:24:59,120 Bu null deyil. 1632 01:24:59,120 --> 01:25:02,170 Biz malloc nail olduğunu iddia. 1633 01:25:02,170 --> 01:25:04,950 >> Belə ki, indi star x 50 bərabərdir. 1634 01:25:04,950 --> 01:25:08,450 Belə ki, ulduz o deməkdir xatırlayır ki ünvanına getmək. 1635 01:25:08,450 --> 01:25:12,700 Belə ki, 0x123 Biz gedirik ki ünvanına getmək. 1636 01:25:12,700 --> 01:25:14,660 Belə ki, orada bizi gətirir. 1637 01:25:14,660 --> 01:25:16,310 Biz bu ünvanda nə edirsən? 1638 01:25:16,310 --> 01:25:19,020 Biz 50 saxlanılması edirik. 1639 01:25:19,020 --> 01:25:22,500 >> Belə ki, bu xətt sonra ki, nə edir kimi şeylər baxmaq üçün gedir. 1640 01:25:22,500 --> 01:25:24,640 Belə ki, indi artıq var orada zibil up. 1641 01:25:24,640 --> 01:25:28,910 İndi biz 50 ki bilirik ki, Xüsusilə ünvanı çünki 1642 01:25:28,910 --> 01:25:32,410 biz seçin. 1643 01:25:32,410 --> 01:25:32,790 OK? 1644 01:25:32,790 --> 01:25:34,370 Belə ki, indi biz f çap olacaq. 1645 01:25:34,370 --> 01:25:38,490 >> Belə ki, ilk, biz star x çap olacaq. 1646 01:25:38,490 --> 01:25:39,640 Belə ki, ulduz x nədir? 1647 01:25:39,640 --> 01:25:44,300 Yenə star x getməsi deməkdir x işarə edir ki, bir şey. 1648 01:25:44,300 --> 01:25:47,140 Belə x ki 0x123 Go saxlanılması. 1649 01:25:47,140 --> 01:25:48,490 Biz 50 almaq. 1650 01:25:48,490 --> 01:25:50,540 Belə ki, f çap. 1651 01:25:50,540 --> 01:25:54,900 Və bu 50 çap olacaq deməkdir. 1652 01:25:54,900 --> 01:25:56,850 Və sonra qayıdır. 1653 01:25:56,850 --> 01:25:58,340 >> Və sonra biz ikinci printf var. 1654 01:25:58,340 --> 01:25:59,370 Biz indi yüzdə p istəyirik. 1655 01:25:59,370 --> 01:26:01,680 Siz onu görməmişik varsa, ki, yalnız bir pointer çap necə. 1656 01:26:01,680 --> 01:26:04,960 Belə ki, biz, yüzdə i var f, və artıq o bütün. 1657 01:26:04,960 --> 01:26:07,160 Belə ki, faiz p, bir pointer çap. 1658 01:26:07,160 --> 01:26:08,920 >> Belə ki, x bir göstəricisidir. 1659 01:26:08,920 --> 01:26:13,440 Beləliklə, biz özü x çap olacaq əgər, biz daxili əslində nə çap edirik 1660 01:26:13,440 --> 01:26:19,220 Belə ki, ilk 0x123 olan x, print f 50 çap edir. 1661 01:26:19,220 --> 01:26:23,620 İkinci çap f gedir Bəli 0x123 çap? 1662 01:26:23,620 --> 01:26:27,460 >> Auditoriya: siz faiz istifadə edirsiniz x bir pointer çap? 1663 01:26:27,460 --> 01:26:31,200 >> Rob: Belə ki, faiz istifadə edirsiniz x bir pointer çap? 1664 01:26:31,200 --> 01:26:38,350 Belə ki, siz ancaq yüzdə x yalnız ümumiyyətlə, kimi bəzi varsa 1665 01:26:38,350 --> 01:26:40,325 tam və çap etmək istəyirəm bir hexadecimal kimi. 1666 01:26:40,325 --> 01:26:43,250 1667 01:26:43,250 --> 01:26:44,880 Bunu necə ki, yalnız var. 1668 01:26:44,880 --> 01:26:47,160 >> Halbuki, faiz d ki ondalık kimi çap. 1669 01:26:47,160 --> 01:26:50,310 Biz faiz almaq edilmişdir ki d. i yalnız tam deyil. 1670 01:26:50,310 --> 01:26:52,690 faiz p xüsusi edir göstəricilərinə. 1671 01:26:52,690 --> 01:26:54,060 >> Belə ki, x bir göstəricisidir. 1672 01:26:54,060 --> 01:26:56,360 Biz yüzdə p istifadə etmək istəyirik. 1673 01:26:56,360 --> 01:26:57,937 Amma faiz x işləmək bilər. 1674 01:26:57,937 --> 01:26:58,414 Bəli? 1675 01:26:58,414 --> 01:26:59,664 >> Auditoriya: [Işitilemez]? 1676 01:26:59,664 --> 01:27:04,138 1677 01:27:04,138 --> 01:27:05,388 >> Rob: Bəli. 1678 01:27:05,388 --> 01:27:07,870 1679 01:27:07,870 --> 01:27:13,440 Bunun üçün ən azı belə dediyimiz I burada daxil etməyib. 1680 01:27:13,440 --> 01:27:19,850 Lakin bu iki dəlilləri mütləq var Bu yığını çərçivə içərisində 1681 01:27:19,850 --> 01:27:23,040 hər hansı bir yerli dəyişənlərin ilə yanaşı, printf istifadə etmək olur. 1682 01:27:23,040 --> 01:27:27,020 Və sonra növbəti zəng indi printf printf daxilində yığını çərçivəsində deyil 1683 01:27:27,020 --> 01:27:33,960 faiz p backslash n və nə x dəyəri 0x123 olan edir. 1684 01:27:33,960 --> 01:27:34,425 Bəli? 1685 01:27:34,425 --> 01:27:35,675 >> Auditoriya: [Işitilemez]? 1686 01:27:35,675 --> 01:27:38,145 1687 01:27:38,145 --> 01:27:40,880 >> Rob: Bu bir şey çap lazımdır ki, bu kimi görünür. 1688 01:27:40,880 --> 01:27:41,846 >> Auditoriya: [işitilemez]. 1689 01:27:41,846 --> 01:27:44,510 >> Rob: Belə ki, ünvan formada görüntüler. 1690 01:27:44,510 --> 01:27:47,003 Bu ünvan kimi görünür. 1691 01:27:47,003 --> 01:27:47,494 Bəli? 1692 01:27:47,494 --> 01:27:49,458 >> Auditoriya: [Işitilemez]? 1693 01:27:49,458 --> 01:27:51,075 >> Rob: Niyə nədir? 1694 01:27:51,075 --> 01:27:52,920 >> Auditoriya: [Işitilemez]? 1695 01:27:52,920 --> 01:27:55,240 >> Rob: Niyə bu göstərici 4 bayt? 1696 01:27:55,240 --> 01:27:58,500 Belə ki, bir dəstə var Bu qarşısında 0 nin. 1697 01:27:58,500 --> 01:28:03,740 Belə ki, həqiqətən 0x0000000123 var. 1698 01:28:03,740 --> 01:28:06,510 64-bit sistemi, olacaq daha adet sıfır bütün dəstə. 1699 01:28:06,510 --> 01:28:11,410 1700 01:28:11,410 --> 01:28:11,900 Bəli? 1701 01:28:11,900 --> 01:28:13,150 >> Auditoriya: [işitilemez]. 1702 01:28:13,150 --> 01:28:17,290 1703 01:28:17,290 --> 01:28:21,130 >> Rob: Belə ki, ilk printf print-- gedir 1704 01:28:21,130 --> 01:28:21,980 >> Auditoriya: [işitilemez]. 1705 01:28:21,980 --> 01:28:24,420 >> Rob: Bəli, çap olacaq nə x işarə edir. 1706 01:28:24,420 --> 01:28:27,030 1707 01:28:27,030 --> 01:28:29,070 Star bu nə deyir şey işarə. 1708 01:28:29,070 --> 01:28:30,300 Onu qapmaq. 1709 01:28:30,300 --> 01:28:31,455 Belə ki, işarə nə? 1710 01:28:31,455 --> 01:28:31,850 50. 1711 01:28:31,850 --> 01:28:32,410 Onu qapmaq. 1712 01:28:32,410 --> 01:28:33,390 Yəni biz çap olacaq nə. 1713 01:28:33,390 --> 01:28:37,020 Növbəti bir, halbuki, biz istəyirik yalnız özü x çap. 1714 01:28:37,020 --> 01:28:38,850 F daxilində nədir? 1715 01:28:38,850 --> 01:28:43,710 0x123. 1716 01:28:43,710 --> 01:28:44,500 OK. 1717 01:28:44,500 --> 01:28:46,620 >> Və sonra, nəhayət, biz pulsuz var. 1718 01:28:46,620 --> 01:28:48,040 Biz nə azad keçirik? 1719 01:28:48,040 --> 01:28:49,470 Biz x keçən edirik. 1720 01:28:49,470 --> 01:28:52,380 Mən, həqiqətən, göstərilir ki, vaxt Bu yığını çərçivəsində. 1721 01:28:52,380 --> 01:28:56,370 >> Beləliklə, biz dəyəri keçən edirik 0x123 pulsuz. 1722 01:28:56,370 --> 01:28:59,070 Belə ki, indi bilir pulsuz, bütün sağ, Mən yığın qədər getmək üçün var 1723 01:28:59,070 --> 01:29:00,050 və yaddaş pulsuz. 1724 01:29:00,050 --> 01:29:03,920 Bu artıq istifadə nə ünvanı 0x123 edir. 1725 01:29:03,920 --> 01:29:07,010 >> Belə ki, pulsuz azad gedir yığın ki,. 1726 01:29:07,010 --> 01:29:09,490 İndi bizim yığın daha boş. 1727 01:29:09,490 --> 01:29:11,120 Biz heç bir yaddaş sızıntıları. 1728 01:29:11,120 --> 01:29:12,940 İndi pulsuz qayıdacaqlar. 1729 01:29:12,940 --> 01:29:16,130 Ki, x hələ 0x123 edək. 1730 01:29:16,130 --> 01:29:18,240 Amma indi etibarlı yaddaş deyil. 1731 01:29:18,240 --> 01:29:21,220 1732 01:29:21,220 --> 01:29:23,986 Biz artıq dereference x olmalıdır. 1733 01:29:23,986 --> 01:29:24,440 Bəli? 1734 01:29:24,440 --> 01:29:27,240 >> Auditoriya: 0 lazımsız qayıtmaq mı? 1735 01:29:27,240 --> 01:29:28,290 >> Rob: 0 lazımsız returen mı? 1736 01:29:28,290 --> 01:29:31,110 Bəli. 1737 01:29:31,110 --> 01:29:33,950 Biz yalnız çünki qoymaq biz hava üçün bir dönüş biri var. 1738 01:29:33,950 --> 01:29:36,830 Belə ki, Bəli, imkan verir, kimi qaytarılması 0 daxildir. 1739 01:29:36,830 --> 01:29:37,310 Bəli? 1740 01:29:37,310 --> 01:29:38,560 >> Auditoriya: [Işitilemez]? 1741 01:29:38,560 --> 01:29:42,110 1742 01:29:42,110 --> 01:29:45,580 >> Rob: Belə ki, pulsuz x sonra nə olur biz göstərici dereference üçün cəhd? 1743 01:29:45,580 --> 01:29:47,240 Bu heç bir şey yanlış gedir ki, mümkündür. 1744 01:29:47,240 --> 01:29:49,330 Biz hələ 50 almaq lazımdır ki, bu mümkündür. 1745 01:29:49,330 --> 01:29:53,590 >> Bu yaddaş ki, həmçinin, mümkündür İndi başqa bir şey üçün istifadə olunur. 1746 01:29:53,590 --> 01:29:57,140 Belə ki, müəyyən davranış var. 1747 01:29:57,140 --> 01:30:00,772 Və undefined şey deməkdir ola bilər. 1748 01:30:00,772 --> 01:30:01,250 Bəli? 1749 01:30:01,250 --> 01:30:02,500 >> Auditoriya: [Işitilemez]? 1750 01:30:02,500 --> 01:30:07,942 1751 01:30:07,942 --> 01:30:10,830 >> Rob: Xeyr, belə ki, təyin əgər başqa bir şey x. 1752 01:30:10,830 --> 01:30:15,870 Belə ki, burada, əgər biz x bərabərdir etdi malloc bir şey else-- 1753 01:30:15,870 --> 01:30:17,100 malloc ölçüsü event-- 1754 01:30:17,100 --> 01:30:20,180 sonra orijinal blok yaddaş azad deyil. 1755 01:30:20,180 --> 01:30:21,490 Və biz bunu rəsmi olaraq itirmişdir. 1756 01:30:21,490 --> 01:30:23,150 Ki, bir yaddaş sızıntısı edir. 1757 01:30:23,150 --> 01:30:25,090 Biz bütün istinadlar itirdik yaddaş ki, blok. 1758 01:30:25,090 --> 01:30:26,827 Beləliklə, biz heç onu azad heç bir yol var. 1759 01:30:26,827 --> 01:30:32,074 1760 01:30:32,074 --> 01:30:36,630 OK, belə ki, daha sonra görülən 0 vasitələrdən qayıtmaq. 1761 01:30:36,630 --> 01:30:37,900 >> Bütün hüquqlar, belə yığın daşqın. 1762 01:30:37,900 --> 01:30:39,320 Burada fikir nədir? 1763 01:30:39,320 --> 01:30:41,210 Belə ki, xatırlayıram, yığın aşağı gedir. 1764 01:30:41,210 --> 01:30:43,480 Stack gedir. 1765 01:30:43,480 --> 01:30:48,000 Belə ki, bu mühazirə nümunə idi Mən harada əsas yalnız gedir, hesab edirəm ki, 1766 01:30:48,000 --> 01:30:51,380 davam edən bu funksiyası foo zəng üzərində recursively özü zəng etmək və 1767 01:30:51,380 --> 01:30:52,320 təzədən. 1768 01:30:52,320 --> 01:30:55,370 >> Belə çərçivəsində gedir yığın eyni işləyir. 1769 01:30:55,370 --> 01:30:58,130 Belə ki, biz əsas ilə başlamaq olacaq alt yığını çərçivəsində kimi. 1770 01:30:58,130 --> 01:31:02,000 Sonra əsas, foo zəng etmək niyyətində olan bir yığını çərçivəsində almaq üçün gedir. 1771 01:31:02,000 --> 01:31:04,260 >> Sonra foo foo zəng etmək üçün gedir yenə hansı almaq üçün gedir 1772 01:31:04,260 --> 01:31:05,500 başqa yığını çərçivəsində. 1773 01:31:05,500 --> 01:31:08,270 Və sonra yenidən və yenidən və yenidən, və yenidən qədər, nəhayət, biz run 1774 01:31:08,270 --> 01:31:09,190 yığın daxil. 1775 01:31:09,190 --> 01:31:11,990 Belə ki, bu biz almaq necə bir yığın daşqın. 1776 01:31:11,990 --> 01:31:14,910 Və bu nöqtədə, siz günah seg. 1777 01:31:14,910 --> 01:31:17,335 Yoxsa həqiqətən seg əvvəl günah istədiyiniz Bu point lakin yeah. 1778 01:31:17,335 --> 01:31:19,660 >> Auditoriya: əsas dump edir seg günah kimi eyni? 1779 01:31:19,660 --> 01:31:26,140 >> Rob: Belə ki, seqmentasiya görəcəksiniz günah əsas tullanır. 1780 01:31:26,140 --> 01:31:28,760 Siz core dump zaman almaq Siz günah seg. 1781 01:31:28,760 --> 01:31:32,580 Və bu bütün bir dump kimi Cari yaddaş məzmunu belə 1782 01:31:32,580 --> 01:31:36,670 Siz cəhd və müəyyən edə bilər ki, niyə faulted seg. 1783 01:31:36,670 --> 01:31:37,135 Bəli? 1784 01:31:37,135 --> 01:31:38,385 >> Auditoriya: [Işitilemez]? 1785 01:31:38,385 --> 01:31:40,855 1786 01:31:40,855 --> 01:31:45,460 >> Rob: Belə bir seqmentasiya günah vasitələri bir yığın daşqın var. 1787 01:31:45,460 --> 01:31:47,060 Belə ki, mütləq. 1788 01:31:47,060 --> 01:31:49,880 A seqmentasiyası günah olduğunu bildirir bir şəkildə toxunan yaddaş 1789 01:31:49,880 --> 01:31:50,880 siz olmamalıdır. 1790 01:31:50,880 --> 01:31:54,750 Belə ki, baş bir yol, zaman biz toxunan başlamaq, daşqın yığın 1791 01:31:54,750 --> 01:31:58,736 biz olmamalıdır ki, bir şəkildə yaddaş. 1792 01:31:58,736 --> 01:31:59,208 Bəli? 1793 01:31:59,208 --> 01:32:00,458 >> Auditoriya: [Işitilemez]? 1794 01:32:00,458 --> 01:32:03,456 1795 01:32:03,456 --> 01:32:05,830 >> Rob: sonsuz loop daxilində Belə. 1796 01:32:05,830 --> 01:32:08,770 Kimi, bu recursive sonsuz kimi loop və biz bir almaq 1797 01:32:08,770 --> 01:32:09,770 stack hər zaman nizama salmaq. 1798 01:32:09,770 --> 01:32:13,540 Amma yalnız müntəzəm daxili sonsuz one-- isə 1799 01:32:13,540 --> 01:32:16,390 yaxşı, hətta çap edək f 1800 01:32:16,390 --> 01:32:17,040 bir şey yoxdur. 1801 01:32:17,040 --> 01:32:18,390 Nə olursa olsun. 1802 01:32:18,390 --> 01:32:20,610 >> Biz əldə etmək fikrində deyilik başqa yığını çərçivəsində. 1803 01:32:20,610 --> 01:32:22,530 Biz yalnız loop saxlamaq olacaq bu bir təlimat artıq. 1804 01:32:22,530 --> 01:32:23,920 Yığını artan deyil. 1805 01:32:23,920 --> 01:32:27,290 Hər bir recursive ki, var zəng bizə bir yığını çərçivəsində verir. 1806 01:32:27,290 --> 01:32:31,231 Biz bir yığın daşqın almaq niyə ki. 1807 01:32:31,231 --> 01:32:31,728 Bəli? 1808 01:32:31,728 --> 01:32:38,189 >> Auditoriya: Belə ki, əgər siz almaq dedi loop isə, sonra [Işitilemez]? 1809 01:32:38,189 --> 01:32:42,000 >> Rob: əgər isə loop daxilində Belə ki, bir printf var idi, hələ ki 1810 01:32:42,000 --> 01:32:42,790 seg deyil günah. 1811 01:32:42,790 --> 01:32:46,090 Mən şeyi çaşdırmaq istəmədi. 1812 01:32:46,090 --> 01:32:46,610 Bu loop edirik. 1813 01:32:46,610 --> 01:32:48,225 Siz bir yığın almaq istiyorum Bu printf üçün nizama salmaq. 1814 01:32:48,225 --> 01:32:49,580 >> Sonra printf qayıtmaq istəyirəm. 1815 01:32:49,580 --> 01:32:50,280 Sonra yenə loop ediyorum. 1816 01:32:50,280 --> 01:32:51,460 Siz bir yığın almaq istiyorum Bu printf üçün nizama salmaq. 1817 01:32:51,460 --> 01:32:52,850 Bu qayıtmaq istəyirəm. 1818 01:32:52,850 --> 01:32:54,060 Single yığını çərçivəsində. 1819 01:32:54,060 --> 01:33:00,215 Belə ki, bu sonsuz əldə deyilik yığını çərçivəsində payavurma. 1820 01:33:00,215 --> 01:33:03,185 >> Auditoriya: [Işitilemez]? 1821 01:33:03,185 --> 01:33:04,040 >> Rob: Bəli. 1822 01:33:04,040 --> 01:33:09,360 Belə ki, bu yığın daşqın baş Bunların heç biri, çünki 1823 01:33:09,360 --> 01:33:11,600 foo zənglər qaytarılması olunur. 1824 01:33:11,600 --> 01:33:15,250 Biz geri, onda biz belə yığını çərçivəsində itirmək başlamaq. 1825 01:33:15,250 --> 01:33:17,870 Və sonra biz daşqın dəstə deyil. 1826 01:33:17,870 --> 01:33:20,070 Bir baza halda lazımdır ki var Sizin şəxsi funksiyaları üçün. 1827 01:33:20,070 --> 01:33:22,992 1828 01:33:22,992 --> 01:33:23,479 Bəli? 1829 01:33:23,479 --> 01:33:27,375 >> Auditoriya: potensial ölçüsü və mi yığın üçün eyni yığın 1830 01:33:27,375 --> 01:33:29,880 bütün proqramları? 1831 01:33:29,880 --> 01:33:31,910 >> Rob: Təxminən. 1832 01:33:31,910 --> 01:33:35,090 Olan yığını potensial ölçüsü və bütün proqramları eyni yığın? 1833 01:33:35,090 --> 01:33:37,180 Təxminən. 1834 01:33:37,180 --> 01:33:40,080 Bəzi Randomizasyon var burada yığını başlayır və 1835 01:33:40,080 --> 01:33:42,400 harada yığın başlayır. 1836 01:33:42,400 --> 01:33:45,870 Siz bütün çox var nə varsa qlobal dəyişənlər və hər şeyi, güc 1837 01:33:45,870 --> 01:33:49,520 bəzi kosmik götürmek Sizin yığın üçün. 1838 01:33:49,520 --> 01:33:54,060 >> 64-bit sistemi, faktiki olaraq sonsuz yaddaş var. 1839 01:33:54,060 --> 01:33:55,820 Yalnız çox var. 1840 01:33:55,820 --> 01:33:59,250 32 bit və 64 bit, arasında əhəmiyyətli bir fərqdir. 1841 01:33:59,250 --> 01:34:02,350 >> Siz daha çox bütövlükdə çox almaq olacaq 64-bit yığın və yığın space 1842 01:34:02,350 --> 01:34:05,810 Sistem daha çox var, çünki onlar istifadə edə bilərsiniz ki ünvanlanır. 1843 01:34:05,810 --> 01:34:09,360 Amma fərdi sistemi, o, yığını təxminən eyni miqdarda 1844 01:34:09,360 --> 01:34:10,785 və yığın sahəsi. 1845 01:34:10,785 --> 01:34:13,635 1846 01:34:13,635 --> 01:34:15,530 Bütün hüquqlar. 1847 01:34:15,530 --> 01:34:18,220 >> Belə ki, son şey tərtib edir. 1848 01:34:18,220 --> 01:34:19,810 Belə ki, bu proses bilməlidir. 1849 01:34:19,810 --> 01:34:22,240 Dörd böyük addımlar var. 1850 01:34:22,240 --> 01:34:24,400 Belə ki, birinci olmalıdır yadda asan ola bilər. 1851 01:34:24,400 --> 01:34:25,085 Pre-emal. 1852 01:34:25,085 --> 01:34:28,390 Bu pre prefiks var. 1853 01:34:28,390 --> 01:34:32,080 Belə ki, hər şeydən əvvəl gəlir. 1854 01:34:32,080 --> 01:34:34,000 >> Yadda şey hash edir. 1855 01:34:34,000 --> 01:34:37,250 Belə ki, hash müəyyən və hash daxildir o bütün. 1856 01:34:37,250 --> 01:34:39,560 O bütün pre-prosessoru var direktivləri. 1857 01:34:39,560 --> 01:34:42,030 Bu şeylər ki var pre-prosessor qayğısına qalır. 1858 01:34:42,030 --> 01:34:43,680 >> Belə ki, bir pre-prosessoru nə edir? 1859 01:34:43,680 --> 01:34:44,850 Bu, həqiqətən lal şey. 1860 01:34:44,850 --> 01:34:49,380 Bu qadir Bütün bu bütün var surəti, və cut və paste əməliyyatları. 1861 01:34:49,380 --> 01:34:51,790 >> Belə ki, hash standart I0 dot saat daxildir. 1862 01:34:51,790 --> 01:34:52,990 Bunu ki, nədir? 1863 01:34:52,990 --> 01:34:56,610 Bu standart I0 dot saat qənimətçilik fayl və üst onu sovuşdurmaq 1864 01:34:56,610 --> 01:34:58,960 yerdə hash daxildir deyir standart I0 dot h. 1865 01:34:58,960 --> 01:35:02,480 >> Və hər hansı bir hash biz ki, müəyyən görüldü, nə edir ki? 1866 01:35:02,480 --> 01:35:06,730 Onun hash ki, dəyəri çıxarmaq və sovuşdurmaq müəyyən edilir ki, müəyyən 1867 01:35:06,730 --> 01:35:08,500 Harada olursunuzsa olun dəyəri istifadə olunur. 1868 01:35:08,500 --> 01:35:13,400 Belə ki, preprocessor yalnız həqiqətən yoxdur sadə mətn əsaslı əməliyyatları. 1869 01:35:13,400 --> 01:35:15,870 Bu smart heç bir şey yoxdur. 1870 01:35:15,870 --> 01:35:18,920 Belə ki, başqa hər şey daha mürəkkəb. 1871 01:35:18,920 --> 01:35:22,970 >> Belə ki, indi ki, preprocessor deyil həyata, biz, həqiqətən, tərtib edir. 1872 01:35:22,970 --> 01:35:24,320 Belə ki, tərtib nə deməkdir? 1873 01:35:24,320 --> 01:35:27,310 Biz indi c kod olacaq toplaşmaq kodu. 1874 01:35:27,310 --> 01:35:27,570 Bəli? 1875 01:35:27,570 --> 01:35:28,820 >> Auditoriya: [Işitilemez]? 1876 01:35:28,820 --> 01:35:32,390 1877 01:35:32,390 --> 01:35:34,220 >> Rob: Bəli, biz tutuldu. 1878 01:35:34,220 --> 01:35:36,880 1879 01:35:36,880 --> 01:35:38,660 Belə ki, tərtib. 1880 01:35:38,660 --> 01:35:40,310 Biz toplaşmaq c gedən edirik. 1881 01:35:40,310 --> 01:35:42,470 Belə ki, bu faktiki dil dəyişiklik. 1882 01:35:42,470 --> 01:35:45,240 Özü tərtib gedən deməkdir yüksək səviyyəli dil 1883 01:35:45,240 --> 01:35:47,340 aşağı səviyyəli dil. 1884 01:35:47,340 --> 01:35:50,720 >> Və c yüksək səviyyədə dil toplaşmaq müqayisədə. 1885 01:35:50,720 --> 01:35:52,320 Montaj nədir? 1886 01:35:52,320 --> 01:35:56,440 Ki, öz təlimat, olduqca çox CPU üçün. 1887 01:35:56,440 --> 01:35:59,130 Lakin kompüter hələ yoxdur toplaşmaq anlamaq deyil. 1888 01:35:59,130 --> 01:36:01,570 Bu, yalnız olanları və adet sıfır anlayır. 1889 01:36:01,570 --> 01:36:06,160 Belə ki, növbəti addım, montaj edən Bu təlimat bizə gətirir 1890 01:36:06,160 --> 01:36:08,760 CPU anlayır və həqiqətən , onları tərcümə 1891 01:36:08,760 --> 01:36:10,820 olanları və adet sıfır. 1892 01:36:10,820 --> 01:36:13,570 >> Ikili toplaşmaq C belə. 1893 01:36:13,570 --> 01:36:15,870 Amma hələ bir yürütülebilir yoxdur. 1894 01:36:15,870 --> 01:36:19,550 Belə ki, CS50 kitabxana hesab. 1895 01:36:19,550 --> 01:36:23,070 Biz ikili ilə təmin GetString olan bu cs50 kitabxana, 1896 01:36:23,070 --> 01:36:24,400 və GetInt və bütün. 1897 01:36:24,400 --> 01:36:25,700 >> Amma cs50 kitabxana 1898 01:36:25,700 --> 01:36:27,650 və özünə yürütülebilir deyil. 1899 01:36:27,650 --> 01:36:29,570 Bu əsas funksiyası yoxdur. 1900 01:36:29,570 --> 01:36:32,230 Bu ikili bir dəstə var istifadə edə bilərsiniz ki,. 1901 01:36:32,230 --> 01:36:41,730 Belə ki, keçid, biz birlikdə bütün gətirir necə Bu müxtəlif ikili faylları 1902 01:36:41,730 --> 01:36:43,110 faktiki yürütülebilir daxil. 1903 01:36:43,110 --> 01:36:45,900 Siz yazın ki, One dot dot zərbə. 1904 01:36:45,900 --> 01:36:51,660 >> Belə ki, bu fayl kimi olduğunu yazdı - nə sizin proqram That 1905 01:36:51,660 --> 01:36:53,620 Ceaser dot c. 1906 01:36:53,620 --> 01:36:55,100 Amma indi tərtib edilmişdir ikili aşağı. 1907 01:36:55,100 --> 01:36:56,480 Belə ki, Ceaser dot o. 1908 01:36:56,480 --> 01:36:59,620 Bu, bizim cs50 ikili kitabxana edir. 1909 01:36:59,620 --> 01:37:02,284 Onlar birlikdə etdiyiniz bir yürütülebilir daxil. 1910 01:37:02,284 --> 01:37:02,758 Bəli? 1911 01:37:02,758 --> 01:37:04,008 >> Auditoriya: [Işitilemez]? 1912 01:37:04,008 --> 01:37:08,800 1913 01:37:08,800 --> 01:37:12,710 >> Rob: Belə ki, ilk daxildir, xatırlayıram daxil həqiqətən bir deyil hash 1914 01:37:12,710 --> 01:37:13,810 pre-prosessor addım. 1915 01:37:13,810 --> 01:37:14,750 Amma ki, ayrı-ayrı deyil. 1916 01:37:14,750 --> 01:37:20,730 Siz hansı funksiyaları istifadə edirsinizsə ki, sonra bir fayl kənarda, 1917 01:37:20,730 --> 01:37:26,100 yox, bir şey keçid ehtiyac yoxdur hər şey var-ci ildən. 1918 01:37:26,100 --> 01:37:30,310 >> Bildirib ki, printf bağlıdır olunur. 1919 01:37:30,310 --> 01:37:32,820 Əgər printf istifadə əgər, ki, bir şey var ki, bağlı olmalıdır 1920 01:37:32,820 --> 01:37:35,740 ki, yazmadım, çünki. 1921 01:37:35,740 --> 01:37:39,530 Və əslində, printf avtomatik bağlıdır. 1922 01:37:39,530 --> 01:37:42,760 Siz necə command line və ya siz görmək etmək yazın 1923 01:37:42,760 --> 01:37:46,690 link olan dash l cs50, Bu cs50 kitabxana? 1924 01:37:46,690 --> 01:37:49,070 Kimi printf, və stuff gedir avtomatik olaraq bağlıdır. 1925 01:37:49,070 --> 01:37:51,730 1926 01:37:51,730 --> 01:37:53,930 Şey haqqında hər hansı digər suallar? 1927 01:37:53,930 --> 01:37:56,280 >> Auditoriya: [Işitilemez]? 1928 01:37:56,280 --> 01:37:58,300 >> Rob: əlaqələndirilməsi? 1929 01:37:58,300 --> 01:38:03,450 Biz bütöv bir dəstə var müxtəlif ikili faylları. 1930 01:38:03,450 --> 01:38:06,410 Bu canonical nümunəsidir Biz istifadə cs50 kitabxana var. 1931 01:38:06,410 --> 01:38:09,960 Biz tərtib və sizin üçün verilmişdir Bu cs50 kitabxana üçün ikili. 1932 01:38:09,960 --> 01:38:12,410 >> Siz GetString istifadə etmək istədiyiniz proqram. 1933 01:38:12,410 --> 01:38:14,750 Beləliklə, siz getmək və GetString istifadə edin. 1934 01:38:14,750 --> 01:38:19,700 Amma mənim ikili kodu olmadan GetString, sizin kodu tərtib edərkən 1935 01:38:19,700 --> 01:38:23,140 aşağı, həqiqətən run edə bilərsiniz proqram GetString String çünki 1936 01:38:23,140 --> 01:38:25,080 hələ tam müəyyən deyil. 1937 01:38:25,080 --> 01:38:29,220 >> Siz mənim ikili keçid zaman yalnız bütün ki, indi GetString edir 1938 01:38:29,220 --> 01:38:31,130 sağ, mən həqiqətən bilərsiniz GetString icra. 1939 01:38:31,130 --> 01:38:32,330 Mənim fayl tamamlandı. 1940 01:38:32,330 --> 01:38:34,208 Mən bu çalıştırabilirsiniz. 1941 01:38:34,208 --> 01:38:34,697 Bəli? 1942 01:38:34,697 --> 01:38:37,631 >> Auditoriya: çevirmək birləşdirən edir ikili çalıştırılabilir üçün? 1943 01:38:37,631 --> 01:38:42,032 Digər yoxdur, belə ki, hətta kitabxana, hələ olmaz 1944 01:38:42,032 --> 01:38:44,477 tərcümə üçün zəruri Bu [Işitilemez]? 1945 01:38:44,477 --> 01:38:48,640 >> Rob: Belə ki, bir yürütülebilir ikili hələ. 1946 01:38:48,640 --> 01:38:51,750 Bu, sadəcə bir bütün birləşən var binaries dəstə. 1947 01:38:51,750 --> 01:38:55,124 1948 01:38:55,124 --> 01:38:56,591 >> Auditoriya: çox təşəkkür edirik. 1949 01:38:56,591 --> 01:38:58,560 >> Rob: No problem. 1950 01:38:58,560 --> 01:38:59,540 Hər hansı digər suallar? 1951 01:38:59,540 --> 01:39:02,001 Əks halda, biz müəyyən edirik. 1952 01:39:02,001 --> 01:39:02,690 Bütün hüquqlar. 1953 01:39:02,690 --> 01:39:02,990 Thanks. 1954 01:39:02,990 --> 01:39:03,590 >> [Alqış] 1955 01:39:03,590 --> 01:39:04,490 >> Auditoriya: Sağ olun. 1956 01:39:04,490 --> 01:39:05,740 >> Rob: Bəli. 1957 01:39:05,740 --> 01:39:06,582