1 00:00:00,000 --> 00:00:01,110 >> [MUSIC ifa] 2 00:00:01,110 --> 00:00:10,567 3 00:00:10,567 --> 00:00:11,650 DAVID J. MALAN: Bütün hüququ. 4 00:00:11,650 --> 00:00:15,610 Bu CS50 və bu Həftə dörd sonu. 5 00:00:15,610 --> 00:00:19,420 Və mövzulardan biri bu gün digital Suclari ki, 6 00:00:19,420 --> 00:00:20,989 məlumat bərpa sənəti. 7 00:00:20,989 --> 00:00:22,780 Və həqiqətən, baxmayaraq Siz ortasında istəyirik 8 00:00:22,780 --> 00:00:25,070 İndi Sülh Üç da və Breakout, gələn həftə, 9 00:00:25,070 --> 00:00:27,880 diqqət olacaq məhz bu domain. 10 00:00:27,880 --> 00:00:30,686 >> Keyfiyyətli iş belə bir mən heç idi, geri məktəbin məzunu idi 11 00:00:30,686 --> 00:00:33,560 Mən yerli iş zaman Middlesex County District Attorney Agentliyi 12 00:00:33,560 --> 00:00:34,950 ofis, bunu Suclari iş. 13 00:00:34,950 --> 00:00:37,450 Belə ki, mahiyyətcə, Massachusetts Dövlət Polis, münasibətilə, 14 00:00:37,450 --> 00:00:40,100 hallarda işləyən zaman ki sabit diskler kimi şeylər gətirmək 15 00:00:40,100 --> 00:00:42,185 və disketleri və yaddaş kartları və s. 16 00:00:42,185 --> 00:00:44,060 Və onlar əl atsınlar mənim və mentoru, 17 00:00:44,060 --> 00:00:48,070 və bizim məqsədimiz dəlil tapmaq idi, Bu media hər hansı bir var idi, əgər. 18 00:00:48,070 --> 00:00:50,700 İndi, siz gördük bilər qoyarkən Suclari bu dünya 19 00:00:50,700 --> 00:00:53,000 media, televiziya və film. 20 00:00:53,000 --> 00:00:55,730 Amma iş mən və daresay ki, dünya, 21 00:00:55,730 --> 00:00:57,550 Siz onu görmək olardı kimi çox deyil. 22 00:00:57,550 --> 00:01:00,794 Nin bir nəzər salaq nə Siz yəqin ki, gördüm. 23 00:01:00,794 --> 00:01:01,460 [Video playback] 24 00:01:01,460 --> 00:01:02,930 -Ok. 25 00:01:02,930 --> 00:01:05,380 İndi sizə yaxşı bir nəzər almaq edək. 26 00:01:05,380 --> 00:01:06,850 >> [MUSIC ifa] 27 00:01:06,850 --> 00:01:12,260 28 00:01:12,260 --> 00:01:12,932 >> Onu tutun. 29 00:01:12,932 --> 00:01:13,657 Geri Run. 30 00:01:13,657 --> 00:01:14,733 >> Bir dəqiqə gözləyin. 31 00:01:14,733 --> 00:01:15,233 Doğru getmək. 32 00:01:15,233 --> 00:01:16,371 33 00:01:16,371 --> 00:01:16,870 -Var. 34 00:01:16,870 --> 00:01:17,369 Ki dondurmaq. 35 00:01:17,369 --> 00:01:17,930 Tam ekran. 36 00:01:17,930 --> 00:01:18,376 >> -Ok. 37 00:01:18,376 --> 00:01:18,875 Ki dondurmaq. 38 00:01:18,875 --> 00:01:20,160 Siz ki, up -Tighten? 39 00:01:20,160 --> 00:01:22,126 >> Ki, da -Vector geri təkər ilə oğlan. 40 00:01:22,126 --> 00:01:24,435 >> Burada bu yerində -Zoom. 41 00:01:24,435 --> 00:01:28,580 >> Doğru avadanlıq ile, image genişləndirilmiş və itilənmiş bilər. 42 00:01:28,580 --> 00:01:29,330 >> Ki, hansı var? 43 00:01:29,330 --> 00:01:30,780 >> -Bu Bir genişləndirilməsi proqramı var. 44 00:01:30,780 --> 00:01:32,170 >> Ki, hər hansı aydın bilərsinizmi? 45 00:01:32,170 --> 00:01:33,070 >> Mən bilmirəm. 46 00:01:33,070 --> 00:01:34,150 Onu artırmaq edək. 47 00:01:34,150 --> 00:01:35,440 >> Gücləndirilməsi Bölmə A6. 48 00:01:35,440 --> 00:01:36,570 49 00:01:36,570 --> 00:01:38,562 Mən ətraflı etmiş, and-- 50 00:01:38,562 --> 00:01:40,020 Mən artırmaq üçün kifayət qədər var edirəm. 51 00:01:40,020 --> 00:01:40,976 Mənim ekran üçün buraxın. 52 00:01:40,976 --> 00:01:42,559 >> Mən onun gözü əks etmiş. 53 00:01:42,559 --> 00:01:44,322 Let bu çalıştırmak video genişləndirilməsi. 54 00:01:44,322 --> 00:01:45,210 >> -Edgar, Bu gücləndirə bilər? 55 00:01:45,210 --> 00:01:45,710 >> On Hang. 56 00:01:45,710 --> 00:01:47,570 57 00:01:47,570 --> 00:01:49,458 >> Bu əks üzərində işləyir -I've. 58 00:01:49,458 --> 00:01:50,402 >> -Var Kiminsə əks. 59 00:01:50,402 --> 00:01:50,902 >> -Reflection. 60 00:01:50,902 --> 00:01:52,870 Insanın üzünü əks -Var var. 61 00:01:52,870 --> 00:01:53,694 >> The əks! 62 00:01:53,694 --> 00:01:54,610 Əks -Var var. 63 00:01:54,610 --> 00:01:55,880 Güzgü üzrə Zoom. 64 00:01:55,880 --> 00:01:57,860 Siz əksini görürük. 65 00:01:57,860 --> 00:01:59,630 >> Burada image artırmaq olarmı? 66 00:01:59,630 --> 00:02:00,377 67 00:02:00,377 --> 00:02:01,210 Siz artırmaq olarmı? 68 00:02:01,210 --> 00:02:02,190 Siz artırmaq olarmı? 69 00:02:02,190 --> 00:02:03,066 Biz bu artırmaq olarmı? 70 00:02:03,066 --> 00:02:03,898 Siz artırmaq olarmı? 71 00:02:03,898 --> 00:02:04,740 Bir ikinci tutun. 72 00:02:04,740 --> 00:02:05,281 Mən artırmaq lazımdır. 73 00:02:05,281 --> 00:02:06,470 Qapı üzrə Zoom. 74 00:02:06,470 --> 00:02:06,970 10 Times. 75 00:02:06,970 --> 00:02:08,009 Zoom. 76 00:02:08,009 --> 00:02:08,509 Da Move. 77 00:02:08,509 --> 00:02:09,340 Daha çox. 78 00:02:09,340 --> 00:02:10,094 Gözləyin dayandırmaq. 79 00:02:10,094 --> 00:02:10,750 Stop. 80 00:02:10,750 --> 00:02:11,250 Onu -Pause. 81 00:02:11,250 --> 00:02:13,542 Bizə 75 dərəcə qayıt şaquli ətrafında edin. 82 00:02:13,542 --> 00:02:14,750 83 00:02:14,750 --> 00:02:16,127 >> Stop. 84 00:02:16,127 --> 00:02:19,330 Hissəsi geri dön qapı yenidən. 85 00:02:19,330 --> 00:02:21,420 >> Bitmap bilər ki, bir image Gücləndirici Got? 86 00:02:21,420 --> 00:02:24,420 >> Biz Pradeep Singh istifadə edə bilərsiniz -Bəlkə üsul Windows daxil görmək üçün. 87 00:02:24,420 --> 00:02:25,902 >> Bu proqram sənətinin dövlətdir. 88 00:02:25,902 --> 00:02:26,866 >> The eigenvalue off edir. 89 00:02:26,866 --> 00:02:29,758 >> Sağ -Ilə alqoritmlərin birləşməsi 90 00:02:29,758 --> 00:02:32,168 >> O götürülmüş işıqlandırma Növbəti səviyyəsi alqoritmlər, 91 00:02:32,168 --> 00:02:34,110 və mən onları istifadə edə bilərsiniz Bu fotoşəkil artırmaq. 92 00:02:34,110 --> 00:02:36,840 >> On Lock və z-ox genişləndirmək. 93 00:02:36,840 --> 00:02:37,351 >> Gücləndirilməsi. 94 00:02:37,351 --> 00:02:37,850 Gücləndirilməsi. 95 00:02:37,850 --> 00:02:38,720 Gücləndirilməsi. 96 00:02:38,720 --> 00:02:40,070 -Freeze Və artırmaq. 97 00:02:40,070 --> 00:02:43,420 [END Video playback] 98 00:02:43,420 --> 00:02:45,830 DAVID J. MALAN: Yəni həmin bütün sözlər, lakin onlar deyil 99 00:02:45,830 --> 00:02:47,870 düzgün cümlələr istifadə. 100 00:02:47,870 --> 00:02:52,370 Və həqiqətən gələcəkdə, istənilən vaxt, , kimsə söz demək eşitmək edin, 101 00:02:52,370 --> 00:02:54,250 Yalnız bir az kıkırdama "artırmaq". 102 00:02:54,250 --> 00:02:57,190 Siz artırmaq üçün cəhd zaman, Məsələn, bu nə edir. 103 00:02:57,190 --> 00:02:58,580 >> Belə ki, burada bir parlaq şəkil var. 104 00:02:58,580 --> 00:02:59,720 Bu CS50 öz Daven edir. 105 00:02:59,720 --> 00:03:03,740 Və biz etmək istəyirdi ki, güman onun göz parıldamaq üzrə diqqət, 106 00:03:03,740 --> 00:03:05,870 və ya əks aydın idi ki, pis oğlan 107 00:03:05,870 --> 00:03:07,820 təhlükəsizlik kamera tərəfindən əsir. 108 00:03:07,820 --> 00:03:10,330 Bu zaman nə olar Bir image zoom 109 00:03:10,330 --> 00:03:14,060 yalnız məhdud sayda var Bugün bit. 110 00:03:14,060 --> 00:03:15,420 >> Yəni siz almaq nə edir. 111 00:03:15,420 --> 00:03:19,190 Və həqiqətən, Daven göz , bəlkə altı piksel lakin dörd 112 00:03:19,190 --> 00:03:22,110 ki, məhz nə bəstələmək orada glimmering edilib. 113 00:03:22,110 --> 00:03:25,890 Belə ki, Problem Set dörd nəticədə olacaq xüsusilə, bu dünya araşdırmaq 114 00:03:25,890 --> 00:03:28,090 bir şey təbiəti biz fayl i / o, harada zəng 115 00:03:28,090 --> 00:03:31,000 i / o yalnız bir xülya yoludur giriş və çıxış etdi. 116 00:03:31,000 --> 00:03:34,280 >> Belə ki, indiyədək, qarşılıqlı bütün Biz bir kompüter yaşadığınız 117 00:03:34,280 --> 00:03:36,770 ilə əsasən olmuşdur sizin klaviatura və ekran, 118 00:03:36,770 --> 00:03:40,770 lakin sabit disk ilə qədər deyil, və ya olanları kənarda faylları qənaət 119 00:03:40,770 --> 00:03:41,620 özünüz yazın. 120 00:03:41,620 --> 00:03:44,570 Proqramları bu günə qədər deyil, yaradılması və qənaət edilmişdir 121 00:03:44,570 --> 00:03:46,270 və öz faylları yenilənməsi. 122 00:03:46,270 --> 00:03:47,150 >> Yaxşı, bir fayl var? 123 00:03:47,150 --> 00:03:48,105 Yaxşı, bir JPEG kimi bir şey. 124 00:03:48,105 --> 00:03:50,520 Bu güc bir resim deyil və ya Facebook yüklemek, 125 00:03:50,520 --> 00:03:51,690 və ya hər hansı web baxın. 126 00:03:51,690 --> 00:03:54,460 Həqiqətən, şəkil biz yalnız Daven və mişar bir JPEG idi. 127 00:03:54,460 --> 00:03:57,570 Və nə maraqlı JPEGs kimi faylları haqqında 128 00:03:57,570 --> 00:04:02,170 Onlar müəyyən edilə bilər ki, adətən, bit müəyyən nümunələri ilə. 129 00:04:02,170 --> 00:04:05,200 >> Başqa sözlə, bu nə bir GIF JPEG fərqləndirir 130 00:04:05,200 --> 00:04:08,109 Word bir PING'i olan bir Excel fayl sənəd? 131 00:04:08,109 --> 00:04:09,900 Bəli, yalnız müxtəlif var bit nümunələri. 132 00:04:09,900 --> 00:04:12,820 Və bu müxtəlif nümunələri adətən bu faylların əvvəlində. 133 00:04:12,820 --> 00:04:18,200 >> Sizin kompüter Word açır zaman, belə ki, doc, və ya kompüter JPEG açılır zaman, 134 00:04:18,200 --> 00:04:20,940 Bu adətən görünür fayl ilk bir neçə bit. 135 00:04:20,940 --> 00:04:24,059 Və bir model tanısa, Bu oh, bu, bir şəkil, deyir. 136 00:04:24,059 --> 00:04:25,850 Mənə keçirmək edək bir qrafik kimi istifadəçi. 137 00:04:25,850 --> 00:04:27,870 Və ya, oh, bu Word doc kimi görünür. 138 00:04:27,870 --> 00:04:30,480 Mənə bir esse kimi istifadəçi onu göstərmək bildirin. 139 00:04:30,480 --> 00:04:33,020 >> Belə ki, məsələn, JPEGs, Bu, çıxır 140 00:04:33,020 --> 00:04:35,460 kifayət qədər mürəkkəb başlıq altında. 141 00:04:35,460 --> 00:04:40,140 Amma ən hər ilk üç bytes JPEG bu üç ədəd ilə başlayın. 142 00:04:40,140 --> 00:04:44,680 Belə ki, byte sıfır, bir, iki, var ən hər JPEG, 255, sonra sayı 143 00:04:44,680 --> 00:04:46,675 216, sonra sayı 255. 144 00:04:46,675 --> 00:04:48,990 >> Və siz edə bilərsiniz nə gələn həftə bunu başlamaq üçün 145 00:04:48,990 --> 00:04:52,920 həqiqətən altında poking olunur JPEGs kimi faylları başlıq 146 00:04:52,920 --> 00:04:57,210 və bitmap faylları kimi, və görən həmişə kimi uzun olub 147 00:04:57,210 --> 00:04:58,650 Bir kompüter istifadə etdiyiniz kimi. 148 00:04:58,650 --> 00:05:01,860 >> Amma adətən var deyil nə oxşar decimal nömrələri kimi yazılmışdır. 149 00:05:01,860 --> 00:05:04,620 Kompüter elm deyil ondalık danışmaq edirlər. 150 00:05:04,620 --> 00:05:06,139 Onlar, həqiqətən, ikili danışmaq deyil. 151 00:05:06,139 --> 00:05:07,930 Adətən, biz istəyirik nömrələri ifadə etmək, 152 00:05:07,930 --> 00:05:10,710 Biz, həqiqətən, hexadecimal istifadə, siz geri bilər 153 00:05:10,710 --> 00:05:13,027 Problem Set, demək ki, Etiraz edən biri, 154 00:05:13,027 --> 00:05:14,610 Siz müxtəlif sistem haqqında düşünmək. 155 00:05:14,610 --> 00:05:17,170 >> Biz, əlbəttə, tanış doqquz vasitəsilə decimal sıfır ilə. 156 00:05:17,170 --> 00:05:18,215 Biz ikili danışdıq. 157 00:05:18,215 --> 00:05:20,710 Və biz, həqiqətən, yoxdur çox burada istifadə etmək 158 00:05:20,710 --> 00:05:22,470 out, kompüter istifadə edəcək. 159 00:05:22,470 --> 00:05:24,900 Amma proqramçılar çox olacaq tez-tez, lakin həmişə, 160 00:05:24,900 --> 00:05:29,360 yalnız deməkdir, hexadecimal istifadə Sizin əlifbası 16 məktublar 161 00:05:29,360 --> 00:05:31,330 kimi iki və ya 10 fərqli. 162 00:05:31,330 --> 00:05:34,530 >> Belə ki, necə yüksək saymaq yoxdur hexadecimal doqquz daha çox? 163 00:05:34,530 --> 00:05:41,120 Siz getmək 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, yalnız konvensiya c, d, e, f, b. 164 00:05:41,120 --> 00:05:43,540 Amma nə əsas var ki, hər nə bu bir rəmzidir. 165 00:05:43,540 --> 00:05:44,340 Heç 10 var. 166 00:05:44,340 --> 00:05:48,400 Hər çünki, heç bir 11, başına se var Sizin rəqəm yalnız ondalık kimi 167 00:05:48,400 --> 00:05:51,940 yalnız ikili kimi, yalnız olmalıdır Konvensiya ilə bir xarakter olması. 168 00:05:51,940 --> 00:05:55,280 >> Sonra biz əlifbası Belə ki, Hexadecimal üçün bizim sərəncamında. 169 00:05:55,280 --> 00:05:58,600 Belə ki, bir JPEG, əgər kimi görünür o ilk üç yazmaq idi 170 00:05:58,600 --> 00:06:01,980 , ondalık kimi bayt lakin Məsələn, hexadecimal kimi? 171 00:06:01,980 --> 00:06:03,640 Və nə hex ki, faydalı hətta bütün var? 172 00:06:03,640 --> 00:06:05,290 >> Yaxşı, Məsələn bir göz atınız. 173 00:06:05,290 --> 00:06:09,030 Mən bit yazmaq əgər Belə ki, bu kəsir numbers-- etdirir 174 00:06:09,030 --> 00:06:12,450 bu bir az paslı ola bilər İndi bir neçə həftə, 175 00:06:12,450 --> 00:06:14,820 sol bir və ancaq sağ olduqca asandır. 176 00:06:14,820 --> 00:06:17,990 255 ən böyük sayı biz idi səkkiz bit ilə təmsil edə bilər. 177 00:06:17,990 --> 00:06:18,820 Bu, bütün olanlar oldu. 178 00:06:18,820 --> 00:06:21,320 Belə ki, yumşaq var ki, yalnız bir maraqlı orta biridir. 179 00:06:21,320 --> 00:06:24,700 Və cür həyata əgər riyaziyyat, siz, həqiqətən, anlamak edəcək 180 00:06:24,700 --> 00:06:27,949 bir o model və adet sıfır 216 təmsil edir. 181 00:06:27,949 --> 00:06:30,240 Belə ki, yalnız müəyyən edək İndi bu doğru olduğunu. 182 00:06:30,240 --> 00:06:31,730 Amma niyə bu maraqlıdır? 183 00:06:31,730 --> 00:06:33,970 >> Yaxşı, bir byte, əlbəttə, səkkiz bit edir. 184 00:06:33,970 --> 00:06:38,980 Və hesab edirəm ki, əgər çıxır ki, dörd bit iki chunks olaraq bir byte, 185 00:06:38,980 --> 00:06:39,500 bu kimi. 186 00:06:39,500 --> 00:06:41,000 Mənə yalnız bir yer əlavə edək. 187 00:06:41,000 --> 00:06:42,550 Belə ki, əvvəl, sonra. 188 00:06:42,550 --> 00:06:46,520 Mən yalnız bəzi ağ kosmik əlavə etdik Burada vizual xatirinə. 189 00:06:46,520 --> 00:06:51,840 Biz necə təmsil edə bilər, demək, hexadecimal bit hər dörd, 190 00:06:51,840 --> 00:06:52,880 dörd bit hər set? 191 00:06:52,880 --> 00:06:56,420 >> Məsələn, sol belə indi biz ikili 1111 var. 192 00:06:56,420 --> 00:07:00,420 Ondalık ki sayı nədir, Siz riyaziyyat həyata əgər? 193 00:07:00,420 --> 00:07:03,780 Siz isə yer var, ikilər yer, dörd ayaq yer, və səkkizinci yer. 194 00:07:03,780 --> 00:07:04,341 >> Auditoriya: 15. 195 00:07:04,341 --> 00:07:05,340 DAVID J. MALAN: Bu 15 var. 196 00:07:05,340 --> 00:07:08,340 Belə ki, biz səkkiz plus dörd əgər üstəgəl iki plus bir, biz 15 almaq. 197 00:07:08,340 --> 00:07:11,790 Mən aşağıda 15 yazmaq 1111, lakin burada bütün point 198 00:07:11,790 --> 00:07:13,190 hexadecimal decimal deyil. 199 00:07:13,190 --> 00:07:17,310 Belə ki, əvəzinə aşağı yazılı 15, 1-5, Mən hex ki, yazmaq üçün gedirəm 200 00:07:17,310 --> 00:07:22,311 Siz əgər, geri hesab əgər f vasitəsilə sıfır, nə 15 olacaq? 201 00:07:22,311 --> 00:07:22,810 Auditoriya: f. 202 00:07:22,810 --> 00:07:24,434 DAVID J. MALAN: Belə ki, onun f çıxır. 203 00:07:24,434 --> 00:07:29,140 Və söyləyərək işləyə bilər, 10 Əgər yaxşı, sonra OK, f 15. 204 00:07:29,140 --> 00:07:33,250 Belə ki, həqiqətən, biz yenidən yazmaq bilər f f kimi nömrələri bu eyni. 205 00:07:33,250 --> 00:07:35,750 Və sonra biz riyaziyyat bir az əgər, biz d ki, anlamak lazımdır. 206 00:07:35,750 --> 00:07:38,650 Səkkiz olduqca asandır, çünki biz səkkizinci yerdə bir var. 207 00:07:38,650 --> 00:07:40,620 Və sonra, biz f f-nin bir neçə daha çox var. 208 00:07:40,620 --> 00:07:44,669 >> Belə ki, nə insanlar Konvensiya ilə nə edirlər Onlar istifadə edərkən hexadecimal onlar yalnız 209 00:07:44,669 --> 00:07:47,710 daha müfəssəl şəkildə bu bir az yazmaq, ağ kosmik ən qurtarmaq. 210 00:07:47,710 --> 00:07:50,890 Və yalnız super aydın olmalıdır Bu hexadecimal ki, oxucu, 211 00:07:50,890 --> 00:07:54,670 arasında sadə konqres insanlar sıfır yazmaq 212 00:07:54,670 --> 00:07:58,000 başqa bir mənası olan x, vizual identifikatoru çox, 213 00:07:58,000 --> 00:07:59,590 Burada hex sayı gəlir. 214 00:07:59,590 --> 00:08:04,210 >> Və sonra, siz f iki rəqəm qoymaq bu halda f, sonra d a, sonra f f. 215 00:08:04,210 --> 00:08:06,700 Belə ki, uzun hekayə qısa, hexadecimal yalnız çalışır 216 00:08:06,700 --> 00:08:11,990 faydalı ola hər çünki onun rəqəm, f vasitəsilə sıfır, mükəmməl xətləri 217 00:08:11,990 --> 00:08:13,880 dörd bit model ilə. 218 00:08:13,880 --> 00:08:18,080 >> Iki hexadecimal rəqəm var Belə ki, sıfır təkrar F vasitəsilə, 219 00:08:18,080 --> 00:08:20,256 ki, mükəmməl verir səkkiz bit və ya bir byte. 220 00:08:20,256 --> 00:08:22,380 Bu çalışır nə ki, var şərti faydalı ola bilər. 221 00:08:22,380 --> 00:08:24,990 Heç bir intellektual var həqiqətən kənarda content, 222 00:08:24,990 --> 00:08:27,010 onun faktiki kommunal başqa. 223 00:08:27,010 --> 00:08:29,310 >> İndi JPEGs yalnız deyil qrafik üçün format fayl. 224 00:08:29,310 --> 00:08:33,230 Siz var ki, xatırlayıram bilər Dünyada bu kimi faylları, 225 00:08:33,230 --> 00:08:34,830 ən azı bir neçə il. 226 00:08:34,830 --> 00:08:37,580 >> Belə ki, bu həqiqətən Windows XP yüklü 227 00:08:37,580 --> 00:08:39,960 Dünyada kompüter milyonlarla. 228 00:08:39,960 --> 00:08:43,000 Və bu bitmap fayl, BMP idi. 229 00:08:43,000 --> 00:08:47,690 Və bitmap fayl kimi növbəti görəcəksiniz həftə, yalnız nöqtələr bir model deməkdir, 230 00:08:47,690 --> 00:08:51,710 onlar deyilir kimi piksel, həqiqətən, bit xəritəsi. 231 00:08:51,710 --> 00:08:55,160 >> Belə ki, nə olsa da, maraqlı, bu fayl formatı, BMP haqqında deyil, 232 00:08:55,160 --> 00:08:58,590 ki, başlıq altında, onu Yalnız üç bayt daha var 233 00:08:58,590 --> 00:09:01,020 ki, onun mövzu bəstələmək , ilk bir neçə sokması danışmaq. 234 00:09:01,020 --> 00:09:03,330 Bu, həqiqətən bir az görünür ilk baxışda çətin. 235 00:09:03,330 --> 00:09:04,704 Və siz P set bu görəcəksiniz. 236 00:09:04,704 --> 00:09:06,810 Və bir şey əldə Bu xüsusilə indi 237 00:09:06,810 --> 00:09:10,720 yalnız fakt kimi, belə ki, vacib deyil hər bitmap başında 238 00:09:10,720 --> 00:09:13,823 fayl, bir qrafik format, ədəd bütöv bir dəstə var. 239 00:09:13,823 --> 00:09:14,980 240 00:09:14,980 --> 00:09:16,720 >> İndi Microsoft, bu formatda müəllifi, 241 00:09:16,720 --> 00:09:18,820 o zəng etmək üçün çalışır şeyi ints və chars 242 00:09:18,820 --> 00:09:22,259 və üzüb gedirdi amma söz və d söz və longs və bytes. 243 00:09:22,259 --> 00:09:23,800 Belə ki, onlar yalnız müxtəlif data növləri istəyirik. 244 00:09:23,800 --> 00:09:25,170 Onlar müxtəlif adlar edirik eyni şey. 245 00:09:25,170 --> 00:09:26,740 Amma P Set Dördlü ki, görürsünüz. 246 00:09:26,740 --> 00:09:31,450 >> Amma bu demək deyil ki, bir insan əgər bəzi BMP faylı cüt klik onun 247 00:09:31,450 --> 00:09:35,015 və ya onun sabit, və bir pəncərə açılır ona ki, image göstərən up, 248 00:09:35,015 --> 00:09:38,500 ki, əməliyyat, çünki baş Sistem ehtimalla yalnız fərq 249 00:09:38,500 --> 00:09:41,460 Bu BMP fayl uzantısı fayl adı, 250 00:09:41,460 --> 00:09:45,010 həm də fakt var ki, bəzi bit model konvensiya 251 00:09:45,010 --> 00:09:47,490 çox başında ki, bitmap fayl. 252 00:09:47,490 --> 00:09:50,270 >> Amma indi diqqət edək Belə bir mürəkkəb fayl, 253 00:09:50,270 --> 00:09:52,120 lakin əvəzinə bu kimi bir şey. 254 00:09:52,120 --> 00:09:55,190 Mən gedit burada düşünək yalnız əvvəlinə var 255 00:09:55,190 --> 00:09:57,070 olduqca sadə bir proqram. 256 00:09:57,070 --> 00:09:58,860 Mən bəzi üst daxildir var. 257 00:09:58,860 --> 00:10:02,120 İndi mən var #include "structs.h", lakin Mən bir anda geri gəlmək lazımdır. 258 00:10:02,120 --> 00:10:03,974 Amma indi bu faydalıdır. 259 00:10:03,974 --> 00:10:05,890 Belə ki, bu proqram ki, həyata olacaq 260 00:10:05,890 --> 00:10:07,335 , qeydiyyatçının bazası kimi. 261 00:10:07,335 --> 00:10:09,710 Belə ki, tələbə bir verilənlər bazası, və dünyanın hər tələbə 262 00:10:09,710 --> 00:10:13,190 yəqin ki, bir ad və bir ev var və digər məhsulları, lakin biz sadə saxlamaq lazımdır. 263 00:10:13,190 --> 00:10:15,140 Hər tələbə bir ad və bir ev var. 264 00:10:15,140 --> 00:10:17,700 >> Mən yazmaq istəyirdi əgər Belə ki, kimin məqsədi həyat proqramı 265 00:10:17,700 --> 00:10:19,860 yalnız təkrarlamaq oldu üç qədər sıfır, 266 00:10:19,860 --> 00:10:22,070 üç tələbə əgər Harvard Universiteti. 267 00:10:22,070 --> 00:10:25,350 Mən yalnız GetString istifadə edərək, almaq istəyirəm, hər bir tələbə adı və ev, 268 00:10:25,350 --> 00:10:26,600 və sonra yalnız çap. 269 00:10:26,600 --> 00:10:28,630 >> Bu sort həftəsi kimi One, həftə iki stuff indi, 270 00:10:28,630 --> 00:10:30,810 Mən yalnız bir istədiyiniz loop və ya kimi bir şey. 271 00:10:30,810 --> 00:10:34,500 Mən GetString bir neçə zəng etmək istəyirəm dəfə, və sonra bir neçə dəfə f çap. 272 00:10:34,500 --> 00:10:37,340 Mən baxmayaraq ki, bunu necə, bir adı və bir ev həm 273 00:10:37,340 --> 00:10:39,070 Hər bir tələbə üçün cəlb olunur? 274 00:10:39,070 --> 00:10:42,830 >> Belə ki, mənim ilk instinkt bilər bu kimi bir şey ola bilər. 275 00:10:42,830 --> 00:10:49,620 Mən ilk də mənə ver, demək olar ki, , adları strings bir sıra deyirlər. 276 00:10:49,620 --> 00:10:51,530 Mən bir Hardcode üç burada istəmirəm. 277 00:10:51,530 --> 00:10:53,064 Mən orada qoymaq istəyirsiniz? 278 00:10:53,064 --> 00:10:55,730 Yalnız çünki, STUDENTS belə üst elan daimi, 279 00:10:55,730 --> 00:10:57,860 Mən hardcode yoxdur, yalnız belə çox yerlərdə üç. 280 00:10:57,860 --> 00:11:00,859 Bu yolla, I, bir yerini dəyişə bilərsiniz və hər yerdə bir dəyişiklik təsir göstərir. 281 00:11:00,859 --> 00:11:04,470 Və sonra, mən nə edə bilər string TƏLƏBƏLƏRİ yerləşir. 282 00:11:04,470 --> 00:11:10,250 >> Və indi mən kimi bir şey ola bilər i ŞAGİRDLƏRİNƏ <; (i = 0 int i ++. 283 00:11:10,250 --> 00:11:14,390 Mən sürətli yazaraq alıram, lakin bu İndi yəqin ki, tanış syntax. 284 00:11:14,390 --> 00:11:17,030 >> Və indi, bu daha son idi. 285 00:11:17,030 --> 00:11:22,890 Mən i-ci qoymaq istəyirsinizsə tələbə adı, mən bunu edirəm. 286 00:11:22,890 --> 00:11:26,480 Və sonra, adları amma evlər i bracket. 287 00:11:26,480 --> 00:11:29,930 Mən bu GetString və imkan məni geri getmək və bu xətti düzeltmek. 288 00:11:29,930 --> 00:11:30,430 Razıyam? 289 00:11:30,430 --> 00:11:31,200 Razı deyiləm? 290 00:11:31,200 --> 00:11:32,366 Bu, çox istifadəçi dostu deyil. 291 00:11:32,366 --> 00:11:33,890 Mən nə istifadəçi söylədi. 292 00:11:33,890 --> 00:11:36,520 >> Amma indi, mən əgər də sonra, edək istədi 293 00:11:36,520 --> 00:11:40,060 demək, bu şeyi çap yazaraq belə TODO sonra. 294 00:11:40,060 --> 00:11:42,330 Mən daha gedirəm müzakirəsiz bu Hələ 295 00:11:42,330 --> 00:11:45,970 doğru bir tətbiq adları və ev, üç almaq 296 00:11:45,970 --> 00:11:48,870 bir istifadəçi hər onların ümumi. 297 00:11:48,870 --> 00:11:51,280 >> Amma bu çox yaxşı dizayn doğru deyil? 298 00:11:51,280 --> 00:11:55,220 Nə tələbə yalnız bir adı var əgər və ev, həm də şəxsiyyət nömrəsi, 299 00:11:55,220 --> 00:11:57,770 və bir telefon nömrəsi, və bir e-poçt ünvanı, 300 00:11:57,770 --> 00:12:00,280 və bəlkə bir ev səhifə və bəlkə bir Twitter sapı, 301 00:12:00,280 --> 00:12:03,730 və digər məlumat hər hansı bir sayı Bir tələbə və ya bir şəxs ilə bağlı, 302 00:12:03,730 --> 00:12:04,610 ümumiyyətlə. 303 00:12:04,610 --> 00:12:07,720 Biz əlavə başlamaq olardı necə Bu proqram funksionallığı? 304 00:12:07,720 --> 00:12:14,080 >> Bəli, mən bilər sadə yolu kimi hiss , kimi bir şey demək imkan ola, 305 00:12:14,080 --> 00:12:16,490 kimlikleri TƏLƏBƏLƏRİ int. 306 00:12:16,490 --> 00:12:18,380 Mən orada bütün kimlikleri bilər. 307 00:12:18,380 --> 00:12:22,240 Və sonra, bir şey üçün telefon nömrələri kimi, 308 00:12:22,240 --> 00:12:24,400 Mən necə əmin deyiləm yalnız hələ ki, təmsil edir. 309 00:12:24,400 --> 00:12:30,280 Belə nin irəli və yalnız zəng gidelim Bu ŞAGİRDLƏRİNƏ, Twitters olan 310 00:12:30,280 --> 00:12:33,550 bir az qəribə, ancaq edir və sahələri bir dəstə daha çox. 311 00:12:33,550 --> 00:12:36,360 >> Mən səmərəli başlamışdır etdik surəti və burada yapışdırıb. 312 00:12:36,360 --> 00:12:39,416 Və bu olduqca artmaqda davam edir olduqca tez yöndəmsiz, sağ? 313 00:12:39,416 --> 00:12:42,290 Var idi, əgər gözəl olmazdı dünyada data strukturu məlum 314 00:12:42,290 --> 00:12:45,600 bir int və ya bir string, lakin bir şey kimi yüksək səviyyəli abstraksiya, belə ki, 315 00:12:45,600 --> 00:12:47,570 Bir tələbə kimi tanınan, danışmaq? 316 00:12:47,570 --> 00:12:50,220 C inşa ilə gəlmədi tələbələr üçün funksionallığı, 317 00:12:50,220 --> 00:12:52,260 amma bu cür vermək istəyirdi nə? 318 00:12:52,260 --> 00:12:55,640 >> Bəli, mən gedirəm çıxır , structs.h burada adlı bir fayl açmaq 319 00:12:55,640 --> 00:12:57,090 və məhz bunu edə bilərsiniz. 320 00:12:57,090 --> 00:12:58,290 Və biz indi bunu başlamaq üçün olacaq. 321 00:12:58,290 --> 00:13:01,490 Və P Set üç başlıq altında, Əgər siz artıq indi bunu etdik. 322 00:13:01,490 --> 00:13:05,920 Bir g rect kimi bir şey yoxdur və ya proqramlaşdırma dili C. bir g oval 323 00:13:05,920 --> 00:13:10,570 >> Stanford Folks o həyata Burada bu yanaşma istifadə edərək, data növləri, 324 00:13:10,570 --> 00:13:13,900 öz yeni məlumatlar elan yeni bir söz istifadə edərək növləri 325 00:13:13,900 --> 00:13:16,744 adlı struct və digər bir adlı typedef. 326 00:13:16,744 --> 00:13:19,660 Və həqiqətən, baxmayaraq syntax məhsulları bir az fərqli görünür 327 00:13:19,660 --> 00:13:23,550 biz əvvəl gördüm prinsipi, bu super sadə. 328 00:13:23,550 --> 00:13:25,297 >> Bu yalnız "bir növü müəyyən" deməkdir. 329 00:13:25,297 --> 00:13:27,255 Ki, bir olacaq strukturu və quruluşu 330 00:13:27,255 --> 00:13:29,400 yalnız bir konteyner kimi Çox şeylər üçün. 331 00:13:29,400 --> 00:13:31,780 Və strukturu gedir adını bir simli var, 332 00:13:31,780 --> 00:13:33,210 və simli ev çağırıb. 333 00:13:33,210 --> 00:13:37,520 Və yalnız rahatlığı üçün, zəng edək, Bütün bu data structure tələbə. 334 00:13:37,520 --> 00:13:40,320 >> Belə ki, an almaq nöqtəli vergül, indi var 335 00:13:40,320 --> 00:13:43,280 Öz yaradılan məlumatlar adlanır tələbə 336 00:13:43,280 --> 00:13:46,420 ki, indi, int yanaşı durur və float və char, və simli, 337 00:13:46,420 --> 00:13:50,270 və g rect və g oval, və hər hansı bir sayı digər şeylər insanlar icad. 338 00:13:50,270 --> 00:13:53,340 >> Belə ki, bu barədə faydalı nə indi geri getmək əgər ki, 339 00:13:53,340 --> 00:13:57,430 0 struct və bu başa Mən yazdığı həyata keçirilməsi, 340 00:13:57,430 --> 00:14:02,080 Burada əvvəlcədən, bütün fark qaçınılmaz messiness ki 341 00:14:02,080 --> 00:14:05,490 Mən əlavə kimi baş başlamaq haqqında idi telefon nömrələri və Twitters və bütün 342 00:14:05,490 --> 00:14:07,370 bu başqa şeylər Bir şagirdin müəyyən, 343 00:14:07,370 --> 00:14:11,810 indi müfəssəl şəkildə bükülmüş tələbə yalnız bir sıra kimi. 344 00:14:11,810 --> 00:14:15,500 >> Və bu tələbələrin hər indi Bunun içərisində çox şeylər var. 345 00:14:15,500 --> 00:14:16,930 Belə ki, yalnız bir sual yaradır. 346 00:14:16,930 --> 00:14:19,700 Necə adı almaq, və ev və ID, 347 00:14:19,700 --> 00:14:21,640 və başqa hər hansı tələbə içəridə? 348 00:14:21,640 --> 00:14:22,930 Super sadə, həmçinin. 349 00:14:22,930 --> 00:14:25,730 Yeni sintaksis, lakin sadə fikir. 350 00:14:25,730 --> 00:14:29,239 >> Bu array daxil Sadece index, Keçən həftə bu kimi. 351 00:14:29,239 --> 00:14:31,030 Və nə aydın deyil sintaksis yeni bir parça? 352 00:14:31,030 --> 00:14:32,590 353 00:14:32,590 --> 00:14:35,880 Just., Deməkdir "daxili getmək strukturu və sahəsində çağırdı 354 00:14:35,880 --> 00:14:39,030 adı, ev adlı sahəsində almaq tələbə adlı sahəsində almaq. " 355 00:14:39,030 --> 00:14:41,940 >> Belə ki, P Set Üç, siz əgər hələ ki, iş, 356 00:14:41,940 --> 00:14:44,020 hələ ən insanlar , sizin kimi ki, həyata olunur 357 00:14:44,020 --> 00:14:46,130 kimi şeylər istifadə edərək başlamaq g rects və g ovals 358 00:14:46,130 --> 00:14:50,201 və başqa şeylər üçün görünmüyor ki, Həftə Zero, One, və ya iki gələn, 359 00:14:50,201 --> 00:14:52,950 ki, Stanford, çünki ki, həyata bəzi yeni məlumat növləri elan etdi. 360 00:14:52,950 --> 00:14:56,160 >> And olsun ki, məhz nə biz will P Set dörd, eləcə də, nə zaman 361 00:14:56,160 --> 00:14:59,880 biz hər şeyi ilə məşğul başlamaq şəkillər, bitmaps, və daha çox kimi. 362 00:14:59,880 --> 00:15:02,882 Belə ki, yalnız bir iltifat və var gəlmək nə üçün əqli model. 363 00:15:02,882 --> 00:15:04,590 İndi mən procrastinated bir az bu səhər. 364 00:15:04,590 --> 00:15:09,560 Mən nə görmək cür maraqlı idi Microsoft divar kağızı həqiqətən 365 00:15:09,560 --> 00:15:10,310 gün kimi görünür. 366 00:15:10,310 --> 00:15:15,200 Və 2006-cı ildə kimsə çıxır həqiqətən demək olar ki, dəqiq getdi 367 00:15:15,200 --> 00:15:19,210 eyni spot əslində fotoşəkil nə bu gün kimi görünür. 368 00:15:19,210 --> 00:15:21,380 Bu sahədə indi bir az basmaq deyil. 369 00:15:21,380 --> 00:15:24,850 >> Belə ki, images indi danışan, Burada Daven geri gətirmək imkan 370 00:15:24,850 --> 00:15:26,890 ekran və Nicholas, və yalnız sizə xatırlatmaq 371 00:15:26,890 --> 00:15:30,540 ki, nahar üçün bizə qoşulmaq istəyirsinizsə adi URL bu cümə, baş 372 00:15:30,540 --> 00:15:31,440 burada. 373 00:15:31,440 --> 00:15:33,530 >> Beləliklə, biz bazar ertəsi off tərk etdiniz? 374 00:15:33,530 --> 00:15:35,140 Biz, bu problemin təqdim? 375 00:15:35,140 --> 00:15:37,610 Bu zahirən doğru idi svop həyata keçirilməsi, 376 00:15:37,610 --> 00:15:40,460 vasitəsi, iki ints alaraq bir, b adlı bir, deyilən 377 00:15:40,460 --> 00:15:44,130 Laura burada etdiyiniz kimi, onları dəyişdirmək süd və su ilə səhnədə, 378 00:15:44,130 --> 00:15:46,820 müvəqqəti istifadə edərək dəyişən və ya boş fincan, 379 00:15:46,820 --> 00:15:50,540 bir və in-ci ildə b qoymaq bilər ki, hər şeyi bir mess etmədən b. 380 00:15:50,540 --> 00:15:51,560 Biz dəyişən istifadə. 381 00:15:51,560 --> 00:15:52,870 Bu temp deyirlər. 382 00:15:52,870 --> 00:15:55,520 >> Amma fundamental nə idi bazar ertəsi günü bu kodu ilə problem? 383 00:15:55,520 --> 00:15:57,700 384 00:15:57,700 --> 00:15:58,870 Burada problem nə idi? 385 00:15:58,870 --> 00:16:00,106 386 00:16:00,106 --> 00:16:00,605 Bəli. 387 00:16:00,605 --> 00:16:01,970 >> Auditoriya: Bu daha çox yer tutur. 388 00:16:01,970 --> 00:16:04,719 >> DAVID J. MALAN: daha Takes space, mən bir dəyişən kullanıyorum çünki, 389 00:16:04,719 --> 00:16:05,400 ki, OK. 390 00:16:05,400 --> 00:16:07,300 Ki, doğrudur, lakin mən deyiləm ki, OK demək olacaq. 391 00:16:07,300 --> 00:16:10,030 Bu möhtəşəm yalnız 32 bit şeyi sxemi, belə bir böyük. 392 00:16:10,030 --> 00:16:10,655 Digər fikir? 393 00:16:10,655 --> 00:16:12,572 Auditoriya: Bu, yalnız svopları yerli dəyişənlər. 394 00:16:12,572 --> 00:16:13,571 DAVID J. MALAN: Exactly. 395 00:16:13,571 --> 00:16:15,090 Bu, yalnız yerli dəyişənlərin svopları. 396 00:16:15,090 --> 00:16:18,173 Heç bir zaman bir funksiyası zəng Çünki Mən Annenberg olan qablar idi 397 00:16:18,173 --> 00:16:19,840 son dəfə, siz altındakı əsas var. 398 00:16:19,840 --> 00:16:23,560 Kimi tezliklə adlı bir funksiyası zəng kimi svop, svop x və y almaq deyil, 399 00:16:23,560 --> 00:16:24,400 orijinal dəyərlər. 400 00:16:24,400 --> 00:16:26,392 Biz nə iddia etdi, swap almaq edir? 401 00:16:26,392 --> 00:16:27,100 Auditoriya: Nüsxələr. 402 00:16:27,100 --> 00:16:28,090 DAVID J. MALAN: onların surətlərini Belə. 403 00:16:28,090 --> 00:16:31,120 Belə ki, əgər, bir və iki olur son dəfə nümunə geri, 404 00:16:31,120 --> 00:16:34,730 lakin bir və iki surəti uğurla dəyişdirildikdə. 405 00:16:34,730 --> 00:16:38,550 Amma təəssüf ki, sonunda, həmin dəyərləri hələ də eynidir. 406 00:16:38,550 --> 00:16:41,880 Beləliklə, biz bu edə bilərsiniz bizim yeni dost, inşallah gdb, 407 00:16:41,880 --> 00:16:45,180 Siz və ya TFS və Ca nin var aşağıdakı kimi doğru rəhbər edilmişdir. 408 00:16:45,180 --> 00:16:51,210 >> Belə ki, heç swap geri edək qədərdir görünür oxşar Hələ görünür açmaq. 409 00:16:51,210 --> 00:16:54,160 Biz iki, bir y x başlatılmış. 410 00:16:54,160 --> 00:16:55,620 Çap f-nin bir dəstə idi. 411 00:16:55,620 --> 00:16:58,080 Amma sonra, əsas zəng edin burada dəyişdirmək üçün olan 412 00:16:58,080 --> 00:17:00,260 tam code biz yalnız bir an əvvəl gördüm. 413 00:17:00,260 --> 00:17:03,180 Hansı ilk doğru nəzər, lakin funksional, 414 00:17:03,180 --> 00:17:06,800 Bu proqram, çünki iş deyil daimi x və y dəyişdirmək deyil. 415 00:17:06,800 --> 00:17:10,190 >> Belə ki, tez isti bu görək Burada gdb, bir ./noswap ilə. 416 00:17:10,190 --> 00:17:11,867 417 00:17:11,867 --> 00:17:15,200 Böyük informasiya bir dəstə ki, Mən indi Control L qurtarmaq lazımdır. 418 00:17:15,200 --> 00:17:17,516 Və indi mən gedirəm irəli getmək və bu run. 419 00:17:17,516 --> 00:17:19,349 Və təəssüf ki, ki, faydalı deyil. 420 00:17:19,349 --> 00:17:22,355 Bu daxili proqram qaçdı proqram, gdb, ayıklama adlı 421 00:17:22,355 --> 00:17:23,730 lakin mənə ətrafında soxmaq imkan vermədi. 422 00:17:23,730 --> 00:17:26,229 >> Mən, həqiqətən, fasilə bilər necə Bu proqram daxilində icra? 423 00:17:26,229 --> 00:17:27,410 424 00:17:27,410 --> 00:17:28,329 Belə ki, qırmaq. 425 00:17:28,329 --> 00:17:32,340 Mən hər hansı qıra bilər line sayı bir, 10, 15. 426 00:17:32,340 --> 00:17:35,530 Amma mən də simvolik qıra bilər break əsl deyərək. 427 00:17:35,530 --> 00:17:38,980 Ki, bir fasilə müəyyən olacaq point, yəqin əsas xətt 16. 428 00:17:38,980 --> 00:17:40,050 Və line 16? 429 00:17:40,050 --> 00:17:42,960 Nin kodu gedək və noswap qədər getmək. 430 00:17:42,960 --> 00:17:46,930 Və həqiqətən, line 16 edir çox ilk proqram. 431 00:17:46,930 --> 00:17:52,130 >> Belə ki, indi, Mən irəli getmək və növü bu dəfə run daxil edin, bu durduruldu. 432 00:17:52,130 --> 00:17:53,080 Belə ki, ətrafında soxmaq edək. 433 00:17:53,080 --> 00:17:55,716 Niyə x sıfır x-- çap? 434 00:17:55,716 --> 00:17:56,705 435 00:17:56,705 --> 00:17:57,830 Və dollar işarəsi ignore. 436 00:17:57,830 --> 00:17:59,725 Ki meraklısı üçün yalnız var Proqramın istifadə. 437 00:17:59,725 --> 00:18:00,780 438 00:18:00,780 --> 00:18:03,140 Niyə bu anda x sıfır? 439 00:18:03,140 --> 00:18:03,640 Bəli. 440 00:18:03,640 --> 00:18:07,061 >> Auditoriya: Bu əvvəl sağ durdurulmuş line 16, həqiqətən line 16. 441 00:18:07,061 --> 00:18:08,060 DAVID J. MALAN: Exactly. 442 00:18:08,060 --> 00:18:11,630 Gdb, ismarıcları, durdurulmuş etmişdir yalnız line 16 əvvəl icra. 443 00:18:11,630 --> 00:18:14,820 Belə ki, icra edən Bəzi unknown dəyər x deməkdir. 444 00:18:14,820 --> 00:18:17,150 Və biz bu uğurlu var sıfır kimi təmiz bir şey. 445 00:18:17,150 --> 00:18:20,310 Belə ki, indi mən növbəti yazın əgər, indi 16 icra. 446 00:18:20,310 --> 00:18:22,000 Mənə 17 icra etmək üçün gözləyir. 447 00:18:22,000 --> 00:18:23,400 Mənə davam və çap x gedək. 448 00:18:23,400 --> 00:18:24,094 Bu biri. 449 00:18:24,094 --> 00:18:25,260 Mənə davam və çap y gedək. 450 00:18:25,260 --> 00:18:26,176 İndi mən nə görürsünüz? 451 00:18:26,176 --> 00:18:27,660 452 00:18:27,660 --> 00:18:28,560 >> Auditoriya: [işitilemez] 453 00:18:28,560 --> 00:18:29,165 >> DAVID J. MALAN: Bir az louder. 454 00:18:29,165 --> 00:18:30,040 >> Auditoriya: [işitilemez] 455 00:18:30,040 --> 00:18:30,537 456 00:18:30,537 --> 00:18:32,120 DAVID J. MALAN: Not olduqca konsensus. 457 00:18:32,120 --> 00:18:34,760 Belə ki, bəli, biz bəzi zibil dəyər bax. 458 00:18:34,760 --> 00:18:37,862 İndi y yoxdur 134514064 edir. 459 00:18:37,862 --> 00:18:39,320 Bəli, yalnız bəzi zibil dəyəri. 460 00:18:39,320 --> 00:18:41,350 Mənim proqram RAM istifadə edir müxtəlif məqsədlər üçün. 461 00:18:41,350 --> 00:18:42,350 Digər funksiyaları var. 462 00:18:42,350 --> 00:18:44,040 Digər insanlar mənim kompüter daxilində yazdı. 463 00:18:44,040 --> 00:18:46,789 Belə ki, həmin bit üçün istifadə edilmişdir digər dəyərləri, və mən nə görüyorum 464 00:18:46,789 --> 00:18:49,470 bəzi qalıqları edir ki, yaddaş əvvəl istifadə. 465 00:18:49,470 --> 00:18:53,350 >> Belə ki, heç bir böyük, çünki tezliklə Mən növbəti yazın və sonra y çap kimi, 466 00:18:53,350 --> 00:18:55,640 Bu başlatılmış Mən istəyirəm ki, dəyəri. 467 00:18:55,640 --> 00:18:57,400 Belə ki, indi bir az daha sürətli davam edək. 468 00:18:57,400 --> 00:18:58,540 Növbəti N. 469 00:18:58,540 --> 00:18:59,570 Yenə bunu edək. 470 00:18:59,570 --> 00:19:00,530 Yenə bunu edək. 471 00:19:00,530 --> 00:19:02,404 Amma hit istəmirəm burada, çünki mən əgər 472 00:19:02,404 --> 00:19:05,110 daxili neler görmək istəyirəm svop, komanda nə var? 473 00:19:05,110 --> 00:19:05,520 >> Auditoriya: addımlar. 474 00:19:05,520 --> 00:19:06,436 >> DAVID J. MALAN: addımlar. 475 00:19:06,436 --> 00:19:09,800 Belə ki, bu məni addımlar deyil, artıq çox funksiyası. 476 00:19:09,800 --> 00:19:12,270 İndi, bir az sirli vicdanla, lakin bu yalnız 477 00:19:12,270 --> 00:19:14,581 Mən indi line 33 oldum mənə. 478 00:19:14,581 --> 00:19:15,580 Və yenə bunu bildirin. 479 00:19:15,580 --> 00:19:16,080 Print temp. 480 00:19:16,080 --> 00:19:17,129 481 00:19:17,129 --> 00:19:20,170 Zibil dəyəri, mənfi bu dəfə, lakin yalnız hələ bir zibil dəyəri. 482 00:19:20,170 --> 00:19:22,810 Belə ki, növbəti, çap temp edək. 483 00:19:22,810 --> 00:19:27,130 Bu, 1 başlatılmış olan bir aka x dəyəri idi. 484 00:19:27,130 --> 00:19:29,110 >> İndi bizim bir və gələn x? 485 00:19:29,110 --> 00:19:32,510 Yaxşı, biz əsas bildiriş bu dəyərlər x və y çağırıb. 486 00:19:32,510 --> 00:19:34,740 Biz aşağıdakı kimi onlara dəyişdirmək keçdi. 487 00:19:34,740 --> 00:19:37,010 X vergül y, ilk gəldi. 488 00:19:37,010 --> 00:19:40,020 Və sonra, svop onlara x və y zəng edə bilər. 489 00:19:40,020 --> 00:19:42,630 Lakin aydınlıq üçün, bu bir və b onlara zəng. 490 00:19:42,630 --> 00:19:45,970 Amma və b indi olacaq müvafiq olaraq x və y, surəti. 491 00:19:45,970 --> 00:19:50,660 >> Mən temp geri gdb getmək əgər Belə ki, indi bir və indi biridir. 492 00:19:50,660 --> 00:19:56,130 Mən indi növbəti nə və əgər çap etmək a, bir artıq köçürülüb. 493 00:19:56,130 --> 00:20:00,030 Süd keçmiş tökülür edilmişdir portağal şirəsi şüşə, və ya əksinə. 494 00:20:00,030 --> 00:20:04,750 >> Və mən indi daha sonrakı, və əgər Mən bir ağlı başında olma çek kimi çap əgər, 495 00:20:04,750 --> 00:20:07,687 hələ iki, lakin b indi biridir. 496 00:20:07,687 --> 00:20:08,770 Açığı, hələ var. 497 00:20:08,770 --> 00:20:10,670 Mən nə temp qayğı yoxdur. 498 00:20:10,670 --> 00:20:16,850 Amma tezliklə mən indi yazın kimi, deyək indi sonunda edirəm, geri getmək davam 499 00:20:16,850 --> 00:20:17,480 proqram. 500 00:20:17,480 --> 00:20:20,730 Və təəssüf ki, x hələ bir və y hələ iki. 501 00:20:20,730 --> 00:20:22,272 >> Belə ki, orada gdb kommunal nə idi? 502 00:20:22,272 --> 00:20:23,980 Bu, mənim düzeltmek kömək etmədi Bu problem özlüyündə, 503 00:20:23,980 --> 00:20:26,265 lakin o, ümid mənə kömək həyata tərəfindən başa 504 00:20:26,265 --> 00:20:30,000 ki, bəli, mənim məntiq doğru, lakin Mənim kodu nəticədə olan deyil 505 00:20:30,000 --> 00:20:31,450 daimi təsir. 506 00:20:31,450 --> 00:20:34,570 Belə ki, biz istəyirik problem var İndi bu gün həll etmək niyyətindədir. 507 00:20:34,570 --> 00:20:37,870 >> Amma bu yolu ilə almaq imkan verir. 508 00:20:37,870 --> 00:20:39,230 String yalandır. 509 00:20:39,230 --> 00:20:41,860 Bu, çox deyil, bir veri növü ki, Bu C. var 510 00:20:41,860 --> 00:20:44,750 bəzi sinonimi olmuşdur başqa bir şey üçün vaxt, 511 00:20:44,750 --> 00:20:47,300 və biz aşağıdakı aşkar edə bilərsiniz. 512 00:20:47,300 --> 00:20:53,282 >> Mənə irəli getmək və açmaq edək bir proqram müqayisə 0 çağırıb. 513 00:20:53,282 --> 00:20:56,240 Və bu bir növü deyil, biz kod vasitəsilə gəzmək başlamaq lazımdır 514 00:20:56,240 --> 00:20:58,040 Mən artıq yazmışdır, lakin Bu yalnız bir neçə xətləri var. 515 00:20:58,040 --> 00:20:59,570 Belə ki, bu müqayisə 0 olunur. 516 00:20:59,570 --> 00:21:02,380 Və ilk şey edirəm mətn xətti olur. 517 00:21:02,380 --> 00:21:05,610 >> Amma mən nə görürsünüz ilk dəfə edirik. 518 00:21:05,610 --> 00:21:07,910 Nə aydın line 21 haqqında müxtəlif nədir? 519 00:21:07,910 --> 00:21:10,020 520 00:21:10,020 --> 00:21:11,402 Əslində, bir dəqiqə gözləyin. 521 00:21:11,402 --> 00:21:12,110 Bu surəti iki. 522 00:21:12,110 --> 00:21:13,568 Hətta doğru proqram deyil. 523 00:21:13,568 --> 00:21:14,780 Bütün sağ, spoyler alert. 524 00:21:14,780 --> 00:21:16,890 Bütün hüquqlar, belə ki, ağla heç. 525 00:21:16,890 --> 00:21:18,520 Ki, gələcək suala cavab var. 526 00:21:18,520 --> 00:21:21,450 >> Burada-0 müqayisə, və mən olunur mətn xətti almaq üçün. 527 00:21:21,450 --> 00:21:22,435 Proqram çox sadə. 528 00:21:22,435 --> 00:21:23,560 Belə ki, bu sadə deyil. 529 00:21:23,560 --> 00:21:28,070 Bu həftə biri həftə iki məhsulları kimi hazırda. string s = GetString. 530 00:21:28,070 --> 00:21:29,700 İndi mən aşağı burada yenə deyirəm. 531 00:21:29,700 --> 00:21:31,830 string t = GetString. 532 00:21:31,830 --> 00:21:35,300 Bu, sonra, son şey proqram, onun adı təklif kimi, 533 00:21:35,300 --> 00:21:37,090 Mən onları müqayisə etmək üçün cəhd gedirəm olunur. 534 00:21:37,090 --> 00:21:40,709 >> Belə ki, s varsa, ilk simli, = t, onda mən bərabərdir 535 00:21:40,709 --> 00:21:42,250 Siz eyni şey yazın deməyəcək. 536 00:21:42,250 --> 00:21:44,291 Başqa, mən demək gedirəm müxtəlif şeylər yazın. 537 00:21:44,291 --> 00:21:45,880 Belə ki, bu proqramı tərtib və run bildirin. 538 00:21:45,880 --> 00:21:48,481 Belə ki, sıfır müqayisə edə. 539 00:21:48,481 --> 00:21:48,980 Yaxşı görünür. 540 00:21:48,980 --> 00:21:50,490 No tərtib səhvlər. 541 00:21:50,490 --> 00:21:52,386 >> Mənə indi davam edək və ./compare-0 yazın. 542 00:21:52,386 --> 00:21:55,230 543 00:21:55,230 --> 00:21:59,220 Mənə irəli getmək və bir şey demək qoy : Daven bir şey: Rob. 544 00:21:59,220 --> 00:22:00,450 Mən fərqli şeylər yazın. 545 00:22:00,450 --> 00:22:01,250 İndiyə qədər belə yaxşı. 546 00:22:01,250 --> 00:22:02,680 Proqram düzgün görünür. 547 00:22:02,680 --> 00:22:03,880 >> Amma yenidən run bildirin. 548 00:22:03,880 --> 00:22:05,800 Bir şey demək: Gabe. 549 00:22:05,800 --> 00:22:07,140 Bir şey demək: Gabe. 550 00:22:07,140 --> 00:22:08,520 551 00:22:08,520 --> 00:22:09,020 Bütün hüquqlar. 552 00:22:09,020 --> 00:22:10,851 Bəlkə space bar hit və ya funky bir şey. 553 00:22:10,851 --> 00:22:11,600 Yenə bunu edək. 554 00:22:11,600 --> 00:22:13,020 Zamyla belə. 555 00:22:13,020 --> 00:22:13,970 556 00:22:13,970 --> 00:22:14,470 Zamyla. 557 00:22:14,470 --> 00:22:15,740 558 00:22:15,740 --> 00:22:17,330 Fərqli şeylər. 559 00:22:17,330 --> 00:22:19,430 Belə ki, nə gedir? 560 00:22:19,430 --> 00:22:23,200 >> Beləliklə, biz bu iki xətləri var kodu, GetString iki dəfə çağırılan. 561 00:22:23,200 --> 00:22:25,760 Və sonra, mən sadəcə deyiləm s və t müqayisə üçün çalışırıq. 562 00:22:25,760 --> 00:22:28,370 Lakin gedir sonra, həqiqətən, nə? 563 00:22:28,370 --> 00:22:31,180 Yaxşı, mənim yazı barədə qədər bu nümunə qəssab. 564 00:22:31,180 --> 00:22:34,630 Və həqiqətən atmaq imkan Bu qədər burada, həmçinin. 565 00:22:34,630 --> 00:22:37,390 566 00:22:37,390 --> 00:22:45,712 >> Beləliklə, biz bir xətt kimi var string s = GetString. 567 00:22:45,712 --> 00:22:48,295 Belə ki, sadəcə ilk var proqram maraqlı line. 568 00:22:48,295 --> 00:22:49,920 569 00:22:49,920 --> 00:22:52,974 Lakin bütün bu zaman olmuşdur nə başlıq altında gedir? 570 00:22:52,974 --> 00:22:55,890 Yaxşı, sol tərəfdən yan simli, olan dəyişən bir növü, 571 00:22:55,890 --> 00:22:56,785 və s deyirlər. 572 00:22:56,785 --> 00:23:00,019 Mən bu yaddaş istifadə bilirik ki, və ya RAM, elə mənim kompüter. 573 00:23:00,019 --> 00:23:02,060 Mən mücərrəd gedirəm bir kvadrat kimi çəkmək. 574 00:23:02,060 --> 00:23:04,820 32 bit, bu çıxır, lakin gələcəkdə daha çox. 575 00:23:04,820 --> 00:23:06,410 Və sonra, nə burada olub? 576 00:23:06,410 --> 00:23:08,700 >> Bəli, açıq-aydın GetString istifadəçi bir string alır. 577 00:23:08,700 --> 00:23:11,360 Və GetString var Zamyla ya Gabe və ya Daven. 578 00:23:11,360 --> 00:23:14,640 Belə ki, ilk seçin bildirin o, Daven idi. 579 00:23:14,640 --> 00:23:19,174 Belə ki, səmərəli, nə GetString var Mənə birinci halda D-a-v-e-n idi. 580 00:23:19,174 --> 00:23:22,690 581 00:23:22,690 --> 00:23:25,045 Və sonra, başqa nə etdi mənə gizli verir? 582 00:23:25,045 --> 00:23:25,920 Auditoriya: [işitilemez] 583 00:23:25,920 --> 00:23:28,720 DAVID J. MALAN: Bəli, Bu / 0 və ya null xarakter. 584 00:23:28,720 --> 00:23:30,550 Belə ki, səmərəli Mənə bir string verdi. 585 00:23:30,550 --> 00:23:34,550 Amma biz artıq əvvəlki bilirik bir string yalnız bir sıra olduğunu görünür 586 00:23:34,550 --> 00:23:37,895 simvol, və onu ləğv edir Bu xüsusi sentinel xarakter / 0. 587 00:23:37,895 --> 00:23:39,220 588 00:23:39,220 --> 00:23:42,310 >> Amma bu doğru əgər bu bir kvadrat, 589 00:23:42,310 --> 00:23:44,160 Bu aydın daha böyük düzbucaqlı edir. 590 00:23:44,160 --> 00:23:46,830 Və həqiqətən, bu, Mən yalnız 32 bit təsdiq. 591 00:23:46,830 --> 00:23:49,500 Və bu aydın daha 32 bit, bu yəqin ki, çünki 592 00:23:49,500 --> 00:23:51,583 səkkiz plus səkkiz plus səkkiz plus səkkiz plus səkkiz, 593 00:23:51,583 --> 00:23:53,320 yalnız ASCII bayt çünki. 594 00:23:53,320 --> 00:23:57,030 Necə heck biz uyğun gedir Burada bu kiçik qutusuna Daven? 595 00:23:57,030 --> 00:23:59,880 >> Yaxşı, nə həqiqətən GetString edir? 596 00:23:59,880 --> 00:24:03,680 Bəli, bu grid burada təmsil mənim kompüter yaddaş və ya RAM. 597 00:24:03,680 --> 00:24:07,564 Belə ki, özbaşına ki, əgər deyək Bu hər bir byte təmsil 598 00:24:07,564 --> 00:24:09,730 sonra biz hər hesab edə bilər byte bir ünvan olan kimi, 599 00:24:09,730 --> 00:24:13,830 33 Oxford Street, və ya 34 kimi Oxford Street, və ya 35 Oxford Street. 600 00:24:13,830 --> 00:24:16,700 >> Belə ki, evləri ünvanları kimi və binalar ünvanları var, 601 00:24:16,700 --> 00:24:19,810 belə fərdi bayt edə yaddaş ünvanları və ya nömrələri var 602 00:24:19,810 --> 00:24:21,042 ki, benzersiz onlara müəyyən. 603 00:24:21,042 --> 00:24:22,000 İndi, bu əsassız deyil. 604 00:24:22,000 --> 00:24:25,370 Amma mən gedirəm, sadə saxlamaq üçün yalnız konvensiya hexadecimal istifadə, 605 00:24:25,370 --> 00:24:28,200 lakin 0x başqa bir şey deməkdir daha "Bu hexadecimal edir." 606 00:24:28,200 --> 00:24:31,030 və mən iddia gedirəm "D" yaddaş Byte One qədər çatır. 607 00:24:31,030 --> 00:24:34,210 >> Mən heç bir şey başqa gedən var yaddaş, belə Daven ilk spot var 608 00:24:34,210 --> 00:24:35,509 Byte One at. 609 00:24:35,509 --> 00:24:36,800 Bu, sonra, 0x2 olacaq. 610 00:24:36,800 --> 00:24:37,831 611 00:24:37,831 --> 00:24:38,705 Bu 0x3 gedir. 612 00:24:38,705 --> 00:24:39,840 613 00:24:39,840 --> 00:24:41,800 Bu 0x4 olacaq. 614 00:24:41,800 --> 00:24:43,025 Bu 0x5 gedir. 615 00:24:43,025 --> 00:24:44,025 Bu 0x6 olacaq. 616 00:24:44,025 --> 00:24:45,560 617 00:24:45,560 --> 00:24:48,290 >> Amma bir dəfə düşünür başlamaq nə kompüter etdiklərini haqqında 618 00:24:48,290 --> 00:24:50,710 başlıq altında, Siz çıxarmaq üçün başlaya bilərsiniz 619 00:24:50,710 --> 00:24:54,960 necə, bir neçə il əvvəl, ki özü C həyata keçirdik. 620 00:24:54,960 --> 00:24:58,360 Yəqin ki, GetString nədir returning-- çünki 621 00:24:58,360 --> 00:25:00,946 deyil kimi hiss qaytarılması Daven, özlüyündə, 622 00:25:00,946 --> 00:25:03,320 o, şübhəsiz niyyətində deyil, çünki Bu kiçik box-- uyğun 623 00:25:03,320 --> 00:25:05,090 belə ki, nə GetString yəqin qaytarılması? 624 00:25:05,090 --> 00:25:07,958 625 00:25:07,958 --> 00:25:08,920 >> Auditoriya: [işitilemez] 626 00:25:08,920 --> 00:25:10,540 >> DAVID J. MALAN: Daven yeri. 627 00:25:10,540 --> 00:25:12,770 Və bunu edilmişdir Heç Həftə One ildən. 628 00:25:12,770 --> 00:25:16,150 Nə GetString həqiqətən qaytarılması simli başına se deyil. 629 00:25:16,150 --> 00:25:17,780 Ki, az ağ yalan biri. 630 00:25:17,780 --> 00:25:22,520 Bu ünvanı qaytarılması yaddaş string, unikal ünvanı. 631 00:25:22,520 --> 00:25:24,820 Daven 33 Oxford küçəsində yaşayır. 632 00:25:24,820 --> 00:25:29,310 Amma daha müfəssəl, Gavin yaşayır 0x1 da, Number One Ünvan. 633 00:25:29,310 --> 00:25:32,280 >> Belə ki, nə bu qoymaq olur az box sonra, aydın olmaq 634 00:25:32,280 --> 00:25:35,930 ki, simli yalnız ünvanı. 635 00:25:35,930 --> 00:25:38,110 Belə ki, bütün bu vaxt, bu var davam. 636 00:25:38,110 --> 00:25:41,650 Amma bu göstərişlər nə İndi bütün əgər var ki 637 00:25:41,650 --> 00:25:44,710 Bunun içərisində bir sıra kim edir siz dayandırmaq üçün, proqramçı, 638 00:25:44,710 --> 00:25:47,970 hər hansı bir sayı qoyaraq hər hansı bir dəyişən və yalnız jumping 639 00:25:47,970 --> 00:25:49,080 yaddaş ki, yığın? 640 00:25:49,080 --> 00:25:51,320 Və həqiqətən, biz görəcəksiniz ki, bir təhlükə növbəti dəfə var. 641 00:25:51,320 --> 00:25:53,500 >> Amma indi, bu, kifayət hiss edir. 642 00:25:53,500 --> 00:25:55,630 Mən demək, mənə almaq string, siz məni Daven verir. 643 00:25:55,630 --> 00:25:57,230 Amma həqiqətən mənə Daven vermir. 644 00:25:57,230 --> 00:25:59,310 Mənə verə Bütün Daven ünvan. 645 00:25:59,310 --> 00:26:04,310 Mən sonra əmin bilirik harada Daven başlayır və ends-- 646 00:26:04,310 --> 00:26:07,140 Bu hekayə to əldə Daven başlayır və bitir olduğu, 647 00:26:07,140 --> 00:26:10,435 və, növbəti sonra yaddaş string başlayır? 648 00:26:10,435 --> 00:26:11,520 649 00:26:11,520 --> 00:26:13,620 >> Yaxşı, siz təhvil edirsinizsə Mənə Daven başlanğıcı, 650 00:26:13,620 --> 00:26:17,230 mahiyyətcə, necə Mən bilmirəm onun adı sonu harada? 651 00:26:17,230 --> 00:26:20,550 Xüsusi null xarakteri, hansı bütün daha əhəmiyyətli indi 652 00:26:20,550 --> 00:26:23,040 The altında strings əgər başlıq sadəcə müəyyən edilir 653 00:26:23,040 --> 00:26:25,820 benzersiz xatirəsinə öz yeri. 654 00:26:25,820 --> 00:26:28,130 Belə ki, bütün bu dəfə ki nə gedir. 655 00:26:28,130 --> 00:26:32,470 >> Beləliklə, biz indi baxdığımız zaman Burada code izah 656 00:26:32,470 --> 00:26:35,790 Siz line 26 səhv ki, əgər. 657 00:26:35,790 --> 00:26:39,560 Niyə Zamyla və Zamyla fərqlidir? 658 00:26:39,560 --> 00:26:41,330 Niyə Gabe və Gabe fərqlidir? 659 00:26:41,330 --> 00:26:42,154 Bəli, geri. 660 00:26:42,154 --> 00:26:43,390 >> Auditoriya: Onlar müxtəlif ünvanları var. 661 00:26:43,390 --> 00:26:45,931 >> DAVID J. MALAN: Sadəcə onlar müxtəlif ünvanları var. 662 00:26:45,931 --> 00:26:48,820 Siz GetString zəng Çünki yenə mən tez edəcəyik ki, 663 00:26:48,820 --> 00:26:52,870 Bu ikinci xətt string əgər t, mən proqram kimi, 664 00:26:52,870 --> 00:26:55,030 GetString başqa bir zəng bərabərdir. 665 00:26:55,030 --> 00:26:56,370 666 00:26:56,370 --> 00:26:58,670 Mən zəng növbəti dəfə GetString, gedirəm 667 00:26:58,670 --> 00:27:00,190 yaddaş müxtəlif yığın almaq üçün. 668 00:27:00,190 --> 00:27:02,220 >> GetString icazə Bu əməliyyat xahiş 669 00:27:02,220 --> 00:27:03,800 daha yaddaş sistemi. 670 00:27:03,800 --> 00:27:07,894 Bu eyni təkrar etmək niyyətində deyil altı bytes hər bir zaman. 671 00:27:07,894 --> 00:27:09,810 Bu yeni olacaq yaddaş yığın, olan 672 00:27:09,810 --> 00:27:12,780 t almaq üçün gedir deməkdir burada bəzi digər dəyər. 673 00:27:12,780 --> 00:27:15,380 >> Mən bunu belə s = bərabərdir t, siz müqayisə deyilik 674 00:27:15,380 --> 00:27:17,880 Bu və A qarşı qarşı D bu və bu qarşı V. 675 00:27:17,880 --> 00:27:19,588 Bu müqayisə edirik , bu qarşı 676 00:27:19,588 --> 00:27:24,020 səmimi olduqca useful-- useless-- edir olduqca əhəmiyyətsizdir həqiqətən kim çünki 677 00:27:24,020 --> 00:27:25,830 strings yaddaşında olduğu umurunda? 678 00:27:25,830 --> 00:27:26,850 >> Biz, həqiqətən, yoxdur. 679 00:27:26,850 --> 00:27:28,980 Və biz fikrində deyilik xüsusilə qayğıkeş başlayın. 680 00:27:28,980 --> 00:27:34,180 Yalnız bugs yarana bilər dərəcədə və təhlükəsizlik iradəsini yarana bilər 681 00:27:34,180 --> 00:27:36,100 biz, həqiqətən, bu barədə qayğı başlayın. 682 00:27:36,100 --> 00:27:37,230 Belə ki, bu problemi həll edək. 683 00:27:37,230 --> 00:27:39,650 Siz super sadəcə bunu düzeltmek çıxır. 684 00:27:39,650 --> 00:27:42,600 >> Və I əvvəl, əslində edək daha aşkar, nə edəcəklərini 685 00:27:42,600 --> 00:27:47,170 bir CS50 sinif əgər, bunu və həyata idi 686 00:27:47,170 --> 00:27:48,600 iki strings qarşı müqayisə. 687 00:27:48,600 --> 00:27:51,440 Siz aydın yalnız s = t bərabərdir istifadə edə bilməz. 688 00:27:51,440 --> 00:27:54,090 Amma yalnız məntiqi necə Bu simli müqayisə edərdiniz 689 00:27:54,090 --> 00:27:56,370 C kodu istifadə edərək, bu simli qarşı? 690 00:27:56,370 --> 00:27:56,880 Bəli. 691 00:27:56,880 --> 00:27:58,780 >> Auditoriya: Just nə loop üçün [Işitilemez] 692 00:27:58,780 --> 00:28:00,670 693 00:28:00,670 --> 00:28:01,670 DAVID J. MALAN: Perfect. 694 00:28:01,670 --> 00:28:02,900 Auditoriya: [işitilemez] 695 00:28:02,900 --> 00:28:03,310 DAVID J. MALAN: Bəli. 696 00:28:03,310 --> 00:28:05,390 Just loop və ya a üçün istifadə loop və ya hər hansı isə. 697 00:28:05,390 --> 00:28:08,710 Ancaq əsas fikir müraciət ki, əgər Bu yaddaş və ya bir sıra yığın 698 00:28:08,710 --> 00:28:11,590 və bu, üzərində təkrarlamaq eyni zamanda. 699 00:28:11,590 --> 00:28:12,960 Və yalnız məktubları müqayisə. 700 00:28:12,960 --> 00:28:14,260 >> Və siz bir olmaq var az ehtiyatlı, çünki 701 00:28:14,260 --> 00:28:16,247 Bir barmaq istəmirəm Digər keçmiş getmək üçün 702 00:28:16,247 --> 00:28:18,080 bir string çünki digər artıq. 703 00:28:18,080 --> 00:28:21,380 Belə ki, check istədiyiniz olacaq sonunda bu xüsusi dəyəri, null. 704 00:28:21,380 --> 00:28:24,017 Amma həqiqətən də, edir end ki, kimi sadə. 705 00:28:24,017 --> 00:28:26,100 Və səmimi, biz lazım deyil ki, tam yenidən kəşf. 706 00:28:26,100 --> 00:28:27,960 Burada Version iki edir. 707 00:28:27,960 --> 00:28:32,910 Və nə mən burada demək gedirəm ki, əvəzinə s müqayisə = t bərabərdir 708 00:28:32,910 --> 00:28:38,964 String əgər mən əvəzinə, demək gedirəm s vergül t müqayisə = 0 bərabərdir. 709 00:28:38,964 --> 00:28:40,130 İndi string nə müqayisə olunur? 710 00:28:40,130 --> 00:28:43,046 >> Bu bir funksiyası var, çıxır ki, kimin məqsədi həyat C ilə gəlir 711 00:28:43,046 --> 00:28:44,650 iki strings müqayisə edir. 712 00:28:44,650 --> 00:28:48,300 Biz oxumaq və müqayisə bulamaq onun man səhifə və ya sənədlər və ya CS50 713 00:28:48,300 --> 00:28:50,630 arayış, o, sadəcə ki, həyəcan demək 714 00:28:50,630 --> 00:28:55,730 mənfi və ya qaytarır müqayisə sayı və ya müsbət sayı və ya sıfır, 715 00:28:55,730 --> 00:28:57,660 sıfır deməkdir onlar bərabər istəyirik. 716 00:28:57,660 --> 00:28:58,570 >> Belə ki, yalnız zənnə qapılırlar. 717 00:28:58,570 --> 00:29:00,390 Nə əgər demək bilər müqayisə yekunları tərpənmək 718 00:29:00,390 --> 00:29:02,110 mənfi dəyər və ya müsbət dəyər? 719 00:29:02,110 --> 00:29:02,785 720 00:29:02,785 --> 00:29:04,285 Auditoriya: Böyükdür və ya daha az. 721 00:29:04,285 --> 00:29:05,570 DAVID J. MALAN: Bəli, və ya daha çox azdır. 722 00:29:05,570 --> 00:29:08,640 Belə ki, bir bütün düzmək üçün istəyirdi bir dictionary-- strings dəstə 723 00:29:08,640 --> 00:29:12,975 biz nəhayət road-- aşağı olacaq kimi mükəmməl funksiyası potensial istifadə etmək, 724 00:29:12,975 --> 00:29:15,850 bunu olacaq, çünki sizin üçün strings müqayisə, və demək 725 00:29:15,850 --> 00:29:20,060 Bir b əvvəl gəlir yoxdur, ya yoxdur b a əlifba sırası əvvəl gəlib. 726 00:29:20,060 --> 00:29:21,490 Biz məhz bunu edə bilərsiniz. 727 00:29:21,490 --> 00:29:23,620 >> Mən digər biri idi xəbər Bu misalda şey. 728 00:29:23,620 --> 00:29:26,870 Nə ali dəyişib Bu əsas funksiyası qədər? 729 00:29:26,870 --> 00:29:28,500 730 00:29:28,500 --> 00:29:29,350 Char *. 731 00:29:29,350 --> 00:29:31,150 Və bu ki, digər ağ yalandır. 732 00:29:31,150 --> 00:29:33,750 Bütün bu vaxt, zaman var simli yazılı edilmişdir, 733 00:29:33,750 --> 00:29:38,350 biz gizli yeniden edilmişdir char kimi string * belə ki, həqiqətən cingilti 734 00:29:38,350 --> 00:29:39,270 başa düşür. 735 00:29:39,270 --> 00:29:42,450 >> Başqa sözlə, cs50.h və biz nəhayət görəcəksiniz kimi, 736 00:29:42,450 --> 00:29:45,950 biz bir sinonimi adlı simli ki, char * kimi eyni şey. 737 00:29:45,950 --> 00:29:49,910 Və indi üçün, yalnız bilmək * Bu çərçivədə, ən azı, 738 00:29:49,910 --> 00:29:51,286 ünvanı deməkdir. 739 00:29:51,286 --> 00:29:52,210 >> Nə ünvanı? 740 00:29:52,210 --> 00:29:56,390 Yaxşı, bu fakt dedim ki, char * və * int və ya * sal 741 00:29:56,390 --> 00:30:00,820 char * o deməkdir ki, bir char ünvanı. 742 00:30:00,820 --> 00:30:06,770 Belə ki, burada bu kiçik box, aka string həqiqətən növü char * edir, 743 00:30:06,770 --> 00:30:10,490 olan deyərək sadəcə bir xülya yoludur, Bu qutusuna ünvan gedəcək. 744 00:30:10,490 --> 00:30:12,430 Və nə bir ünvan aid deyil? 745 00:30:12,430 --> 00:30:13,780 Görünür, bir char. 746 00:30:13,780 --> 00:30:16,410 >> Amma biz tamamilə ola bilər int * və başqa şeylər var. 747 00:30:16,410 --> 00:30:20,790 Amma indi, char * həqiqətən ən çox sadə və faiz biridir. 748 00:30:20,790 --> 00:30:23,310 Belə ki, bu problem davam edir yenə də yüksələcək. 749 00:30:23,310 --> 00:30:24,830 >> Bu proqram açmaq düşünək. 750 00:30:24,830 --> 00:30:27,670 Indi biz proqnozlaşdırmaq bilərsiniz əgər in görək nə bu kodu ilə yanlış. 751 00:30:27,670 --> 00:30:31,140 Bu proqram belə, surəti-0, mən irəli getmək və daha zəng gedir 752 00:30:31,140 --> 00:30:34,190 GetString və s dəyərini saxlamaq. 753 00:30:34,190 --> 00:30:38,800 >> Və sonra, niyə, bunu edirəm yalnız həftə son bir öyüd-nəsihət kimi? 754 00:30:38,800 --> 00:30:40,960 Biz GetString demək idi bəzən null qaytarır. 755 00:30:40,960 --> 00:30:42,793 Nə əgər deməkdir GetString null qaytarır? 756 00:30:42,793 --> 00:30:45,040 757 00:30:45,040 --> 00:30:46,034 Bir şey yanlış getdi. 758 00:30:46,034 --> 00:30:48,950 Bu yəqin ki, simli çox deməkdir böyük, yaddaş kompüter həyata. 759 00:30:48,950 --> 00:30:51,724 Bu super, super, super olur nadir hallarda, lakin ola bilər. 760 00:30:51,724 --> 00:30:53,890 Biz onu yoxlamaq istəyirsinizsə, və biz bunu edirik bütün var. 761 00:30:53,890 --> 00:30:57,910 >> Əgər deyilsə, biz indi görmək lazımdır, çünki şeylər üçün adətən yoxlanılması başlamaq 762 00:30:57,910 --> 00:31:00,870 null kimi, güc həqiqətən getmək başlamaq 763 00:31:00,870 --> 00:31:03,106 yaddaş ünvanları etibarsız ki. 764 00:31:03,106 --> 00:31:05,980 Və fahişəliyə cəlb edilməsi maddələri başlamaq olacaq daha seqmentasiya çatışmazlıqlar. 765 00:31:05,980 --> 00:31:08,360 Və ya Mac və ya PC, yalnız kompüter səbəb asmaq üçün 766 00:31:08,360 --> 00:31:10,340 və ya proqram potensial dondurmaq. 767 00:31:10,340 --> 00:31:14,930 >> Belə ki, indi mən, surəti-0.c iddia I ki, şəkildə bu strings surəti gedirəm 768 00:31:14,930 --> 00:31:15,685 28 girdi. 769 00:31:15,685 --> 00:31:16,850 770 00:31:16,850 --> 00:31:18,750 Və sonra, mən gedirəm altındakı təsdiq etmək 771 00:31:18,750 --> 00:31:21,430 burada mən gedirəm ki, onlardan biri dəyişdirmək üçün. 772 00:31:21,430 --> 00:31:22,330 >> Belə ki, bu bildiriş. 773 00:31:22,330 --> 00:31:24,370 Mən bizim köhnə dost strlen zəng edirəm. 774 00:31:24,370 --> 00:31:28,960 Və yalnız İngilis izah Bu xətt 34 nə edir? 775 00:31:28,960 --> 00:31:32,480 Nə t bracket 0 yoxdur sol əks etdirir. 776 00:31:32,480 --> 00:31:32,980 Bəli. 777 00:31:32,980 --> 00:31:34,339 >> Auditoriya: t birinci xarakter? 778 00:31:34,339 --> 00:31:35,880 DAVID J. MALAN: t birinci xarakter. 779 00:31:35,880 --> 00:31:36,379 Vəssalam. 780 00:31:36,379 --> 00:31:40,024 T ilk xarakteri, Mən istəyirəm Bu böyük versiyası təyin etmək 781 00:31:40,024 --> 00:31:41,190 t ilk xarakteri. 782 00:31:41,190 --> 00:31:43,200 Belə ki, bu hərflə ilk məktubu. 783 00:31:43,200 --> 00:31:46,340 Və sonra, son şey yoxdur Bu proqram mən burada təsdiq 784 00:31:46,340 --> 00:31:50,340 orijinal, var, və burada surəti, t var. 785 00:31:50,340 --> 00:31:54,610 >> Amma hekayə əsasında biz yalnız , strings həqiqətən nə barədə 786 00:31:54,610 --> 00:31:57,520 həqiqətən line 28 nə bunu, və nə 787 00:31:57,520 --> 00:31:59,405 gedən nəticəsində səhv ekranda olacaq? 788 00:31:59,405 --> 00:32:01,300 789 00:32:01,300 --> 00:32:03,500 >> Belə ki, ilk, ilk sual, 28. 790 00:32:03,500 --> 00:32:09,040 String t = həqiqətən nə edir? 791 00:32:09,040 --> 00:32:16,430 Biz sol tərəfdən varsa burada yan string t = s; 792 00:32:16,430 --> 00:32:19,400 ki, mənə bir qutu verir burada və bir qutu burada. 793 00:32:19,400 --> 00:32:25,530 Və bu ünvanı 0x güman Gəlin özbaşına, bu dəfə demək 50 bildirin. 794 00:32:25,530 --> 00:32:28,847 Nə string t = s yoxdur başlıq altında nə? 795 00:32:28,847 --> 00:32:30,340 >> Auditoriya: [işitilemez] 796 00:32:30,340 --> 00:32:34,100 >> DAVID J. MALAN: Bu yaddaş saklar orada həll, belə ki, 0x50 orada gedir. 797 00:32:34,100 --> 00:32:37,980 İndi əgər, mən ilk getmək t xarakteri və onu böyük, 798 00:32:37,980 --> 00:32:39,535 Mən səmərəli s nə edirəm? 799 00:32:39,535 --> 00:32:41,300 800 00:32:41,300 --> 00:32:43,450 Mən, həqiqətən, doğru, eyni şeyi edirəm? 801 00:32:43,450 --> 00:32:47,680 Çünki əgər Ünvan 0x50-- və yalnız mən Burada board çox otaq yoxdur, 802 00:32:47,680 --> 00:32:51,750 lakin, burada aşağı 0x50 güman mənim kompüter yaddaş haradasa. 803 00:32:51,750 --> 00:32:55,825 >> Mən, məsələn, Gabe var bu kimi, burada kiçik edir. 804 00:32:55,825 --> 00:32:57,120 805 00:32:57,120 --> 00:33:01,980 Mən demişəm t bracket 0 kapitallaşdırılır olur. 806 00:33:01,980 --> 00:33:04,860 Yaxşı, t bracket 0 t ilk məktubu. 807 00:33:04,860 --> 00:33:07,840 Belə ki, az g gedir olmaq böyük G. Lakin problem 808 00:33:07,840 --> 00:33:09,410 , nə də işarə edir edir? 809 00:33:09,410 --> 00:33:10,300 >> Auditoriya: eyni. 810 00:33:10,300 --> 00:33:11,841 >> DAVID J. MALAN: The eyni dəqiq şey. 811 00:33:11,841 --> 00:33:16,342 Belə ki, bəlkə bir sadə izahı, sintaksis bir az qəribə olsa da. 812 00:33:16,342 --> 00:33:17,050 Belə ki, bunu edək. 813 00:33:17,050 --> 00:33:20,210 ./copy-0 onda surəti-0 olun. 814 00:33:20,210 --> 00:33:21,820 815 00:33:21,820 --> 00:33:24,110 Bir şey demək: Gabe. 816 00:33:24,110 --> 00:33:26,760 Və təəssüf ki, həm Onlara artıq kapitallaşdırılmış edilmişdir, 817 00:33:26,760 --> 00:33:29,500 amma ki, əsas biz sadəcə istəyirik ki, səbəb 818 00:33:29,500 --> 00:33:32,350 İndi ünvanları ilə məşğul. 819 00:33:32,350 --> 00:33:36,470 >> Belə ki, necə biz başlamaq yoxdur address-- heç bir cinas intended-- 820 00:33:36,470 --> 00:33:39,270 biz həll etmək üçün başlamaq necə bu problem? 821 00:33:39,270 --> 00:33:44,400 Yaxşı, copy1.c, hər şeyi gedir bir az daha mürəkkəb almaq üçün. 822 00:33:44,400 --> 00:33:49,310 Amma bir iddia konseptual sadə həll. 823 00:33:49,310 --> 00:33:50,852 >> Ilk baxışda almaq üçün belə çətindir. 824 00:33:50,852 --> 00:33:53,560 Ilk asan olacaq deyil vaxt, bəlkə də, onu yazın 825 00:33:53,560 --> 00:33:57,440 lakin problem ki, əgər sadəcə t = s yalnız bunu 826 00:33:57,440 --> 00:33:59,694 nüsxə ünvanı, nə, yenə sizə seçə bilərsiniz, əgər, 827 00:33:59,694 --> 00:34:02,110 həll olacaq həqiqətən bir string çıxarmaq üçün? 828 00:34:02,110 --> 00:34:04,906 829 00:34:04,906 --> 00:34:06,770 >> Auditoriya: Biz yəqin ki, lazımdır yenə bir loop istifadə edin. 830 00:34:06,770 --> 00:34:06,890 >> DAVID J. MALAN: Bəli. 831 00:34:06,890 --> 00:34:08,390 Yəni biz yenidən bir loop ehtiyac olacaq. 832 00:34:08,390 --> 00:34:11,800 Və biz surəti istəyirsinizsə, çünki başqa simli bir string s, 833 00:34:11,800 --> 00:34:14,120 biz yəqin ki, bunu istəyirəm xarakteri ilə xarakter. 834 00:34:14,120 --> 00:34:17,199 Amma problem halda, Bu, ilk s 835 00:34:17,199 --> 00:34:22,159 indi biz aydın şəkildə başlamaq lazımdır t üçün yaddaş ayrılması. 836 00:34:22,159 --> 00:34:24,320 >> Başqa sözlə, edək Bu son bir dəfə yenidən. 837 00:34:24,320 --> 00:34:28,659 Bu string s = GetString edir. 838 00:34:28,659 --> 00:34:30,956 839 00:34:30,956 --> 00:34:32,455 Və həmçinin, burada bu qədər qoymaq bildirin. 840 00:34:32,455 --> 00:34:36,639 841 00:34:36,639 --> 00:34:37,420 Bu GetString edir. 842 00:34:37,420 --> 00:34:39,070 843 00:34:39,070 --> 00:34:43,860 Bir şey və sonra şəkil kimi əvvəlki kimi olacaq, 844 00:34:43,860 --> 00:34:44,360 g-a-b-e- / 0. 845 00:34:44,360 --> 00:34:47,294 846 00:34:47,294 --> 00:34:48,960 Ki, bu kimi bir az bir şey görünür. 847 00:34:48,960 --> 00:34:53,650 Və s buna görə də, biz bu 0x50 zəng və 51, 52 olacaq. 848 00:34:53,650 --> 00:34:54,409 >> Belə ki, bu 0x50 edir. 849 00:34:54,409 --> 00:34:55,679 850 00:34:55,679 --> 00:34:59,690 Və sonra, mən string t yoxdur. 851 00:34:59,690 --> 00:35:02,450 Yaddaş, yalnız olacaq Bu kimi bir kiçik kvadrat verir. 852 00:35:02,450 --> 00:35:04,080 Belə ki, əsas addım indi nə var? 853 00:35:04,080 --> 00:35:09,870 Mən t daxil s kopyalamak etmək istəyirsinizsə, nə boş biz burada doldurmaq lazımdır? 854 00:35:09,870 --> 00:35:12,050 Yoxsa biz üçün nə lazımdır yüksək səviyyədə edirsiniz? 855 00:35:12,050 --> 00:35:14,101 856 00:35:14,101 --> 00:35:14,600 Bəli? 857 00:35:14,600 --> 00:35:16,200 858 00:35:16,200 --> 00:35:17,020 Biri? 859 00:35:17,020 --> 00:35:17,690 Bəli. 860 00:35:17,690 --> 00:35:19,214 >> Auditoriya: Biz [Işitilemez] lazımdır. 861 00:35:19,214 --> 00:35:21,380 DAVID J. MALAN: Bəli, biz bu boş doldurmaq lazımdır. 862 00:35:21,380 --> 00:35:24,340 Mən sonra surəti bilməz Gabe adı kapitallaşdırmaq 863 00:35:24,340 --> 00:35:28,120 Mən əməliyyat sistemi xahiş qədər yaddaş bir yığın 864 00:35:28,120 --> 00:35:30,640 ki, orijinal kimi ən azı böyük deyil. 865 00:35:30,640 --> 00:35:32,130 Belə ki, bir məsələ ilə bizə yaradır. 866 00:35:32,130 --> 00:35:36,080 >> Mən əməliyyat sistemi xahiş nə yalnız bir sadə az pointer üçün 867 00:35:36,080 --> 00:35:38,530 bu adlanır kimi, ünvanı, bir pointer deyil 868 00:35:38,530 --> 00:35:40,980 sadə bir az qutusu bu kimi bir string adlanır? 869 00:35:40,980 --> 00:35:44,200 Necə əməliyyat istəmirəm yaddaş böyük bir yığın sistemi? 870 00:35:44,200 --> 00:35:48,430 Bu günə qədər, Mən yalnız geri kazanılmış dolayı GetString zəng. 871 00:35:48,430 --> 00:35:50,740 Belə ki, necə GetString edir onun yaddaş əldə hətta? 872 00:35:50,740 --> 00:35:53,430 >> Bəli, bu var çıxır ki, Burada bu digər funksiyası 873 00:35:53,430 --> 00:35:55,160 ki, biz indi istifadə etmək başlamaq lazımdır. 874 00:35:55,160 --> 00:35:59,780 İndi, bu yol daha sirli than-- görünür və mən it-- bilərsiniz olan yalnız bir am 875 00:35:59,780 --> 00:36:03,150 Bu xətt yol daha sirli görünür o, ilk baxışdan olmalıdır. 876 00:36:03,150 --> 00:36:04,650 Amma onu ayrı tease bildirin. 877 00:36:04,650 --> 00:36:07,950 >> Sol tərəfdə, mən char * t var. 878 00:36:07,950 --> 00:36:13,280 İngilis Belə ki, formalaşdırmaq başlamaq edək texniki jargon müvafiq cümlələr. 879 00:36:13,280 --> 00:36:19,757 Belə ki, bu ayrılması bir tipli char dəyişən t adlı *. 880 00:36:19,757 --> 00:36:21,090 İndi həqiqətən nə deməkdir? 881 00:36:21,090 --> 00:36:23,881 >> Yaxşı, o deməkdir ki, mən nə gedirəm t adlanan bu dəyişən qoymaq? 882 00:36:23,881 --> 00:36:24,780 883 00:36:24,780 --> 00:36:26,402 Bir char bir ünvan. 884 00:36:26,402 --> 00:36:28,360 Belə ki, yalnız sadə var daha ağlabatan şəkildə 885 00:36:28,360 --> 00:36:29,930 sol əl üzünü izah. 886 00:36:29,930 --> 00:36:32,890 Belə ki, burada yalnız bu box yaradır. 887 00:36:32,890 --> 00:36:34,760 Belə ki, sağ tərəfində, ehtimalla gedir 888 00:36:34,760 --> 00:36:37,170 ki, daha böyük ayrılması yaddaş necə yığın? 889 00:36:37,170 --> 00:36:38,340 Belə ki, bu ayrı tease bildirin. 890 00:36:38,340 --> 00:36:41,131 >> Bu, ilk baxışda böyük oldu lakin daxili burada nə olub? 891 00:36:41,131 --> 00:36:43,740 Birincisi, malloc var olan yeni dost, yəqin 892 00:36:43,740 --> 00:36:45,450 "Yaddaş ayrılması." 893 00:36:45,450 --> 00:36:49,560 Belə ki, bu qəbul olunan dəlil onu, belə ki, olduqca böyük dəlil var. 894 00:36:49,560 --> 00:36:50,970 Belə ki, bu ayrı tease bildirin. 895 00:36:50,970 --> 00:36:53,410 >> s strlen, əlbəttə, təmsil the-- 896 00:36:53,410 --> 00:36:54,142 897 00:36:54,142 --> 00:36:55,600 Auditoriya: simvolların sayı. 898 00:36:55,600 --> 00:36:56,710 DAVID J. MALAN: Yalnız s simvol sayı. 899 00:36:56,710 --> 00:36:59,040 Belə ki, s uzunluğu, orijinal string. 900 00:36:59,040 --> 00:37:00,350 Belə ki, G-a-b-e. 901 00:37:00,350 --> 00:37:02,320 Belə ki, yəqin ki, bu dörd halda var. 902 00:37:02,320 --> 00:37:05,485 Niyə sonra +1 edirəm s strlen zəng? 903 00:37:05,485 --> 00:37:06,360 Auditoriya: [işitilemez] 904 00:37:06,360 --> 00:37:07,590 DAVID J. MALAN: Bunun üçün xüsusi null xarakteri. 905 00:37:07,590 --> 00:37:11,260 Mənə qalsa uzunluğu nə Gabe adı, mən dörd demək gedirəm. 906 00:37:11,260 --> 00:37:14,480 Başlıq altında, baxmayaraq ki, mən lazım null xarakteri üçün beşinci byte. 907 00:37:14,480 --> 00:37:16,100 Mən +1 edirəm nə ki, var. 908 00:37:16,100 --> 00:37:21,730 >> İndi yalnız halda bu çalışan başqa bir kompüter proqramı, demək 909 00:37:21,730 --> 00:37:24,610 CS50 cihaz, bir char həcmi 910 00:37:24,610 --> 00:37:26,350 müxtəlif ola bilər öz kompüter üçün olan 911 00:37:26,350 --> 00:37:30,590 Mən bu zəng edə bilərsiniz çıxır ki, operator sizeof, yalnız kompüter xahiş 912 00:37:30,590 --> 00:37:32,870 bir ölçüsü nədir bu kompüterdə char? 913 00:37:32,870 --> 00:37:37,400 >> Və bu beş çarparaq bir char ölçüsü ilə nümunə 914 00:37:37,400 --> 00:37:40,440 ən kompüter olacaq yalnız bir, malloc ola 915 00:37:40,440 --> 00:37:44,830 Mənə bu böyük vəsait ayırmaq niyyətindədir Burada sağ üzərində yaddaş yığın. 916 00:37:44,830 --> 00:37:47,140 Və dönmək olacaq Bu, belə ki, bir funksiyası edir 917 00:37:47,140 --> 00:37:48,265 nə mənə qayıtmaq üçün gedir? 918 00:37:48,265 --> 00:37:50,914 919 00:37:50,914 --> 00:37:51,830 Auditoriya: The ünvanı? 920 00:37:51,830 --> 00:37:53,709 DAVID J. MALAN: nə ünvanı? 921 00:37:53,709 --> 00:37:55,250 Auditoriya: xatirəsinə Of ayrılan? 922 00:37:55,250 --> 00:37:56,450 DAVID J. MALAN: ən yaddaş ayırıb. 923 00:37:56,450 --> 00:37:59,189 Mən səmimi, heç bir fikrim yoxdur bu başa gedir. 924 00:37:59,189 --> 00:38:01,480 Mən təklif etmək niyyətində deyiləm Bu 0x88 sonuna qədər olacaq. 925 00:38:01,480 --> 00:38:02,770 926 00:38:02,770 --> 00:38:06,009 Tamamilə əsassız, lakin 0x50 başqa yerdə, 927 00:38:06,009 --> 00:38:08,800 əməliyyat sistemi, çünki nə Windows və Mac OS mənim üçün nə edir 928 00:38:08,800 --> 00:38:11,230 verilməsi ki, əmin olun Mənə RAM müxtəlif chunks. 929 00:38:11,230 --> 00:38:14,210 >> Belə ki, bu dəyəri bu deyil yaddaş yığın up son bilər. 930 00:38:14,210 --> 00:38:16,060 Belə ki, bu 0x88, burada bitir edir. 931 00:38:16,060 --> 00:38:17,480 932 00:38:17,480 --> 00:38:21,570 Belə ki, indi aydın, başa düşmək olar bu kimi eyni deyil ki, 933 00:38:21,570 --> 00:38:23,960 onlar işarə edirik, çünki yaddaş müxtəlif chunks. 934 00:38:23,960 --> 00:38:29,980 Mən indi həqiqətən, bu surəti istəyirsinizsə Belə ki, da, sizin təklif həll edək. 935 00:38:29,980 --> 00:38:36,870 >> , Yalnız getmək loop üçün yaratmaq imkan və t bracket i s bracket i alır. 936 00:38:36,870 --> 00:38:39,760 Indi istifadə edə bilərsiniz, çünki Bu array kimi notation, 937 00:38:39,760 --> 00:38:43,390 çünki baxmayaraq malloc çox generically mənə yaddaş ayırır, 938 00:38:43,390 --> 00:38:45,290 yaddaş bitişik bayt edir. 939 00:38:45,290 --> 00:38:47,240 Byte, byte, byte, geri geri geri. 940 00:38:47,240 --> 00:38:50,030 >> Mən bir proqramçı kimi, şübhəsiz ki, edə bilərsiniz bir sıra kimi müalicə edən 941 00:38:50,030 --> 00:38:55,090 Mən bu nəhayət tanış istifadə edə bilərsiniz deməkdir yalnız bir kvadrat mötərizə notation. 942 00:38:55,090 --> 00:38:56,462 943 00:38:56,462 --> 00:39:00,020 >> Belə ki, mənə, çünki orada fasilə imkan Bu hətta bütün bir dəfə çox 944 00:39:00,020 --> 00:39:03,530 əsas ideyası recap olsa simli edir, bütün bu vaxt, 945 00:39:03,530 --> 00:39:05,550 yeni data type özlüyündə deyil. 946 00:39:05,550 --> 00:39:10,150 Bu, sadəcə bir sözdə göstərici var bir xarakter ünvanı, 947 00:39:10,150 --> 00:39:12,650 yalnız deməkdir bir sıra ki insan konvensiyası ilə 948 00:39:12,650 --> 00:39:15,350 biz 0x bir şey kimi yazmaq meyli. 949 00:39:15,350 --> 00:39:18,590 >> Amma bu, yalnız bir sıra 33 Oxford Street kimi, 950 00:39:18,590 --> 00:39:20,530 olan olur CS binanın ünvanı. 951 00:39:20,530 --> 00:39:22,000 952 00:39:22,000 --> 00:39:23,545 Bu məlumat hər hansı suallar? 953 00:39:23,545 --> 00:39:24,790 954 00:39:24,790 --> 00:39:25,289 Bəli? 955 00:39:25,289 --> 00:39:28,530 >> Auditoriya: Niyə biz yoxlamaq yoxdur bərabər t null? 956 00:39:28,530 --> 00:39:30,740 >> DAVID J. MALAN: Niyə biz bunu null bərabər t yoxlamaq? 957 00:39:30,740 --> 00:39:33,250 Biz documentation-- oxumaq əgər malloc üçün böyük question--, 958 00:39:33,250 --> 00:39:37,020 Bu, gözəl çap demək olacaq bəzən malloc, null qayıtmaq bilər 959 00:39:37,020 --> 00:39:38,080 yalnız GetString kimi. 960 00:39:38,080 --> 00:39:41,820 Və həqiqətən, GetString null qaytarır Öz növbəsində, malloc null qaytarır əgər, 961 00:39:41,820 --> 00:39:43,130 GetString malloc istifadə edir, çünki. 962 00:39:43,130 --> 00:39:46,400 >> OS əgər ki, baş verə bilər Mac OS, Windows, nə olursa olsun, sadəcə 963 00:39:46,400 --> 00:39:48,130 sizin üçün yaddaş. 964 00:39:48,130 --> 00:39:49,820 Belə ki, orada nə var. 965 00:39:49,820 --> 00:39:52,910 >> Və mənə başqa bir şey aşkar imkan yalnız fikrinizi əsəcək bilər 966 00:39:52,910 --> 00:39:55,100 və ya tamamilə çox xətti üzərində olacaq. 967 00:39:55,100 --> 00:39:59,770 Amma mənə qoparmaq imkan çıxarmaq üçün loop üçün eyni, 968 00:39:59,770 --> 00:40:05,480 bir an əvvəl geri idi bu. t bracket i s bracket i alır. 969 00:40:05,480 --> 00:40:06,740 >> Nice və istifadəçi dostu. 970 00:40:06,740 --> 00:40:09,330 Daha Həftə İki kimi hiss edir. 971 00:40:09,330 --> 00:40:14,920 Amma bu versiyası həqiqətən ola bilər sirli görünür bu kimi yenidən. 972 00:40:14,920 --> 00:40:18,280 Bu texnika adlı göstərici var hesab, ünvanı hesab. 973 00:40:18,280 --> 00:40:19,600 Amma niyə bu iş? 974 00:40:19,600 --> 00:40:22,220 >> İndi annoyingly, bu C müəllifləri istifadə etmək qərarına 975 00:40:22,220 --> 00:40:25,070 müxtəlif məqsədlər üçün * rəmzidir. 976 00:40:25,070 --> 00:40:29,020 Biz artıq bir dəfə istifadə gördüm deməkdir char *, "Mənə dəyişən verir 977 00:40:29,020 --> 00:40:31,210 ki, ehtiva olacaq bir char ünvanı. " 978 00:40:31,210 --> 00:40:33,990 Bu kontekstdə belə char * "Mənə dəyişən verir" deməkdir. 979 00:40:33,990 --> 00:40:40,050 >> Təəssüf ki, siz * olmadan istifadə əgər qarşısında bir söz, char kimi, 980 00:40:40,050 --> 00:40:41,905 indi deyirlər dereference operator. 981 00:40:41,905 --> 00:40:43,530 Və biz uzun əvvəl bu daha görəcəksiniz. 982 00:40:43,530 --> 00:40:44,930 Amma bu, yalnız "getmək" deməkdir. 983 00:40:44,930 --> 00:40:49,070 Kimsə mənə təhvil əgər, deyən kimi kağız bir parça "33 Oxford Street," 984 00:40:49,070 --> 00:40:53,830 I "* 33 Oxford Street," əgər o deməkdir ki, "CS binanın yol aşağı getmək." 985 00:40:53,830 --> 00:40:57,220 >> Belə * orada əgər getmək deməkdir Bunun qarşısında heç bir söz var. 986 00:40:57,220 --> 00:40:59,100 Belə ki, aydın olmaq, t nədir? 987 00:40:59,100 --> 00:41:03,250 t yığın ünvanı Mənə geri verildi ki, yaddaş. 988 00:41:03,250 --> 00:41:06,650 s, aydın olmaq nə, bu ünvanı Məsələn, biz müzakirə etdik, 989 00:41:06,650 --> 00:41:07,500 kiçik Gabe və? 990 00:41:07,500 --> 00:41:08,990 991 00:41:08,990 --> 00:41:10,005 nin ünvanı kontormerinin Təfərrüatlar 992 00:41:10,005 --> 00:41:11,585 993 00:41:11,585 --> 00:41:12,460 Auditoriya: The string. 994 00:41:12,460 --> 00:41:14,126 DAVID J. MALAN: Gabe orijinal adı Of. 995 00:41:14,126 --> 00:41:16,660 Belə ki, ünvan var yaddaş bu yığın. 996 00:41:16,660 --> 00:41:22,220 Mən demək əgər t + i i, bildiriş, yalnız bizim köhnə dostumuzdur. 997 00:41:22,220 --> 00:41:24,770 Bu, sadəcə bir index dəyişən ki, qədər sıfır olan iterating 998 00:41:24,770 --> 00:41:26,960 simli s uzunluğu. 999 00:41:26,960 --> 00:41:30,367 Belə ki, sonra sıfır, bir olacaq sonra iki, sonra üç, sonra dörd. 1000 00:41:30,367 --> 00:41:33,200 Belə ki, bu yeni toplaşmaq bildirin Scratch kimi puzzle ədəd, Siz, 1001 00:41:33,200 --> 00:41:36,140 baxmayaraq, yenə syntax Not çox daha gizli deyil. 1002 00:41:36,140 --> 00:41:39,522 Belə ki, t ünvanı + edir i mənə vermək gedir 1003 00:41:39,522 --> 00:41:42,480 bir sıra, bu, çünki bütün biz hex kimi rəsm etdik ki, nömrələri. 1004 00:41:42,480 --> 00:41:43,560 Lakin onlar yalnız ədəd istəyirik. 1005 00:41:43,560 --> 00:41:49,960 >> T ünvanı dedik əgər Belə ki, idi 0x88, 0x88 plus sıfır budur. 1006 00:41:49,960 --> 00:41:51,564 1007 00:41:51,564 --> 00:41:53,980 Siz rahat deyilik, hətta hələ hex, bir tahmin edir. 1008 00:41:53,980 --> 00:41:54,410 >> Auditoriya: Bu orijinal. 1009 00:41:54,410 --> 00:41:55,850 >> DAVID J. MALAN: 0x88 Still. 1010 00:41:55,850 --> 00:41:58,910 Belə * nə deməkdir 0x88 edir? 1011 00:41:58,910 --> 00:42:02,670 Bu deməkdir "getmək" deməkdir səmərəli, "Burada sizin barmaq qoymaq." 1012 00:42:02,670 --> 00:42:06,930 İndi sağ tərəfdən Bu ifadə, * və sonra parens, 1013 00:42:06,930 --> 00:42:11,586 s i olan s deməkdir + Burada kiçik g qədər müraciət. 1014 00:42:11,586 --> 00:42:16,220 s + 0, əlbəttə, nə s, s. 1015 00:42:16,220 --> 00:42:21,230 >> Belə ki, indi it * s, var olan yalnız * 33 kimi Oxford Street ünvan getmək deməkdir 1016 00:42:21,230 --> 00:42:22,010 s. 1017 00:42:22,010 --> 00:42:24,170 Belə ki, burada bu barmaq, sağ var. 1018 00:42:24,170 --> 00:42:26,050 Belə ki, nə nə kopyalayın üçün gedirəm? 1019 00:42:26,050 --> 00:42:30,260 Olan sağ şey, gabe, burada, burada kiçik g. 1020 00:42:30,260 --> 00:42:32,750 >> Ki, və belə təsiri loop ilk iteration, 1021 00:42:32,750 --> 00:42:36,200 Siz görünür baxmayaraq, təklif bir şey daha crazy daha mürəkkəb 1022 00:42:36,200 --> 00:42:42,110 biz əvvəl gördüm sadəcə deyib burada getmək və burada xarakter surəti. 1023 00:42:42,110 --> 00:42:44,700 Bu, həm də yerlərdə bir xəritə verilməsi oldu. 1024 00:42:44,700 --> 00:42:46,130 >> Və biz bu günə qədər daha çox lazımdır. 1025 00:42:46,130 --> 00:42:50,600 Amma indi üçün, ümid yalnız edir bu əsas fikir bəzi təqdim edir. 1026 00:42:50,600 --> 00:42:53,550 Və həqiqətən, baxaq burada bir final proqramı 1027 00:42:53,550 --> 00:42:57,480 və sonra vəd claymation, olan hər şey doğru olacaq. 1028 00:42:57,480 --> 00:42:57,980 Bütün hüquqlar. 1029 00:42:57,980 --> 00:43:01,680 Mənə orada getmək gündəmə açmaq bildirin. 1030 00:43:01,680 --> 00:43:02,850 1031 00:43:02,850 --> 00:43:05,440 Biz geri gəlmək lazımdır me-- belə edək uzun əvvəl bu şəkil. 1032 00:43:05,440 --> 00:43:08,360 Burada bu final misal açmaq edək. 1033 00:43:08,360 --> 00:43:09,440 1034 00:43:09,440 --> 00:43:12,710 >> Belə ki, burada super, super həyata proqramı 1035 00:43:12,710 --> 00:43:15,050 aşağıdakı ki, həyatda heç bir şey. 1036 00:43:15,050 --> 00:43:18,740 Bu ilk iki dəyişənlərin, x bəyan və bu zaman ədəd deyil ki, y, 1037 00:43:18,740 --> 00:43:19,240 özlüyündə. 1038 00:43:19,240 --> 00:43:20,448 Onlar özlüyündə, integers deyilik. 1039 00:43:20,448 --> 00:43:22,899 Onlar * yəqin var int. 1040 00:43:22,899 --> 00:43:25,690 Belə ki, yalnız hər kəs, bu nə deməkdir Sizin data növü, sizin dəyişən, 1041 00:43:25,690 --> 00:43:26,860 növü int * ulduz var? 1042 00:43:26,860 --> 00:43:30,240 Ki, bir int ünvanı var. 1043 00:43:30,240 --> 00:43:31,990 >> Mən hələ burada heç bir fikrim var. 1044 00:43:31,990 --> 00:43:35,150 Bu yalnız ", nəhayət qoymaq deməkdir burada int ünvanı. " 1045 00:43:35,150 --> 00:43:38,340 Bu yerdə 0x50, 0x88, yaddaş, bir ünvan olduğunu gedir. 1046 00:43:38,340 --> 00:43:40,200 Və y nə var həmçinin, olacaq. 1047 00:43:40,200 --> 00:43:44,920 >> Mən indi demək əgər x = malloc (sizeof (int)), Bu deyərək bir xülya yoludur, 1048 00:43:44,920 --> 00:43:49,000 hey əməliyyat sistemi, malloc vasitəsilə, ölçüsü üçün mənə kifayət qədər yaddaş vermək 1049 00:43:49,000 --> 00:43:52,370 yəqin ki, bir int və 32 bit və ya dörd bayt olacaq. 1050 00:43:52,370 --> 00:43:53,680 >> Belə ki, malloc nə qayıtmaq edir? 1051 00:43:53,680 --> 00:43:55,250 Malloc bir ünvan qaytarır. 1052 00:43:55,250 --> 00:43:57,020 Belə ki, nə x saxlanılır almaq olacaq? 1053 00:43:57,020 --> 00:44:00,600 Yığın ünvanı yaddaş, dörd bytes ki, malloc 1054 00:44:00,600 --> 00:44:03,360 yalnız xahiş mənim üçün aşkar əməliyyat sistemi. 1055 00:44:03,360 --> 00:44:08,240 >> İndi isə, line Burada dörd, bu * x = 42. 1056 00:44:08,240 --> 00:44:09,990 Sadəcə, aydın olmaq orada nə olacaq? 1057 00:44:09,990 --> 00:44:11,530 Sol tərəfində, * x. 1058 00:44:11,530 --> 00:44:13,610 ki, * 33 Oxford Street kimi. 1059 00:44:13,610 --> 00:44:15,523 Belə ki, * x nə deməkdir? 1060 00:44:15,523 --> 00:44:16,450 >> Auditoriya: gedin. 1061 00:44:16,450 --> 00:44:17,908 >> DAVID J. MALAN: ünvan gedin. 1062 00:44:17,908 --> 00:44:20,466 Harada ki, yığın yaddaş ona getmək edir. 1063 00:44:20,466 --> 00:44:21,979 Və təbii ki, nə var qoymaq? 1064 00:44:21,979 --> 00:44:22,520 Auditoriya: 42. 1065 00:44:22,520 --> 00:44:23,580 DAVID J. MALAN: 42. 1066 00:44:23,580 --> 00:44:25,650 Bütün sağ, * y, eyni fikir. 1067 00:44:25,650 --> 00:44:26,860 Y ünvan gedin. 1068 00:44:26,860 --> 00:44:31,740 Orada sayı 13 qoyun, lakin hazırda y nədir? 1069 00:44:31,740 --> 00:44:33,172 1070 00:44:33,172 --> 00:44:34,630 Auditoriya: yaddaş y yoxdur. 1071 00:44:34,630 --> 00:44:35,710 DAVID J. MALAN: var y üçün yaddaş. 1072 00:44:35,710 --> 00:44:38,215 Belə ki, nə yəqin y yoxdur Deyirdik olduğunuz kimi, ola? 1073 00:44:38,215 --> 00:44:38,520 >> Auditoriya: Garbage. 1074 00:44:38,520 --> 00:44:39,480 >> DAVID J. MALAN: Bəzi zibil dəyəri. 1075 00:44:39,480 --> 00:44:41,320 İndi, zibil dəyəri hələ bir sayı. 1076 00:44:41,320 --> 00:44:43,160 Bu hələ bir ünvan səhv ola bilər. 1077 00:44:43,160 --> 00:44:45,160 Bu kimsə sanki var , bir şey yazı 1078 00:44:45,160 --> 00:44:48,002 və mən mənası kimi təhrif küçə aşağı bir ev. 1079 00:44:48,002 --> 00:44:50,460 Və yalnız getmək üçün cəhd edin öz olmayan bir bina, 1080 00:44:50,460 --> 00:44:53,710 və ya yaddaş bir yığın siz yoxdur verilmiş olub, pis şeylər baş verə bilər. 1081 00:44:53,710 --> 00:44:57,740 Kompüter bəzi digər qəza, və ya ola bilər təyin davranış baş verə bilər. 1082 00:44:57,740 --> 00:45:01,310 >> Belə ki, o, Binky bu intro edir. 1083 00:45:01,310 --> 00:45:04,290 Mən hələ 20, xatırlayıram bəzi qəribə il sonra, 1084 00:45:04,290 --> 00:45:07,200 Mən mən nəhayət olduğu göstəricilərinə aydın. 1085 00:45:07,200 --> 00:45:09,520 >> Əgər, demək olan üç dəqiqə buradan ayrılmaq 1086 00:45:09,520 --> 00:45:12,170 və mən nə edirəm göstəricilərinə anlamaq, dərk 1087 00:45:12,170 --> 00:45:14,410 Mən 20 yad ediblər Bəzi crazy səbəbdən il 1088 00:45:14,410 --> 00:45:17,140 zaman və nə nəhayət batmış mənim tədris oturan 1089 00:45:17,140 --> 00:45:19,501 fellow, Nishat Mehta ildə Eliot iaşə xidmətləri Hall geri. 1090 00:45:19,501 --> 00:45:21,250 İndi mən yad etdik bu idi, çünki 1091 00:45:21,250 --> 00:45:23,920 mövzular Mən də bir xüsusi ilə mübarizə etdi. 1092 00:45:23,920 --> 00:45:26,470 Və sonra, nəhayət tıklayan, kimi mən bir çox mövzu demək cəsarət 1093 00:45:26,470 --> 00:45:27,460 nəhayət olacaq. 1094 00:45:27,460 --> 00:45:32,590 İndi ki, bütün hiss etmək xoşbəxt və bütün daha inandırıcı, 1095 00:45:32,590 --> 00:45:35,360 nin final nəzər imkan bizim Burada Binky son üç dəqiqə, 1096 00:45:35,360 --> 00:45:37,675 bizim dostumuz, Nick gələn Stanford Parlante. 1097 00:45:37,675 --> 00:45:38,910 1098 00:45:38,910 --> 00:45:41,580 >> [Video playback] 1099 00:45:41,580 --> 00:45:42,750 >> -Hey, Binky. 1100 00:45:42,750 --> 00:45:43,500 Uyan! 1101 00:45:43,500 --> 00:45:45,960 Bu göstərici əyləncə üçün vaxt var. 1102 00:45:45,960 --> 00:45:47,012 >> Ki, hansı var? 1103 00:45:47,012 --> 00:45:48,723 Göstəricilər haqqında məlumat əldə edin? 1104 00:45:48,723 --> 00:45:50,580 Oh, goody! 1105 00:45:50,580 --> 00:45:53,563 >> Bəli, başlamaq üçün, biz edirik danışarlar bir neçə göstəricilərinə lazımdır gedir. 1106 00:45:53,563 --> 00:45:54,390 >> -Ok. 1107 00:45:54,390 --> 00:45:57,930 Bu kodu, iki göstəricilərinə ayırır olan integers qeyd edə bilərsiniz. 1108 00:45:57,930 --> 00:45:58,430 -Ok. 1109 00:45:58,430 --> 00:46:02,140 Yaxşı, mən iki göstəricilərinə görmək, lakin onlar bir işarə ola görünmür. 1110 00:46:02,140 --> 00:46:02,980 >> Yəni doğru. 1111 00:46:02,980 --> 00:46:05,100 Əvvəlcə göstəricilərinə bir şey qeyd etmir. 1112 00:46:05,100 --> 00:46:08,030 Onlar deyilir qeyd şeyləri pointees və onları yaradılması 1113 00:46:08,030 --> 00:46:09,370 bir ayrı addım. 1114 00:46:09,370 --> 00:46:10,220 >> Sağ, -Oh. 1115 00:46:10,220 --> 00:46:10,950 Mən ki, bilirdi. 1116 00:46:10,950 --> 00:46:12,385 The pointees ayrıdır. 1117 00:46:12,385 --> 00:46:14,315 Er, belə ki, necə bir pointee ayrılması edirsiniz? 1118 00:46:14,315 --> 00:46:15,340 1119 00:46:15,340 --> 00:46:15,960 >> -Ok. 1120 00:46:15,960 --> 00:46:18,970 Bəli, bu kodu ayırıb yeni tam pointee, 1121 00:46:18,970 --> 00:46:20,950 və bu hissəsi x onu qeyd etmək. 1122 00:46:20,950 --> 00:46:22,050 1123 00:46:22,050 --> 00:46:23,230 >> -Hey, Daha yaxşı görünür. 1124 00:46:23,230 --> 00:46:25,060 Belə ki, bir şey etmək. 1125 00:46:25,060 --> 00:46:25,990 >> -Ok. 1126 00:46:25,990 --> 00:46:30,455 Mən dereference göstəricisidir x lazımdır onun pointee daxil sayı 42-saxlamaq. 1127 00:46:30,455 --> 00:46:32,830 Bu oyun üçün, lazımdır mənim Dereferencing Magic Wand. 1128 00:46:32,830 --> 00:46:34,130 1129 00:46:34,130 --> 00:46:36,080 >> Dereferencing -Sizin Magic Wand? 1130 00:46:36,080 --> 00:46:37,357 1131 00:46:37,357 --> 00:46:38,190 That-- ki, böyük. 1132 00:46:38,190 --> 00:46:39,340 1133 00:46:39,340 --> 00:46:41,080 >> -Bu Kodu kimi görünür. 1134 00:46:41,080 --> 00:46:44,110 Mən yalnız sayı, və [POP] qurmaq lazımdır 1135 00:46:44,110 --> 00:46:44,700 >> -Hey Baxmaq. 1136 00:46:44,700 --> 00:46:46,140 Orada gedir. 1137 00:46:46,140 --> 00:46:50,980 >> X aşağıdakı bir dereference edir -Yaxşı arrow onun pointee daxil olmaq üçün. 1138 00:46:50,980 --> 00:46:53,160 Bu halda, mağaza 42. 1139 00:46:53,160 --> 00:46:57,710 Hey sayı saxlamaq üçün istifadə edin Digər göstərici 13, y. 1140 00:46:57,710 --> 00:46:58,760 >> -Ok. 1141 00:46:58,760 --> 00:47:03,270 Mən yalnız y burada artıq getmək lazımdır, və sayı 13 set up almaq. 1142 00:47:03,270 --> 00:47:07,930 Və sonra, bu Çubuq almaq Dereferencing və yalnız [BUZZ] 1143 00:47:07,930 --> 00:47:08,960 >> Olduqca! 1144 00:47:08,960 --> 00:47:09,500 >> Hey, -Oh! 1145 00:47:09,500 --> 00:47:11,090 Ki, işləmədi. 1146 00:47:11,090 --> 00:47:15,630 Binky, mən dereferencing düşünmürəm, demək Bilirsiniz, çünki y, yaxşı bir fikirdir 1147 00:47:15,630 --> 00:47:17,850 pointee yaradılması ayrı bir addımdır. 1148 00:47:17,850 --> 00:47:20,450 Və biz heç bunu düşünmürəm. 1149 00:47:20,450 --> 00:47:21,480 >> Yaxşı point. 1150 00:47:21,480 --> 00:47:21,980 Bəli. 1151 00:47:21,980 --> 00:47:25,680 Biz göstərici y ayrılan, lakin biz heç bir pointee qeyd etmək seçin. 1152 00:47:25,680 --> 00:47:27,190 1153 00:47:27,190 --> 00:47:28,616 >> -Çox Müşahidəçi. 1154 00:47:28,616 --> 00:47:30,240 -Hey, Orada Binky yaxşı axtarır edirik. 1155 00:47:30,240 --> 00:47:33,400 Siz ki, bunu düzeltmek y xal x eyni pointee? 1156 00:47:33,400 --> 00:47:34,000 >> -Əlbəttə. 1157 00:47:34,000 --> 00:47:36,780 Mən Magic Çubuq istifadə edəcəyik Pointer Tapşırığın. 1158 00:47:36,780 --> 00:47:38,740 >> Olacaq ki, iş aparılırmı əvvəl kimi bir problem? 1159 00:47:38,740 --> 00:47:39,240 No. 1160 00:47:39,240 --> 00:47:40,660 Bu pointees toxunmaq deyil. 1161 00:47:40,660 --> 00:47:44,450 Bu, sadəcə bir göstərici dəyişikliklər başqa eyni şey qeyd. 1162 00:47:44,450 --> 00:47:45,450 >> Olduqca görürəm. 1163 00:47:45,450 --> 00:47:48,200 X eyni yerə İndi y xal. 1164 00:47:48,200 --> 00:47:48,910 Beləliklə, gözləyin. 1165 00:47:48,910 --> 00:47:49,950 İndi, y müəyyən edilir. 1166 00:47:49,950 --> 00:47:51,120 Bu pointee var. 1167 00:47:51,120 --> 00:47:54,510 Belə ki, siz Çubuq cəhd edə bilərsiniz 13 üzərində göndərmək üçün yenidən dereferencing. 1168 00:47:54,510 --> 00:47:56,510 >> OK, -Uh. 1169 00:47:56,510 --> 00:47:58,160 Burada gedir. [POP] 1170 00:47:58,160 --> 00:47:59,340 >> -Hey Ki, baxmaq. 1171 00:47:59,340 --> 00:48:00,750 İndi y işləri dereferencing. 1172 00:48:00,750 --> 00:48:04,991 Və göstəricilərinə mübadiləsi, çünki bir pointee ki, onlar həm 13 görürük. 1173 00:48:04,991 --> 00:48:05,490 Bəli. 1174 00:48:05,490 --> 00:48:06,870 Paylaşma, nə. 1175 00:48:06,870 --> 00:48:08,820 Beləliklə, biz indi yerlərdə keçid gedir? 1176 00:48:08,820 --> 00:48:09,440 >> Oh, baxmaq. 1177 00:48:09,440 --> 00:48:10,830 Biz vaxt həyata edirik. 1178 00:48:10,830 --> 00:48:11,570 >> -But-- 1179 00:48:11,570 --> 00:48:13,530 >> Üç göstərici qaydaları xatırlamaq -Sadəcə. 1180 00:48:13,530 --> 00:48:16,560 Number One, əsas struktur bir göstərici var ki, 1181 00:48:16,560 --> 00:48:18,680 və bu pointee üzərində göstərir. 1182 00:48:18,680 --> 00:48:20,640 Lakin göstərici və pointee, ayrı 1183 00:48:20,640 --> 00:48:22,610 və ümumi səhv bir pointer qurmaq üçün, 1184 00:48:22,610 --> 00:48:25,000 lakin pointee vermək unutmaq. 1185 00:48:25,000 --> 00:48:28,170 >> Sayı iki, pointer dereferencing göstərici başlayır 1186 00:48:28,170 --> 00:48:31,050 və üzərində arrow aşağıdakı onun pointee daxil olmaq üçün. 1187 00:48:31,050 --> 00:48:33,400 Biz bütün Bildiyiniz kimi, bu olarsa yalnız çalışır 1188 00:48:33,400 --> 00:48:36,270 bir pointee, hansı cür Number One Qaydasının geri alır. 1189 00:48:36,270 --> 00:48:39,000 >> Sayı üç, pointer tapşırıq bir pointer edir 1190 00:48:39,000 --> 00:48:42,320 və qeyd etmək dəyişir başqa göstərici eyni pointee. 1191 00:48:42,320 --> 00:48:44,160 Tapşırığın sonra belə, iki göstəricilərinə 1192 00:48:44,160 --> 00:48:45,910 eyni pointee qeyd edəcək. 1193 00:48:45,910 --> 00:48:47,990 Bəzən paylaşım deyirlər. 1194 00:48:47,990 --> 00:48:49,740 Və həqiqətən, orada bütün var. 1195 00:48:49,740 --> 00:48:50,277 Bye-bye indi. 1196 00:48:50,277 --> 00:48:51,110 [END Video playback] 1197 00:48:51,110 --> 00:48:52,568 DAVID J. MALAN: Bu CS50 üçün var. 1198 00:48:52,568 --> 00:48:55,110 Gələn həftə görəcəksiniz. 1199 00:48:55,110 --> 00:48:56,064