1 00:00:00,000 --> 00:00:11,046 2 00:00:11,046 --> 00:00:12,170 ALLISON BUCHHOLTZ-AU: Hei, semua orang. 3 00:00:12,170 --> 00:00:13,560 Selamat datang ke bahagian. 4 00:00:13,560 --> 00:00:17,320 Hari ini hanya akan menjadi semua kuiz mengkaji untuk kuiz anda pada hari Rabu. 5 00:00:17,320 --> 00:00:20,060 Saya harap semua orang ingat bahawa mereka mempunyai kuiz, Rabu. 6 00:00:20,060 --> 00:00:22,560 Dan jika anda tidak melakukan, baik, sekarang anda telah diingatkan. 7 00:00:22,560 --> 00:00:26,486 Jadi Rabu pastikan anda muncul untuk kelas atau penginapan lain sebagai 8 00:00:26,486 --> 00:00:26,985 perlu. 9 00:00:26,985 --> 00:00:27,845 10 00:00:27,845 --> 00:00:29,220 Kalian akan menjadi luar biasa. 11 00:00:29,220 --> 00:00:30,440 Ia akan menjadi besar. 12 00:00:30,440 --> 00:00:34,910 Dan saya akan melakukan semua yang saya boleh untuk membantu mempersiapkan anda hari ini untuk kuiz anda 13 00:00:34,910 --> 00:00:35,470 sekarang. 14 00:00:35,470 --> 00:00:39,960 Dan juga sekiranya anda tidak tahu, ada sesi kajian lebar kursus 15 00:00:39,960 --> 00:00:45,840 hari ini pada pukul 7 Makmal Northwest B103 bilik. 16 00:00:45,840 --> 00:00:49,950 Anda boleh melihat saya lagi untuk encore sebagai Saya akan membawa sebahagian daripada sesi kajian 17 00:00:49,950 --> 00:00:50,510 juga. 18 00:00:50,510 --> 00:00:53,218 Jadi, jika anda tidak boleh mendapatkan cukup dari saya sekarang, anda boleh datang lagi malam ini. 19 00:00:53,218 --> 00:00:54,130 20 00:00:54,130 --> 00:00:56,060 >> Baiklah, perkara jadi pertama pertama. 21 00:00:56,060 --> 00:00:59,630 Hanya beberapa tips kuiz sebelum kita benar-benar menyelam ke ulasan. 22 00:00:59,630 --> 00:01:04,160 Jadi seperti mana-mana ujian, amalan pasti akan membantu anda. 23 00:01:04,160 --> 00:01:09,260 Ada ujian dari masa lalu enam atau tujuh tahun di sana, 24 00:01:09,260 --> 00:01:12,480 jadi itu banyak amalan bahan untuk kalian untuk memiliki. 25 00:01:12,480 --> 00:01:15,340 Dan sebenarnya, hari ini adalah benar-benar hanya akan pergi atas apa-apa topik 26 00:01:15,340 --> 00:01:18,900 bahwa kalian mempunyai soalan pada juga sebagai bekerja melalui latihan soal 27 00:01:18,900 --> 00:01:20,360 dari kuiz sifar. 28 00:01:20,360 --> 00:01:22,690 Jadi saya akan muntah kuiz sifar dari tahun lalu di sini, 29 00:01:22,690 --> 00:01:26,410 dan kita dapat mengatasi masalah bahwa kalian ingin. 30 00:01:26,410 --> 00:01:27,370 >> Jadi berlatih. 31 00:01:27,370 --> 00:01:29,310 Anda akan mula melakukan hari ini. 32 00:01:29,310 --> 00:01:30,230 Kod di atas kertas. 33 00:01:30,230 --> 00:01:32,970 Jadi ya, jika semua orang sebenarnya boleh keluar 34 00:01:32,970 --> 00:01:35,810 kertas, yang akan menjadi besar, kerana anda tidak 35 00:01:35,810 --> 00:01:41,470 akan mempunyai komputer anda pada ujian dan menulis kod dengan tangan 36 00:01:41,470 --> 00:01:44,190 sering jauh lebih sukar daripada apa yang anda harapkan. 37 00:01:44,190 --> 00:01:46,680 Anda digunakan untuk hanya melihat dan menaip itu, 38 00:01:46,680 --> 00:01:49,630 dan anda mempunyai compiler untuk membantu anda apabila anda mempunyai kesalahan, 39 00:01:49,630 --> 00:01:52,190 tetapi anda tidak mendapat bahawa pada ujian. 40 00:01:52,190 --> 00:01:55,140 Sehingga benar-benar penting untuk benar-benar dapat menulis kod, 41 00:01:55,140 --> 00:01:58,360 dan memori otot melakukan dengan tangan benar-benar akan membantu anda. 42 00:01:58,360 --> 00:01:59,720 43 00:01:59,720 --> 00:02:01,690 >> Jadi kita mendapatkan sedikit dekat. 44 00:02:01,690 --> 00:02:02,340 Ini Isnin. 45 00:02:02,340 --> 00:02:03,930 Peperiksaan anda pada hari Rabu. 46 00:02:03,930 --> 00:02:06,030 Tetapi jika anda mempunyai masa, pasti mengambil satu 47 00:02:06,030 --> 00:02:10,199 ujian dari tahun lalu atau tahun sebelum di bawah kekangan masa 48 00:02:10,199 --> 00:02:11,660 dari satu jam setengah. 49 00:02:11,660 --> 00:02:13,730 Hanya melumpuhkan satu jam dan setengah masa, 50 00:02:13,730 --> 00:02:17,480 dan duduk sendiri, dan hanya bekerja melalui masalah-masalah 51 00:02:17,480 --> 00:02:19,962 seolah-olah anda sebenarnya mengambilnya, kerana salah 52 00:02:19,962 --> 00:02:23,295 satu perkara yang paling besar yang kita dengar kuiz adalah bahawa mereka adalah sangat lama. 53 00:02:23,295 --> 00:02:24,900 54 00:02:24,900 --> 00:02:26,660 Ia adalah banyak bahan. 55 00:02:26,660 --> 00:02:30,850 Ada banyak soalan, dan kebanyakan orang tidak boleh menyelesaikan. 56 00:02:30,850 --> 00:02:34,660 Saya tahu bahawa saya benar-benar tidak selesai kuiz saya ketika saya mengambil kelas. 57 00:02:34,660 --> 00:02:37,180 >> Dalam pada itu, sebagai kurang seksyen selesa, 58 00:02:37,180 --> 00:02:40,570 memahami bahawa kursus ini yang dimaksudkan untuk melayani orang-orang dari semua peringkat. 59 00:02:40,570 --> 00:02:43,640 Sebab keseluruhan kami mempunyai anda berpecah kurang selesa, di suatu tempat antara, 60 00:02:43,640 --> 00:02:47,660 dan lebih selesa adalah untuk jenis menjadikannya lebih adil. 61 00:02:47,660 --> 00:02:51,699 Dan jika anda kurang selesa, itu tidak perlu semata untuk mendapatkan segala-galanya. 62 00:02:51,699 --> 00:02:53,990 Seperti jika anda telah mendapatkan segala-galanya, anda mungkin akan 63 00:02:53,990 --> 00:02:55,448 berada di bahagian yang lebih selesa. 64 00:02:55,448 --> 00:03:00,160 Jadi jelas tidak memukul dirimu sendiri terlalu sukar jika anda tidak dapat menyelesaikan ujian. 65 00:03:00,160 --> 00:03:01,920 Ambillah dari saya, saya tidak melakukannya. 66 00:03:01,920 --> 00:03:03,070 Saya masih concentrator. 67 00:03:03,070 --> 00:03:04,630 Saya masih membantu mengajar kursus. 68 00:03:04,630 --> 00:03:06,170 Anda akan baik-baik saja. 69 00:03:06,170 --> 00:03:06,670 Baik. 70 00:03:06,670 --> 00:03:08,740 Dan akhir sekali, tidur. 71 00:03:08,740 --> 00:03:11,020 Tentunya dengan setiap ujian kami selalu mengatakan ini. 72 00:03:11,020 --> 00:03:13,610 Menjejalkan malam sebelum dan tidak mendapat apa-apa tidur 73 00:03:13,610 --> 00:03:16,390 tidak elok mungkin jika yang kerja-kerja untuk anda, pergi untuk itu. 74 00:03:16,390 --> 00:03:18,790 Tetapi bagi sebahagian besar orang, untuk mendapatkan tidur, 75 00:03:18,790 --> 00:03:22,390 membiarkan sisa otak anda dan mendapatkan sebelum datang untuk ujian 76 00:03:22,390 --> 00:03:23,480 benar-benar akan membantu anda. 77 00:03:23,480 --> 00:03:26,120 Juga akan ada hampir pasti menjadi gula-gula pada ujian, 78 00:03:26,120 --> 00:03:28,019 jadi anda perlu melihat ke hadapan untuk. 79 00:03:28,019 --> 00:03:29,310 Kalian akan melakukan yang besar. 80 00:03:29,310 --> 00:03:30,226 Ini akan baik-baik saja. 81 00:03:30,226 --> 00:03:31,570 82 00:03:31,570 --> 00:03:36,190 Dan sekarang pada jam yang berikutnya dan setengah saya akan cuba dan persiapan anda sebaik yang saya boleh. 83 00:03:36,190 --> 00:03:41,260 >> Jadi saya mempunyai slaid dari pada dasarnya semua bahagian sehingga sekarang. 84 00:03:41,260 --> 00:03:45,874 Saya tidak akan pergi melalui semua daripada mereka kerana yang tidak 85 00:03:45,874 --> 00:03:49,040 dilaksanakan dalam masa satu jam setengah juga sebagai bekerja melalui masalah amalan. 86 00:03:49,040 --> 00:03:51,410 Jadi, saya mempunyai senarai topik. 87 00:03:51,410 --> 00:03:55,160 Ini semua adalah perkara-perkara yang yang kita dapat pada kuis Anda. 88 00:03:55,160 --> 00:03:56,950 89 00:03:56,950 --> 00:03:58,770 Jika ada apa-apa yang benar-benar melompat keluar 90 00:03:58,770 --> 00:04:02,140 yang anda mahu pergi ke, yang anda ingin saya pergi lebih dari segi konsep, 91 00:04:02,140 --> 00:04:04,320 Saya boleh mencuba dan memberikan Anda gambaran sana. 92 00:04:04,320 --> 00:04:07,690 Atau jika anda ingin melompat tepat di untuk melakukan masalah amalan bersama-sama, 93 00:04:07,690 --> 00:04:08,420 kita boleh melakukan itu. 94 00:04:08,420 --> 00:04:09,330 Terpulang kepada anda semua. 95 00:04:09,330 --> 00:04:10,770 Tidak ada yang ramai di antara kamu. 96 00:04:10,770 --> 00:04:13,180 Jadi itu apa sahaja yang kalian sukai. 97 00:04:13,180 --> 00:04:15,667 Saya mahu menjadi yang paling membantu ke arah kalian. 98 00:04:15,667 --> 00:04:16,827 99 00:04:16,827 --> 00:04:17,910 Jadi, saya akan memberitahu anda hanya melihat. 100 00:04:17,910 --> 00:04:27,880 101 00:04:27,880 --> 00:04:30,500 >> PENONTON: Satu perkara yang carta yang kita simpan 102 00:04:30,500 --> 00:04:33,290 katakan tentang tumpukan dan tumpukan. 103 00:04:33,290 --> 00:04:34,600 104 00:04:34,600 --> 00:04:37,434 Hanya seluruh Idea di sebalik itu dan apa yang bermakna. 105 00:04:37,434 --> 00:04:38,350 ALLISON BUCHHOLTZ-AU: Ya, OK. 106 00:04:38,350 --> 00:04:40,290 107 00:04:40,290 --> 00:04:43,216 Ini semua jalan di akhir, jadi biar tatal. 108 00:04:43,216 --> 00:04:45,490 >> PENONTON: Kami tidak perlu melakukannya sekarang, tetapi apa sahaja. 109 00:04:45,490 --> 00:04:47,070 110 00:04:47,070 --> 00:04:49,770 >> ALLISON BUCHHOLTZ-AU: Adakah anything-- satu ini. 111 00:04:49,770 --> 00:04:51,570 112 00:04:51,570 --> 00:04:53,555 Apakah jenis kabur bagi orang-orang? 113 00:04:53,555 --> 00:04:54,390 114 00:04:54,390 --> 00:04:55,640 PENONTON: Ya, saya yang kedua. 115 00:04:55,640 --> 00:04:57,718 Dan boleh kita juga buffer overflow? 116 00:04:57,718 --> 00:04:58,926 ALLISON BUCHHOLTZ-AU: Buffer overflow? 117 00:04:58,926 --> 00:04:59,820 OK. 118 00:04:59,820 --> 00:05:03,460 Jadi buffer overflow cukup mudah hanya untuk bercakap tentang. 119 00:05:03,460 --> 00:05:08,217 Ia pada dasarnya buffer anda berfikir tentang beberapa array memori yang anda ada, kan? 120 00:05:08,217 --> 00:05:10,050 Kami biasanya bercakap mengenai buffer overflow apabila 121 00:05:10,050 --> 00:05:15,160 Anda tidak memeriksa berapa banyak pengguna adalah meletakkan dalam, kan? 122 00:05:15,160 --> 00:05:18,540 Dan idea itu dengan buffer overflow adalah 123 00:05:18,540 --> 00:05:21,535 mereka letakkan jauh terlalu banyak data untuk ruang 124 00:05:21,535 --> 00:05:23,780 yang anda telah diperuntukkan bagi mereka, kan? 125 00:05:23,780 --> 00:05:28,310 >> Jadi, jika anda katakan, memberikan saya beberapa pesan, kami tidak 126 00:05:28,310 --> 00:05:31,860 menganggap bahawa mereka akan memberikan kita mesej panjang yang berpatutan. 127 00:05:31,860 --> 00:05:33,910 Mungkin beberapa garis, barang kecil. 128 00:05:33,910 --> 00:05:35,150 Jadi kita tidak cek. 129 00:05:35,150 --> 00:05:38,160 Sebaliknya mereka memberi kami makan dalam seluruh buku itu pesan, 130 00:05:38,160 --> 00:05:42,450 dan meluap jumlah ruang yang kita telah diperuntukkan untuk ini. 131 00:05:42,450 --> 00:05:48,140 Dan apa yang berlaku ialah ia mungkin menimpa tempat-tempat yang ia tidak sepatutnya. 132 00:05:48,140 --> 00:05:52,890 >> Jadi saya tahu Profesor Malan berkata sesuatu tentang serangan buffer overflow. 133 00:05:52,890 --> 00:05:59,050 Supaya di mana kehendak input pengguna beberapa jumlah besar data dengan harapan 134 00:05:59,050 --> 00:06:02,840 bahwa ia akan menimpa masa lalu akhir buffer anda 135 00:06:02,840 --> 00:06:06,479 dan menggantikan something-- saya tertanya-tanya Saya ada mereka slaid di sini. 136 00:06:06,479 --> 00:06:08,270 Saya tidak fikir kita perlu slaid di sini. 137 00:06:08,270 --> 00:06:09,960 138 00:06:09,960 --> 00:06:14,460 Tapi pada dasarnya ia menimpa beberapa bahagian memori 139 00:06:14,460 --> 00:06:17,780 yang membolehkan dia akses ke bahagian-bahagian dari komputer anda 140 00:06:17,780 --> 00:06:19,530 bahawa anda tidak akan biasanya mempunyai akses kepada. 141 00:06:19,530 --> 00:06:20,750 142 00:06:20,750 --> 00:06:23,155 >> Hal terbesar dengan buffer overflow hanya 143 00:06:23,155 --> 00:06:26,420 untuk memahami bahawa ia yang berlaku apabila anda tidak 144 00:06:26,420 --> 00:06:29,210 memeriksa berapa banyak anda pengguna adalah meletakkan dalam. 145 00:06:29,210 --> 00:06:32,770 Apabila anda tidak ada jenis melindungi terhadap itu. 146 00:06:32,770 --> 00:06:36,820 Dan pada yang paling sederhana hal, ia hanya pengguna anda 147 00:06:36,820 --> 00:06:39,130 memasukkan jumlah yang besar data dalam usaha 148 00:06:39,130 --> 00:06:45,090 menulis ganti beberapa keamanan bahagian ingatan anda. 149 00:06:45,090 --> 00:06:46,310 Itu semua itu. 150 00:06:46,310 --> 00:06:49,810 >> Jadi ini di sini, stack dan timbunan. 151 00:06:49,810 --> 00:06:53,090 Pada dasarnya semua ini adalah hanya representasi memori 152 00:06:53,090 --> 00:06:54,449 dan di mana perkara-perkara yang disimpan. 153 00:06:54,449 --> 00:06:56,240 Itu benar-benar jenis semua yang anda perlu tahu. 154 00:06:56,240 --> 00:06:58,520 Hal-hal terbesar yang yang anda perlu tahu adalah 155 00:06:58,520 --> 00:07:01,910 bahawa- saya melihat apakah ada better-- di sini. 156 00:07:01,910 --> 00:07:05,380 Jadi, ini adalah tumpukan di sini. 157 00:07:05,380 --> 00:07:08,410 >> Jadi tumpukan berkaitan dengan semua fungsi anda 158 00:07:08,410 --> 00:07:10,140 yang anda sedang gunakan pada bila-bila masa. 159 00:07:10,140 --> 00:07:15,060 Dan apa yang penting untuk diingat terkeluar dari minggu lepas dengan malloc 160 00:07:15,060 --> 00:07:21,080 adalah bahawa anda tidak benar-benar mempunyai kawalan yang perlu di atasnya. 161 00:07:21,080 --> 00:07:24,780 Ia semua bergantung kepada ketika tertentu fungsi pelaksana. 162 00:07:24,780 --> 00:07:28,170 Dan apabila mereka melaksanakan, mereka mempunyai apa yang dipanggil bingkai tindanan 163 00:07:28,170 --> 00:07:29,290 yang pergi di sini. 164 00:07:29,290 --> 00:07:32,520 >> Jadi semua jenis berlaku tanpa apa-apa input nyata daripada anda. 165 00:07:32,520 --> 00:07:33,630 166 00:07:33,630 --> 00:07:35,510 Anda menulis program anda, dan anda menjalankannya, 167 00:07:35,510 --> 00:07:38,470 dan tumpukan jenis mengambil peduli dengan sendirinya kerana ia perlu. 168 00:07:38,470 --> 00:07:42,940 Oleh itu, jika dalam utama yang anda panggil kubus, yang akan dilalui di sini. 169 00:07:42,940 --> 00:07:44,110 Itu akan membuat bingkai. 170 00:07:44,110 --> 00:07:48,330 Tetapi tidak ada yang jelas melakukan untuk membuat kerangka tumpukan selain 171 00:07:48,330 --> 00:07:51,430 menulis fungsi untuk memulakan dengan, OK? 172 00:07:51,430 --> 00:07:56,500 >> Apa yang jenis di bawah anda kawalan adalah tumpukan dengan malloc. 173 00:07:56,500 --> 00:08:01,950 Jadi, setiap kali anda sesuatu malloc, anda mengambil ingatan dari tumpukan. 174 00:08:01,950 --> 00:08:05,110 Dan itu adalah memori yang anda mempunyai, kerana kekurangan perkataan yang lebih baik, 175 00:08:05,110 --> 00:08:10,300 kawalan nyata ke atas, kerana ingat dengan malloc 176 00:08:10,300 --> 00:08:12,530 itu pada dasarnya ada sehingga anda mengatakan sebaliknya. 177 00:08:12,530 --> 00:08:14,890 Bagi anda yang menonton seksyen minggu lepas, 178 00:08:14,890 --> 00:08:17,670 itu ada sampai Anda kirim pergi. 179 00:08:17,670 --> 00:08:20,850 Ia akan berada di sana kecuali sebaliknya tidak diberitahu. 180 00:08:20,850 --> 00:08:24,750 Jadi timbunan itu hanya sesuatu boleh anda fikirkan sebagai memori 181 00:08:24,750 --> 00:08:26,150 bahawa anda mempunyai kawalan ke atas. 182 00:08:26,150 --> 00:08:29,010 Dan orang-orang yang hanya dua perkara besar yang berbeza. 183 00:08:29,010 --> 00:08:31,320 184 00:08:31,320 --> 00:08:38,330 >> Selain daripada itu, anda tidak perlu mempunyai perlu bimbang terlalu banyak tentang timbunan dan timbunan 185 00:08:38,330 --> 00:08:42,159 pertanyaan atau biasanya lebih adil jika anda mempunyai parameter lokal 186 00:08:42,159 --> 00:08:45,385 atau fungsi itu akan menjadi pada tumpukan atau longgokan itu. 187 00:08:45,385 --> 00:08:47,260 Jelas dalam hal ini ia akan menjadi tumpukan. 188 00:08:47,260 --> 00:08:49,630 Jika anda mallocing sesuatu, mana yang datang dari? 189 00:08:49,630 --> 00:08:50,129 Tumpukan. 190 00:08:50,129 --> 00:08:51,147 191 00:08:51,147 --> 00:08:54,230 Jika anda lihat pada amalan kuiz, mereka umumnya jenis soalan 192 00:08:54,230 --> 00:08:55,460 yang mereka miliki. 193 00:08:55,460 --> 00:08:57,340 >> Anda tidak perlu bimbang terlalu banyak tentang hal itu. 194 00:08:57,340 --> 00:09:00,980 Anda masuk ke dalam dengan lebih jelas tentang timbunan dan timbunan 195 00:09:00,980 --> 00:09:03,460 kemudian atas atau di dalam kelas CS lain. 196 00:09:03,460 --> 00:09:06,220 Jadi hanya mempunyai semacam gambaran umum tentang apa ini 197 00:09:06,220 --> 00:09:09,100 akan baik, yang saya hanya jenis pergi. 198 00:09:09,100 --> 00:09:10,650 199 00:09:10,650 --> 00:09:12,090 Mana-mana topik yang lain? 200 00:09:12,090 --> 00:09:12,590 Ya? 201 00:09:12,590 --> 00:09:14,923 >> PENONTON: Bolehkah anda pergi ke pointer lagi benar-benar cepat? 202 00:09:14,923 --> 00:09:15,870 ALLISON BUCHHOLTZ-AU: Pointer? 203 00:09:15,870 --> 00:09:18,470 Adakah anda ingin konseptual gambaran keseluruhan pointer 204 00:09:18,470 --> 00:09:19,994 atau adakah anda berlatih dengan pointer? 205 00:09:19,994 --> 00:09:21,410 PENONTON: Jenis seperti sintaks. 206 00:09:21,410 --> 00:09:22,360 ALLISON BUCHHOLTZ-AU: Sintaks? 207 00:09:22,360 --> 00:09:22,860 Yeah. 208 00:09:22,860 --> 00:09:32,090 209 00:09:32,090 --> 00:09:33,090 OK, kita sudah ada. 210 00:09:33,090 --> 00:09:38,300 211 00:09:38,300 --> 00:09:42,040 Ya, jadi ini adalah hanya jenis sesuatu apabila anda mempunyai fungsi rekursif, 212 00:09:42,040 --> 00:09:45,954 setiap kali fungsi rekursif dipanggil, ia hanya menambah tumpukan bingkai lain. 213 00:09:45,954 --> 00:09:47,870 Cukup banyak contoh bagaimana anda tidak benar-benar 214 00:09:47,870 --> 00:09:50,330 mempunyai kawalan ke atas bingkai pada stack anda. 215 00:09:50,330 --> 00:09:54,010 216 00:09:54,010 --> 00:09:54,585 >> OK, pointer. 217 00:09:54,585 --> 00:09:57,120 218 00:09:57,120 --> 00:09:59,235 Baiklah, jadi mewujudkan petunjuk. 219 00:09:59,235 --> 00:10:00,300 220 00:10:00,300 --> 00:10:02,420 Ingat, ia hanya menaip bintang. 221 00:10:02,420 --> 00:10:07,140 Jadi, apa pun jenis data yang Anda akan menunjuk ke. 222 00:10:07,140 --> 00:10:08,720 223 00:10:08,720 --> 00:10:11,440 Jadi ini akan menjadi penunjuk kepada int. 224 00:10:11,440 --> 00:10:13,140 Ini akan menjadi penunjuk kepada char. 225 00:10:13,140 --> 00:10:14,740 Ini akan menjadi penunjuk kepada apungan. 226 00:10:14,740 --> 00:10:17,980 Jadi pada dasarnya apa sahaja Anda mahu ia menunjuk kepada, 227 00:10:17,980 --> 00:10:22,300 bintang adalah bagaimana anda mengisytiharkan penunjuk, OK? 228 00:10:22,300 --> 00:10:26,200 >> Tetapi maka jelas mendapat sedikit rumit apabila anda mempunyai penunjuk 229 00:10:26,200 --> 00:10:27,370 atau anda mempunyai bintang apa sahaja. 230 00:10:27,370 --> 00:10:31,260 Jadi perbezaan besar adalah apabila anda declaring-- 231 00:10:31,260 --> 00:10:45,590 jadi kita harus some-- jadi ini mengambil beberapa int bintang. 232 00:10:45,590 --> 00:10:49,650 Jadi ini adalah beberapa penunjuk panggilan x sebagai int, kan? 233 00:10:49,650 --> 00:10:54,600 Jadi ingat apa yang dilakukan adalah ini menyeru sistem x. 234 00:10:54,600 --> 00:10:56,970 Dan ini akan mempunyai beberapa alamat, kan? 235 00:10:56,970 --> 00:11:00,515 Jadi mari kita hanya mengatakan ini adalah alamat kami. 236 00:11:00,515 --> 00:11:01,590 237 00:11:01,590 --> 00:11:03,570 Pointer memegang alamat. 238 00:11:03,570 --> 00:11:08,660 Jadi apa ini mengatakan adalah bahawa ini lokasi, kami menyimpan int. 239 00:11:08,660 --> 00:11:10,770 240 00:11:10,770 --> 00:11:15,770 >> Jadi satu lagi cara kita boleh memikirkan ini adalah bahawa ini adalah beberapa int. 241 00:11:15,770 --> 00:11:17,010 242 00:11:17,010 --> 00:11:20,350 Kita belum benar-benar diberikan kepada apa-apa lagi, tetapi ia hanya int. 243 00:11:20,350 --> 00:11:31,540 Jadi kita boleh lakukan adalah jika kita membintangi x sama dengan 5, ini menjadi 5, OK? 244 00:11:31,540 --> 00:11:38,350 Ini mengatakan pergi untuk apa pun yang x ialah menunjuk, jadi pergi ke alamat ini 245 00:11:38,350 --> 00:11:40,210 dan membuat ia sama dengan 5. 246 00:11:40,210 --> 00:11:44,390 Oleh itu, kita menetapkan 5 ke alamat ini, kan? 247 00:11:44,390 --> 00:11:52,540 >> Dan kemudian jika anda melakukan ini, ini memberi kami alamat. 248 00:11:52,540 --> 00:11:54,730 Ini adalah alamat pengendali. 249 00:11:54,730 --> 00:11:57,700 Jadi apa alamat x? 250 00:11:57,700 --> 00:11:58,809 Kita tidak tahu. 251 00:11:58,809 --> 00:12:00,225 Kami tidak pernah menyerah hak itu alamat. 252 00:12:00,225 --> 00:12:03,000 253 00:12:03,000 --> 00:12:09,105 Kita boleh mengatakan itu some-- sekarang kami berikan ia alamat, jadi alamat ialah 4. 254 00:12:09,105 --> 00:12:10,690 255 00:12:10,690 --> 00:12:16,980 Dan sebenarnya jika kita melalui sesuatu seperti ini, baik dari apa yang kita lakukan. 256 00:12:16,980 --> 00:12:25,800 Jadi bekerja melalui sini-saya dapati ia membantu jika anda menarik keluar pointer. 257 00:12:25,800 --> 00:12:28,270 Jika anda dalam peperiksaan, saya sangat mengesyorkan melukis kotak. 258 00:12:28,270 --> 00:12:29,490 259 00:12:29,490 --> 00:12:33,310 >> Jadi yang pertama ini, int x sama dengan 5. 260 00:12:33,310 --> 00:12:37,370 Ini hanya bermakna kita mempunyai beberapa meletakkan dalam ingatan iaitu 5, kan? 261 00:12:37,370 --> 00:12:38,540 262 00:12:38,540 --> 00:12:44,760 Dan meja kami di sini memberitahu kita bahawa itu di alamat 0x04. 263 00:12:44,760 --> 00:12:48,770 264 00:12:48,770 --> 00:12:50,280 Dan kemudian kita membuat beberapa penunjuk. 265 00:12:50,280 --> 00:12:51,820 266 00:12:51,820 --> 00:12:55,310 Jadi mari kita istirahat ini turun satu demi satu. 267 00:12:55,310 --> 00:12:59,820 Jadi ini mewujudkan beberapa kotak untuk int, kan? 268 00:12:59,820 --> 00:13:01,970 Ia akan memegang alamat penerima itu an. 269 00:13:01,970 --> 00:13:03,470 Jadi ini adalah beberapa penunjuk. 270 00:13:03,470 --> 00:13:04,940 271 00:13:04,940 --> 00:13:06,510 Dan kapur ini adalah benar-benar kecil. 272 00:13:06,510 --> 00:13:07,472 273 00:13:07,472 --> 00:13:08,680 Oleh itu, kita mempunyai beberapa penunjuk di sini. 274 00:13:08,680 --> 00:13:10,060 275 00:13:10,060 --> 00:13:13,530 Dan meja kami memberitahu kita yang alamat adalah 0x08. 276 00:13:13,530 --> 00:13:15,190 277 00:13:15,190 --> 00:13:16,200 Sejuk. 278 00:13:16,200 --> 00:13:23,240 Dan kami memberikan ke alamat x. 279 00:13:23,240 --> 00:13:26,330 >> Ingat, pointer memegang alamat, OK? 280 00:13:26,330 --> 00:13:32,050 Jadi jika kita ingin terus x, kita ada menggunakan operator alamat, yang 281 00:13:32,050 --> 00:13:36,520 adalah ampersand, untuk mendapatkan alamat x, yang dalam hal ini, 0x04. 282 00:13:36,520 --> 00:13:39,130 283 00:13:39,130 --> 00:13:44,430 Kemudian jika kita mempunyai beberapa salinan int, ini hanya 284 00:13:44,430 --> 00:13:48,060 menciptakan beberapa kotak lain yang memegang salinan int dipanggil. 285 00:13:48,060 --> 00:13:49,410 286 00:13:49,410 --> 00:13:55,330 Dan jika kita menetapkan ke this-- jadi ini adalah rujukan itu. 287 00:13:55,330 --> 00:14:00,090 Jadi yang dikatakan pergi ke apa sahaja alamat penunjuk memegang. 288 00:14:00,090 --> 00:14:05,330 Penunjuk memegang alamat ini, jadi kami akan pergi ke sini, 289 00:14:05,330 --> 00:14:07,130 dan kita berkata, OK, apa yang ada di dalamnya? 290 00:14:07,130 --> 00:14:08,610 Ini adalah 5. 291 00:14:08,610 --> 00:14:09,815 Jadi menjadi 5 salinan. 292 00:14:09,815 --> 00:14:11,800 293 00:14:11,800 --> 00:14:12,540 Masuk akal? 294 00:14:12,540 --> 00:14:15,540 295 00:14:15,540 --> 00:14:25,020 >> Bagaimana jika saya cuba untuk menetapkan ini hanya pointer. 296 00:14:25,020 --> 00:14:26,476 297 00:14:26,476 --> 00:14:27,850 Apa pointer sebenarnya sama? 298 00:14:27,850 --> 00:14:31,126 299 00:14:31,126 --> 00:14:34,315 Ia hanya akan menjadi apa sahaja penunjuk mengandung, kan? 300 00:14:34,315 --> 00:14:36,400 301 00:14:36,400 --> 00:14:37,580 Kemudian apa jika saya melakukan ini? 302 00:14:37,580 --> 00:14:38,922 303 00:14:38,922 --> 00:14:39,880 Apa yang akan menjadi salinan ini? 304 00:14:39,880 --> 00:14:41,365 305 00:14:41,365 --> 00:14:42,275 >> PENONTON: 0x08. 306 00:14:42,275 --> 00:14:44,150 ALLISON BUCHHOLTZ-AU: Yap, alamat pointer kami. 307 00:14:44,150 --> 00:14:46,832 308 00:14:46,832 --> 00:14:48,790 Mana-mana bahagian yang keperluan untuk dijelaskan semula? 309 00:14:48,790 --> 00:14:50,170 310 00:14:50,170 --> 00:14:50,670 Sejuk. 311 00:14:50,670 --> 00:14:53,350 312 00:14:53,350 --> 00:14:57,740 Pasti ada yang sangat masalah-senang di kuis satu 313 00:14:57,740 --> 00:15:00,100 yang kita dapat atas bahawa memberikan anda lebih banyak latihan. 314 00:15:00,100 --> 00:15:00,937 315 00:15:00,937 --> 00:15:03,270 Orang-orang dari minggu lepas boleh memberitahu anda ia tidak begitu buruk. 316 00:15:03,270 --> 00:15:06,000 Kami mendapat melalui keseluruhan sebuah grafik, dan semua orang melakukan besar. 317 00:15:06,000 --> 00:15:10,830 >> OK, jadi itu gambaran keseluruhan sintaks pointer. 318 00:15:10,830 --> 00:15:15,070 Hal terbesar adalah memahami bagaimana untuk menciptakan mereka, melakukan rujukan, 319 00:15:15,070 --> 00:15:18,190 dan alamat, OK? 320 00:15:18,190 --> 00:15:18,690 Sejuk. 321 00:15:18,690 --> 00:15:20,775 Mana-mana topik yang lain sebelum kita menyelam ke dalam amalan. 322 00:15:20,775 --> 00:15:24,280 323 00:15:24,280 --> 00:15:28,011 Juga jika kita akan melalui masalah amalan 324 00:15:28,011 --> 00:15:30,760 dan ada sesuatu yang anda mahu ulang kaji, kita boleh melakukannya juga. 325 00:15:30,760 --> 00:15:31,300 Adakah anda mempunyai sesuatu? 326 00:15:31,300 --> 00:15:32,758 >> PENONTON: Structs dan daftar link. 327 00:15:32,758 --> 00:15:35,130 ALLISON BUCHHOLTZ-AU: Structs dan dihubungkan senarai, OK. 328 00:15:35,130 --> 00:15:37,100 Jadi struct. 329 00:15:37,100 --> 00:15:38,990 Kami benar-benar akan malam ini ini juga. 330 00:15:38,990 --> 00:15:40,130 331 00:15:40,130 --> 00:15:41,890 OK, jadi struct. 332 00:15:41,890 --> 00:15:47,490 Structs pada dasarnya hanya satu cara bagi anda untuk memegang 333 00:15:47,490 --> 00:15:50,430 beberapa nilai dari jenis yang berbeza. 334 00:15:50,430 --> 00:15:55,150 Jadi dengan pelbagai kami terbatas untuk satu jenis data. 335 00:15:55,150 --> 00:16:00,965 Array kita sama ada mempunyai hanya menjadi nombor, atau hanya menjadi aksara, atau hanya mengapung. 336 00:16:00,965 --> 00:16:02,240 337 00:16:02,240 --> 00:16:05,470 >> Tapi mungkin anda perlu mengandungi lebih dari itu. 338 00:16:05,470 --> 00:16:09,130 Mungkin anda perlu hold-- jika anda bercakap tentang seorang pelajar, 339 00:16:09,130 --> 00:16:13,660 Anda akan mempunyai rumah mereka, mereka Nombor ID, umur mereka, di mana mereka tinggal, 340 00:16:13,660 --> 00:16:14,240 kan? 341 00:16:14,240 --> 00:16:16,460 Dan semua dari mereka adalah berbagai macam jenis. 342 00:16:16,460 --> 00:16:18,680 Jadi, anda tidak boleh menyimpan mereka semua dalam array. 343 00:16:18,680 --> 00:16:21,750 >> Jadi apa yang boleh anda lakukan adalah anda boleh membuat struct, yang 344 00:16:21,750 --> 00:16:26,240 Anda boleh anggap sebagai anda Jenis data peribadi sendiri. 345 00:16:26,240 --> 00:16:29,130 Jadi, bukan hanya memiliki ints dan bukan hanya memiliki mengapung, 346 00:16:29,130 --> 00:16:33,210 anda boleh mempunyai pelajar jenis yang mempunyai semua bidang tersebut di dalamnya. 347 00:16:33,210 --> 00:16:39,740 Jadi cara kita memulakan struct kami is-- sebenarnya 348 00:16:39,740 --> 00:16:44,921 kerana tulisan saya adalah sesuatu yang buruk, kita akan beralih kepada menaip. 349 00:16:44,921 --> 00:16:45,420 Woo. 350 00:16:45,420 --> 00:16:48,800 351 00:16:48,800 --> 00:16:53,150 >> OK, jadi jika kita ingin membuat satu struct-- Aku hanya akan ke sana ke sini. 352 00:16:53,150 --> 00:16:57,730 Tidak mengambil kira dalam apa jua utama yang akan kami gunakan nanti. 353 00:16:57,730 --> 00:17:02,330 Jadi, cara yang anda mahu lakukan ia adalah dengan struct typedef. 354 00:17:02,330 --> 00:17:10,530 355 00:17:10,530 --> 00:17:13,349 Dan mari kita sebut pelajar ini kerana itulah yang saya gunakan. 356 00:17:13,349 --> 00:17:17,801 OK, jadi typedef bermakna anda menentukan jenis baru, OK? 357 00:17:17,801 --> 00:17:20,140 358 00:17:20,140 --> 00:17:24,355 Ada nuansa ke dalam apabila anda melakukan hanya struct berbanding struct typedef. 359 00:17:24,355 --> 00:17:26,313 Bagi tujuan dan tujuan, kalian hanya 360 00:17:26,313 --> 00:17:29,490 akan menganggap mereka kira-kira yang sama dan hanya 361 00:17:29,490 --> 00:17:30,820 menggunakan typedef struct untuk saat ini. 362 00:17:30,820 --> 00:17:35,180 Ini akan menjadi cara yang lebih jelas dalam anda P seterusnya menetapkan apa perbezaan itu adalah, 363 00:17:35,180 --> 00:17:37,960 tetapi saya tidak fikir anda perlu bimbang tentang itu sekarang. 364 00:17:37,960 --> 00:17:40,360 Saya akan lebih suka anda tahu bagaimana untuk membuat satu, 365 00:17:40,360 --> 00:17:41,880 mengaksesnya, dan menetapkan [? nilai. ?] 366 00:17:41,880 --> 00:17:47,820 >> Sejenis baru struct, dan kita menyebutnya pelajar. 367 00:17:47,820 --> 00:17:52,640 Jadi setelah kami selesai membuat ini, bagi semua maksud dan tujuan, 368 00:17:52,640 --> 00:17:55,070 Anda akan mempunyai jenis yang dikenali sebagai pelajar. 369 00:17:55,070 --> 00:17:59,610 Dan anda boleh berfikir ia hanya sebagai jenis yang seperti int, atau apungan, atau char. 370 00:17:59,610 --> 00:18:01,820 Ia hanya satu lagi jenis, OK? 371 00:18:01,820 --> 00:18:04,530 >> Jadi dalam satu ini, apa yang kita ada? 372 00:18:04,530 --> 00:18:05,420 Kami mempunyai mungkin nama. 373 00:18:05,420 --> 00:18:08,275 Jadi mungkin kita ingin nama tali. 374 00:18:08,275 --> 00:18:09,610 375 00:18:09,610 --> 00:18:14,065 Dan kami mempunyai mungkin int itulah ID. 376 00:18:14,065 --> 00:18:16,360 377 00:18:16,360 --> 00:18:19,085 Dan kita mempunyai satu lagi di itu nombor telefon. 378 00:18:19,085 --> 00:18:21,990 379 00:18:21,990 --> 00:18:26,200 Dan kami telah some-- mari kita lihat. 380 00:18:26,200 --> 00:18:27,200 Apa lagi yang mungkin kita ada? 381 00:18:27,200 --> 00:18:29,385 Kami akan mempunyai beberapa string di rumahnya. 382 00:18:29,385 --> 00:18:32,340 383 00:18:32,340 --> 00:18:34,510 Semua perkara-perkara yang seseorang pelajar. 384 00:18:34,510 --> 00:18:36,960 >> Jadi ini mewujudkan struct sekarang. 385 00:18:36,960 --> 00:18:41,450 Jadi bagaimana kita boleh membuat seorang pelajar? 386 00:18:41,450 --> 00:18:46,960 Jika kita mempunyai beberapa pembolehubah yang akan bercakap tentang Walker di sini, 387 00:18:46,960 --> 00:18:51,245 jadi kami have-- kami hanya akan memanggil walker ini. 388 00:18:51,245 --> 00:18:52,520 Dia perlu jenis yang. 389 00:18:52,520 --> 00:18:53,770 Apa jenis anda? 390 00:18:53,770 --> 00:18:54,520 PENONTON: Pelajar. 391 00:18:54,520 --> 00:18:55,395 ALLISON BUCHHOLTZ-AU: Pelajar. 392 00:18:55,395 --> 00:18:57,130 393 00:18:57,130 --> 00:19:04,800 Jadi ini hanya menciptakan sesuatu objek yang anda boleh memikirkan yang mempunyai semua perkara ini. 394 00:19:04,800 --> 00:19:07,880 Yang baru saja dibuat seorang pelajar walker. 395 00:19:07,880 --> 00:19:10,910 Jadi sekarang kita perlu berupaya untuk menetapkan semua ini, kan? 396 00:19:10,910 --> 00:19:13,500 Jadi tidak ada yang masih ingat bagaimana kita akses dalam struct? 397 00:19:13,500 --> 00:19:14,762 398 00:19:14,762 --> 00:19:15,470 PENONTON: Tempoh. 399 00:19:15,470 --> 00:19:16,730 ALLISON BUCHHOLTZ-AU: Tempoh Tepat. 400 00:19:16,730 --> 00:19:23,795 Jadi jika kita ingin menetapkan dia nama, kita boleh berbuat demikian. 401 00:19:23,795 --> 00:19:24,820 402 00:19:24,820 --> 00:19:28,680 Jelas akan ini adalah-- bahagian ini di sini akan 403 00:19:28,680 --> 00:19:31,831 berada dalam utama, sehingga benar-benar membiarkan saya melakukan ini. 404 00:19:31,831 --> 00:19:40,980 405 00:19:40,980 --> 00:19:44,250 Menyatakan ini atas utama sehingga yang boleh kita gunakan dalam masa utama. 406 00:19:44,250 --> 00:19:52,250 407 00:19:52,250 --> 00:20:00,980 Jadi sekarang saya ingin lakukan ID, dan kami hanya akan melakukan beberapa di sana, 408 00:20:00,980 --> 00:20:02,970 dan kemudian kami akan memberikan sebuah rumah. 409 00:20:02,970 --> 00:20:07,990 410 00:20:07,990 --> 00:20:09,000 Bam. 411 00:20:09,000 --> 00:20:09,650 Sejuk. 412 00:20:09,650 --> 00:20:19,870 >> Jadi sekarang seharusnya kita merasa perlu untuk akses apa-apa kemudian on-- mungkin we-- 413 00:20:19,870 --> 00:20:25,920 jika kita merasa perlu untuk mengakses apa-apa, mari kita hanya melakukan ID int salinan. 414 00:20:25,920 --> 00:20:27,400 415 00:20:27,400 --> 00:20:30,530 Dan saya mahu untuk menyalin ID Walker ke dalam ini. 416 00:20:30,530 --> 00:20:31,370 Bagaimana saya melakukannya? 417 00:20:31,370 --> 00:20:33,670 418 00:20:33,670 --> 00:20:37,790 Anda perlu akses dalam walker struct kepada [? pergi ke itu?] [? E?]. 419 00:20:37,790 --> 00:20:41,280 Dan dengan cara yang sama yang kita ditugaskan di sini, bagaimana 420 00:20:41,280 --> 00:20:45,573 mungkin kita mengaksesnya apabila kita hendak memberikan yang nilai kepada sesuatu yang lain? 421 00:20:45,573 --> 00:20:46,406 PENONTON: Walker.id. 422 00:20:46,406 --> 00:20:47,252 423 00:20:47,252 --> 00:20:48,376 ALLISON BUCHHOLTZ-AU: Ya, betul-betul. 424 00:20:48,376 --> 00:20:51,884 425 00:20:51,884 --> 00:20:54,175 Jadi itu cukup banyak semua yang anda perlu tahu untuk struct. 426 00:20:54,175 --> 00:20:55,750 427 00:20:55,750 --> 00:20:58,560 Anda hanya perlu memikirkan mereka sebagai variabel lain. 428 00:20:58,560 --> 00:21:01,710 Pada dasarnya membuat anda Jenis pembolehubah sendiri, OK? 429 00:21:01,710 --> 00:21:04,440 430 00:21:04,440 --> 00:21:07,970 Anda menggunakannya untuk menyatakan pembolehubah dalam mana-mana cara. 431 00:21:07,970 --> 00:21:10,290 Di sini walker masih variabel. 432 00:21:10,290 --> 00:21:14,230 Ia hanya mempunyai pelajar jenis sekarang bukan dari int jenis, atau string jenis, 433 00:21:14,230 --> 00:21:15,070 atau char jenis. 434 00:21:15,070 --> 00:21:17,014 435 00:21:17,014 --> 00:21:19,930 Jika ada cara mudah untuk bercakap tentang struct, ia adalah benar-benar hanya 436 00:21:19,930 --> 00:21:24,430 mencipta jenis data anda sendiri yang membolehkan anda untuk kumpulan 437 00:21:24,430 --> 00:21:28,320 semua berbeza jenis data bersama-sama. 438 00:21:28,320 --> 00:21:29,754 439 00:21:29,754 --> 00:21:31,595 Adakah ini masuk akal? 440 00:21:31,595 --> 00:21:33,920 441 00:21:33,920 --> 00:21:34,420 OK. 442 00:21:34,420 --> 00:21:35,920 443 00:21:35,920 --> 00:21:37,530 Itu dan mengakses dengan titik-titik. 444 00:21:37,530 --> 00:21:38,790 445 00:21:38,790 --> 00:21:39,960 Hampir semua yang anda perlukan. 446 00:21:39,960 --> 00:21:41,150 447 00:21:41,150 --> 00:21:46,600 >> OK, di mana PowerPoint saya pergi? 448 00:21:46,600 --> 00:21:47,580 Ini dia. 449 00:21:47,580 --> 00:21:49,050 450 00:21:49,050 --> 00:21:50,520 Baik ini adalah pelik. 451 00:21:50,520 --> 00:21:53,950 452 00:21:53,950 --> 00:21:55,420 Aha. 453 00:21:55,420 --> 00:21:56,766 OK, sejuk. 454 00:21:56,766 --> 00:21:58,876 455 00:21:58,876 --> 00:22:01,000 Hal-hal lain atau kita ingin kepala berlatih? 456 00:22:01,000 --> 00:22:02,210 457 00:22:02,210 --> 00:22:02,710 Berlatih? 458 00:22:02,710 --> 00:22:03,501 OK. 459 00:22:03,501 --> 00:22:04,000 Awesome. 460 00:22:04,000 --> 00:22:05,642 461 00:22:05,642 --> 00:22:06,600 Saya akan keluar dari ini. 462 00:22:06,600 --> 00:22:08,490 Jika pada sebarang masa semasa soal latihan, 463 00:22:08,490 --> 00:22:12,630 Saya gembira untuk merubah dan pergi melalui perkara. 464 00:22:12,630 --> 00:22:15,240 Jadi saya mempunyai kuiz sifar di sini. 465 00:22:15,240 --> 00:22:18,370 Jika anda semua ingin menarik di komputer anda, 466 00:22:18,370 --> 00:22:20,670 hanya suka mengambil masa lima minit untuk menelusuri. 467 00:22:20,670 --> 00:22:23,540 Mungkin memilih beberapa atas soalan yang anda mahu pergi lebih. 468 00:22:23,540 --> 00:22:27,390 Jika kalian tidak boleh membuat keputusan, kami hanya akan perlahan-lahan mula bekerja melalui mereka, 469 00:22:27,390 --> 00:22:31,590 tapi aku yakin ada akan ada beberapa soalan yang anda sangat 470 00:22:31,590 --> 00:22:34,890 ingin berbicara tentang dan mempunyai saya bekerja melalui dengan anda semua. 471 00:22:34,890 --> 00:22:36,580 Jadi, pergi ke depan dan mengambil masa lima minit. 472 00:22:36,580 --> 00:22:37,780 Tatal melalui. 473 00:22:37,780 --> 00:22:40,620 Dan ini adalah kuiz tahun 2013. 474 00:22:40,620 --> 00:22:41,841 >> PENONTON: Zero? 475 00:22:41,841 --> 00:22:43,630 >> ALLISON BUCHHOLTZ-AU: Ya, kuiz sifar. 476 00:22:43,630 --> 00:22:45,647 Kami tidak melakukan kuiz satu barangan. 477 00:22:45,647 --> 00:22:46,980 Kami akan melakukannya dalam beberapa minggu. 478 00:22:46,980 --> 00:22:52,941 479 00:22:52,941 --> 00:22:55,190 Juga untuk anda yang datang terlambat, kami mempunyai gula-gula, 480 00:22:55,190 --> 00:23:00,580 begitu juga kalian mahu gula-gula? 481 00:23:00,580 --> 00:23:01,530 >> PENONTON: Tentu. 482 00:23:01,530 --> 00:23:03,321 >> ALLISON BUCHHOLTZ-AU: Saya hanya akan lulus sekitar. 483 00:23:03,321 --> 00:23:09,774 484 00:23:09,774 --> 00:23:11,940 Hei, jika anda yang masuk sini awal, anda mendapatkan lebih banyak gula-gula. 485 00:23:11,940 --> 00:23:12,500 Tidak apa-apa. 486 00:23:12,500 --> 00:23:13,550 Ben, adakah anda mahu gula-gula? 487 00:23:13,550 --> 00:23:19,350 488 00:23:19,350 --> 00:23:20,556 Anda mahu beberapa? 489 00:23:20,556 --> 00:23:24,122 490 00:23:24,122 --> 00:23:26,080 Terdapat juga Snickers jika ada yang ingin Snickers. 491 00:23:26,080 --> 00:23:27,640 492 00:23:27,640 --> 00:23:29,360 Aku akan meninggalkan mereka di sini dan di sini. 493 00:23:29,360 --> 00:23:30,946 Jangan ragu. 494 00:23:30,946 --> 00:23:32,485 Adakah anda mahu lagi? 495 00:23:32,485 --> 00:23:33,235 PENONTON: Semua yang ditetapkan. 496 00:23:33,235 --> 00:23:33,540 Matur nuwun. 497 00:23:33,540 --> 00:23:36,248 >> ALLISON BUCHHOLTZ-AU: Dan Aku punya bagus tumpukan kecil ada di awal. 498 00:23:36,248 --> 00:23:49,080 499 00:23:49,080 --> 00:23:51,980 Kalian bisa mengambil kuiz dan Saya dapat memiliki pesta kuiz dengan kadar. 500 00:23:51,980 --> 00:23:54,496 501 00:23:54,496 --> 00:23:55,360 Itu huru-hara. 502 00:23:55,360 --> 00:23:56,460 503 00:23:56,460 --> 00:23:57,385 900 ujian. 504 00:23:57,385 --> 00:23:58,650 Ia akan menjadi seronok begitu banyak. 505 00:23:58,650 --> 00:24:00,441 506 00:24:00,441 --> 00:24:02,036 Akan menjadi besar. 507 00:24:02,036 --> 00:24:04,430 Aku cukup yakin itu salah satu daripada staf ikatan terbesar 508 00:24:04,430 --> 00:24:05,380 malam tahun ini. 509 00:24:05,380 --> 00:24:15,660 510 00:24:15,660 --> 00:24:19,175 Apakah ada orang melakukan kuiz dari sifar tahun lalu belum keluar dari rasa ingin tahu? 511 00:24:19,175 --> 00:24:20,335 >> PENONTON: Bagian itu. 512 00:24:20,335 --> 00:24:21,543 >> ALLISON BUCHHOLTZ-AU: Bagian itu, OK. 513 00:24:21,543 --> 00:24:24,272 514 00:24:24,272 --> 00:24:26,482 Adakah anda mempunyai soalan-soalan mengenai salah satu dari mereka? 515 00:24:26,482 --> 00:24:28,190 PENONTON: Saya sudah pergi ke waktu pejabat. 516 00:24:28,190 --> 00:24:28,898 Matur nuwun walaupun. 517 00:24:28,898 --> 00:24:30,187 518 00:24:30,187 --> 00:24:32,520 ALLISON BUCHHOLTZ-AU: Nah, mudah-mudahan ia masih jenis membantu. 519 00:24:32,520 --> 00:24:42,990 520 00:24:42,990 --> 00:24:45,634 Bilakah anda pergi ke waktu pejabat untuk itu? 521 00:24:45,634 --> 00:24:47,300 PENONTON: TF saya telah mereka petang ini. 522 00:24:47,300 --> 00:24:47,966 ALLISON BUCHHOLTZ-AU: Oh. 523 00:24:47,966 --> 00:24:48,977 Siapa TF anda? 524 00:24:48,977 --> 00:24:49,854 525 00:24:49,854 --> 00:24:51,020 PENONTON: Fred [? Wujaya?]. 526 00:24:51,020 --> 00:24:52,622 527 00:24:52,622 --> 00:24:54,080 ALLISON BUCHHOLTZ-AU: Ada begitu banyak TF. 528 00:24:54,080 --> 00:24:55,350 529 00:24:55,350 --> 00:24:55,850 Begitu banyak. 530 00:24:55,850 --> 00:25:16,530 531 00:25:16,530 --> 00:25:17,340 Baik. 532 00:25:17,340 --> 00:25:45,310 533 00:25:45,310 --> 00:25:48,950 Ada yang punya untuk memulakan yang saya dapat mencatat bahawa kami ingin bekerja di? 534 00:25:48,950 --> 00:25:53,770 535 00:25:53,770 --> 00:25:55,685 Saya menganggap pointer satu dengan meja. 536 00:25:55,685 --> 00:25:56,890 537 00:25:56,890 --> 00:25:57,610 Pergi untuk itu. 538 00:25:57,610 --> 00:25:59,180 >> PENONTON: Mungkin suis satu. 539 00:25:59,180 --> 00:26:02,362 540 00:26:02,362 --> 00:26:03,445 ALLISON BUCHHOLTZ-AU: Jadi angka 12? 541 00:26:03,445 --> 00:26:06,750 542 00:26:06,750 --> 00:26:10,770 Saya menganggap angka 8 dan 9 mungkin orang-orang yang mahu pergi lebih. 543 00:26:10,770 --> 00:26:12,116 >> PENONTON: Dan 10 dan 11. 544 00:26:12,116 --> 00:26:21,860 545 00:26:21,860 --> 00:26:25,806 >> ALLISON BUCHHOLTZ-AU: Dan kalian tahu anda akan mendapat satu halaman catatan, kan? 546 00:26:25,806 --> 00:26:28,450 >> PENONTON: Ya, jadi apakah kami dibenarkan untuk memakai itu. 547 00:26:28,450 --> 00:26:30,658 >> ALLISON BUCHHOLTZ-AU: Anda dibenarkan untuk meletakkan apa sahaja yang anda mahu. 548 00:26:30,658 --> 00:26:31,887 549 00:26:31,887 --> 00:26:32,720 Dan ia boleh ditaip. 550 00:26:32,720 --> 00:26:35,270 Sejauh yang saya ingat, kita telah ditaip. 551 00:26:35,270 --> 00:26:37,022 >> PENONTON: Anda dapat melakukan belakang dan kedua-dua pihak? 552 00:26:37,022 --> 00:26:38,780 >> ALLISON BUCHHOLTZ-AU: Ya, kedua-dua belah pihak. 553 00:26:38,780 --> 00:26:42,940 Jadi sesuatu seperti tumpukan dan [? back end?] tumpukan, anda berjalan 554 00:26:42,940 --> 00:26:43,780 kali. 555 00:26:43,780 --> 00:26:44,840 Berguna. 556 00:26:44,840 --> 00:26:47,990 Perkara yang mungkin sedikit tentang petunjuk untuk mengingatkan anda. 557 00:26:47,990 --> 00:26:49,205 Syntax untuk perkara-perkara. 558 00:26:49,205 --> 00:26:51,600 559 00:26:51,600 --> 00:26:54,830 Setelah hanya seperti tengkorak program dapat super berguna. 560 00:26:54,830 --> 00:27:00,719 Saya tahu bahawa saya selalu lupa apa yang Saya sepatutnya menulis untuk int main, 561 00:27:00,719 --> 00:27:03,010 kerana saya selalu hanya menyalin paste dari P set saya sebelum ini 562 00:27:03,010 --> 00:27:06,232 atau ia sudah ada di sana, jadi Saya tidak pernah benar-benar telah menulisnya, 563 00:27:06,232 --> 00:27:07,690 sehingga memiliki yang boleh menjadi super berguna. 564 00:27:07,690 --> 00:27:09,280 565 00:27:09,280 --> 00:27:14,320 >> OK, jadi mengapa tidak kita bermula dengan nombor 8 itu? 566 00:27:14,320 --> 00:27:21,730 567 00:27:21,730 --> 00:27:22,810 Baik. 568 00:27:22,810 --> 00:27:23,310 OK. 569 00:27:23,310 --> 00:27:25,060 570 00:27:25,060 --> 00:27:26,310 Oleh itu fikirkanlah program di bawah. 571 00:27:26,310 --> 00:27:28,110 572 00:27:28,110 --> 00:27:30,700 Jadi jelas apabila kita melihat petunjuk, ia mungkin 573 00:27:30,700 --> 00:27:32,200 idea yang baik untuk mula melukis, kan? 574 00:27:32,200 --> 00:27:34,552 575 00:27:34,552 --> 00:27:36,760 Saya mahu tahu di mana semua saya potongan-potongan besar kapur pergi. 576 00:27:36,760 --> 00:27:37,870 Ini adalah jenis menjengkelkan. 577 00:27:37,870 --> 00:27:40,210 578 00:27:40,210 --> 00:27:45,820 >> Jadi kami ada di sini beberapa fungsi swap yang akan mengambil dalam dua pointer. 579 00:27:45,820 --> 00:27:48,630 Jadi dalam hal ini, mereka sebenarnya harus beralih 580 00:27:48,630 --> 00:27:53,400 perkara berbanding swap asal kami fungsi yang hanya mengambil dalam salinan. 581 00:27:53,400 --> 00:27:57,030 Jadi apa yang ia akan lakukan is-- mari kita mulakan dengan utama, 582 00:27:57,030 --> 00:27:58,450 kerana itulah di mana 1 adalah. 583 00:27:58,450 --> 00:28:04,296 >> Oleh itu, kita mempunyai beberapa int x 1. 584 00:28:04,296 --> 00:28:11,860 Kami mempunyai beberapa y yang sama dengan 2. 585 00:28:11,860 --> 00:28:14,390 Dan kemudian kita mempunyai beberapa swap yang akan mengambil mereka. 586 00:28:14,390 --> 00:28:17,320 Dan mari kita lihat apa yang kita ada di sini. 587 00:28:17,320 --> 00:28:19,542 588 00:28:19,542 --> 00:28:22,709 Dan dalam table-- kami oh anak. 589 00:28:22,709 --> 00:28:23,792 Bagaimana aku akan melakukan hal ini? 590 00:28:23,792 --> 00:28:25,900 Aku akan menarik meja saya di sini. 591 00:28:25,900 --> 00:28:49,490 592 00:28:49,490 --> 00:28:50,552 Hampir tidak menjadikannya di sana. 593 00:28:50,552 --> 00:28:51,260 Hampir tidak menjadikannya. 594 00:28:51,260 --> 00:28:52,470 595 00:28:52,470 --> 00:28:57,960 1, 2, 3, 4, 5, 6, 7. 596 00:28:57,960 --> 00:29:11,220 597 00:29:11,220 --> 00:29:15,706 Dan mereka memberikan kita bahawa 1 adalah 1, dan 1 2. 598 00:29:15,706 --> 00:29:16,206 Sejuk. 599 00:29:16,206 --> 00:29:17,674 600 00:29:17,674 --> 00:29:18,174 Awesome. 601 00:29:18,174 --> 00:29:19,650 602 00:29:19,650 --> 00:29:20,464 Jadi 3. 603 00:29:20,464 --> 00:29:21,380 Dan ada [? 1.?] 604 00:29:21,380 --> 00:29:24,500 605 00:29:24,500 --> 00:29:25,250 >> Baik. 606 00:29:25,250 --> 00:29:35,202 Dan kemudian alamat x ialah 0x123. 607 00:29:35,202 --> 00:29:41,260 Dan y adalah Ox127. 608 00:29:41,260 --> 00:29:41,760 Sejuk. 609 00:29:41,760 --> 00:29:42,940 610 00:29:42,940 --> 00:29:43,595 Baik. 611 00:29:43,595 --> 00:29:46,710 Saya mahu anda semua bekerja pada ini untuk kerja-kerja hanya like-- di atasnya 612 00:29:46,710 --> 00:29:48,385 dengan orang-orang di sekeliling anda. 613 00:29:48,385 --> 00:29:50,340 Saya berharap saya telah berkata semasa saya sedang menyiapkan. 614 00:29:50,340 --> 00:29:50,840 Kerja-kerja itu. 615 00:29:50,840 --> 00:29:53,270 Cuba dan bekerja di dalamnya dengan diri kamu selama beberapa minit, 616 00:29:53,270 --> 00:29:54,930 dan kemudian saya akan bekerja di atasnya dengan anda. 617 00:29:54,930 --> 00:29:57,034 618 00:29:57,034 --> 00:30:00,117 Kerana satu-satunya cara yang anda benar-benar akan belajar adalah dengan melakukannya sendiri. 619 00:30:00,117 --> 00:31:29,580 620 00:31:29,580 --> 00:31:30,110 Jangan bimbang. 621 00:31:30,110 --> 00:31:30,610 Nasib baik. 622 00:31:30,610 --> 00:32:17,390 623 00:32:17,390 --> 00:32:20,030 >> OK, mengapa tidak kita perlahan-lahan mula bekerja melalui ini. 624 00:32:20,030 --> 00:32:23,695 Sehingga semua orang mendapat selepas saluran satu, x ialah 1. 625 00:32:23,695 --> 00:32:26,860 Selepas saluran dua, x dan y adalah 1 dan 2, kan? 626 00:32:26,860 --> 00:32:27,400 Sejuk. 627 00:32:27,400 --> 00:32:30,310 Jadi garis tiga adalah di mana perkara-perkara jadi menarik sudah tentu. 628 00:32:30,310 --> 00:32:34,970 >> Jadi apa yang kami lakukan di sini adalah kita sekarang telah bertukar. 629 00:32:34,970 --> 00:32:42,360 Kita katakan bahawa x dan y mempunyai titik-titik, atau mereka mempunyai alamat x dan y, 630 00:32:42,360 --> 00:32:43,390 kan? 631 00:32:43,390 --> 00:32:48,451 Jadi dalam hal ini, tiga, berapakah nilai dari? 632 00:32:48,451 --> 00:32:52,379 633 00:32:52,379 --> 00:32:59,806 yang telah berlalu dalam, telah diberikan nilai alamat x, kan? 634 00:32:59,806 --> 00:33:02,542 635 00:33:02,542 --> 00:33:03,454 >> PENONTON: 1? 636 00:33:03,454 --> 00:33:05,200 >> ALLISON BUCHHOLTZ-AU: Jadi, tambahkan ke x? 637 00:33:05,200 --> 00:33:06,420 Apa alamat x? 638 00:33:06,420 --> 00:33:07,212 >> PENONTON: 0x123. 639 00:33:07,212 --> 00:33:08,087 >> ALLISON BUCHHOLTZ-AU: Tepat sekali. 640 00:33:08,087 --> 00:33:13,960 641 00:33:13,960 --> 00:33:16,790 Tetapi, apa itu sebenarnya menunjuk ke? 642 00:33:16,790 --> 00:33:20,790 Jika kita dereference, nilai apa yang akan memberi kita. 643 00:33:20,790 --> 00:33:21,290 PENONTON: 1. 644 00:33:21,290 --> 00:33:23,164 ALLISON BUCHHOLTZ-AU: Ia akan memberi kita 1, kerana apa yang 645 00:33:23,164 --> 00:33:27,810 kita katakan adalah pergi ke ini alamat, beritahu kami apa nilainya. 646 00:33:27,810 --> 00:33:28,890 Jadi apa yang akan b? 647 00:33:28,890 --> 00:33:30,500 648 00:33:30,500 --> 00:33:31,445 >> PENONTON: 0x127. 649 00:33:31,445 --> 00:33:32,320 ALLISON BUCHHOLTZ-AU: Tepat sekali. 650 00:33:32,320 --> 00:33:33,610 651 00:33:33,610 --> 00:33:35,410 Jadi ia adalah alamat y. 652 00:33:35,410 --> 00:33:36,580 653 00:33:36,580 --> 00:33:39,811 Kemudian apa [? dereference? ?] 654 00:33:39,811 --> 00:33:40,310 PENONTON: 2. 655 00:33:40,310 --> 00:33:42,172 656 00:33:42,172 --> 00:33:43,380 ALLISON BUCHHOLTZ-AU: OK, jadi sekarang empat. 657 00:33:43,380 --> 00:33:44,390 658 00:33:44,390 --> 00:33:51,300 Kami berkata adalah equal-- baik sekarang kita sudah dilakukan int temp adalah sama dengan bintang dari. 659 00:33:51,300 --> 00:33:53,580 Jadi apa yang berubah? 660 00:33:53,580 --> 00:33:55,680 Hanya ada satu hal yang berubah di sini. 661 00:33:55,680 --> 00:33:56,180 Apa itu? 662 00:33:56,180 --> 00:33:57,892 663 00:33:57,892 --> 00:33:58,624 >> PENONTON: Temp. 664 00:33:58,624 --> 00:33:59,540 ALLISON BUCHHOLTZ-AU: Para suhu. 665 00:33:59,540 --> 00:34:06,120 Oleh itu, kita boleh menulis semula semua ini. 666 00:34:06,120 --> 00:34:07,790 667 00:34:07,790 --> 00:34:10,690 Satu strategi yang baik untuk ini hanya memikirkan 668 00:34:10,690 --> 00:34:14,050 apa perubahan, kerana yang paling sering hanya ada satu hal yang 669 00:34:14,050 --> 00:34:16,300 akan berubah pada bila-bila diberikan, OK? 670 00:34:16,300 --> 00:34:17,960 671 00:34:17,960 --> 00:34:20,100 Jadi kami telah ditugaskan temp. 672 00:34:20,100 --> 00:34:26,929 >> Sekarang titik berikutnya, lima, kita telah membuat bintang yang bersamaan dengan bintang b. 673 00:34:26,929 --> 00:34:28,880 Jadi apakah perubahan ini? 674 00:34:28,880 --> 00:34:29,760 >> PENONTON: Star a. 675 00:34:29,760 --> 00:34:32,081 >> ALLISON BUCHHOLTZ-AU: Star, jadi segala sesuatu yang lain tetap sama. 676 00:34:32,081 --> 00:34:38,610 677 00:34:38,610 --> 00:34:39,900 Dan apa yang bintang yang sama? 678 00:34:39,900 --> 00:34:40,659 >> PENONTON: 2. 679 00:34:40,659 --> 00:34:41,283 ALLISON BUCHHOLTZ-AU: 2. 680 00:34:41,283 --> 00:34:42,460 681 00:34:42,460 --> 00:34:42,960 Lovely. 682 00:34:42,960 --> 00:34:45,360 683 00:34:45,360 --> 00:34:46,239 Awesome. 684 00:34:46,239 --> 00:34:51,190 OK, sekarang dan kemudian kita mempunyai mula b adalah sama dengan suhu. 685 00:34:51,190 --> 00:34:53,907 Jadi satu-satunya perkara yang berubah-ubah adalah bintang b. 686 00:34:53,907 --> 00:34:55,344 Segala sesuatu yang lain tetap sama. 687 00:34:55,344 --> 00:35:01,100 688 00:35:01,100 --> 00:35:02,610 Dan apa yang bintang b sama dengan sekarang? 689 00:35:02,610 --> 00:35:04,840 690 00:35:04,840 --> 00:35:06,190 Dan anda telah selesai meja. 691 00:35:06,190 --> 00:35:11,620 692 00:35:11,620 --> 00:35:18,460 Kerana di akhirnya, jika kita katakan x dan y, kita tahu bahawa di point-- ini 693 00:35:18,460 --> 00:35:23,060 kita tahu bahawa apabila kita berubah bintang untuk 2, 694 00:35:23,060 --> 00:35:29,620 apa yang melakukan itu kata OK, di menangani 0x123 sini, mengubahnya. 695 00:35:29,620 --> 00:35:31,780 696 00:35:31,780 --> 00:35:33,290 Sekarang ini adalah 2. 697 00:35:33,290 --> 00:35:34,460 698 00:35:34,460 --> 00:35:40,600 Dan kemudian pada masa ini, kita kata OK, pergi ke bintang b. 699 00:35:40,600 --> 00:35:45,305 Jadi pergi ke alamat di 0x127 dan membuatnya menjadi 1. 700 00:35:45,305 --> 00:35:49,670 701 00:35:49,670 --> 00:35:53,110 Jadi sekarang sekurang-berakhir apabila kita benar-benar kembali untuk utama, 702 00:35:53,110 --> 00:35:56,445 kita benar-benar mempunyai yang x ialah sama dengan 2 dan y adalah sama dengan 1. 703 00:35:56,445 --> 00:35:58,500 704 00:35:58,500 --> 00:35:59,500 Semua orang yang baik itu? 705 00:35:59,500 --> 00:36:00,720 706 00:36:00,720 --> 00:36:02,320 OK, sejuk. 707 00:36:02,320 --> 00:36:04,030 Nombor 9. 708 00:36:04,030 --> 00:36:05,950 Kalian bekerja pada ini. 709 00:36:05,950 --> 00:36:09,016 Saya akan mendirikan papan supaya kita dapat menarik melaluinya. 710 00:36:09,016 --> 00:36:09,910 Ia akan menjadi letupan. 711 00:36:09,910 --> 00:36:13,760 712 00:36:13,760 --> 00:36:16,320 Tabel besar bisa benar-benar menakutkan, aku tahu. 713 00:36:16,320 --> 00:36:19,910 Tetapi jika anda hanya membawa mereka satu baris pada satu masa, mereka mendapat banyak kurang menakutkan. 714 00:36:19,910 --> 00:38:12,025 715 00:38:12,025 --> 00:38:12,860 Baik. 716 00:38:12,860 --> 00:38:16,230 717 00:38:16,230 --> 00:38:21,190 >> Jadi, anda tahu bahawa ini akan mempunyai pergi melalui pertama utama, kan? 718 00:38:21,190 --> 00:38:24,140 Kepada asal x dan y dan kemudian cuba untuk menukar mereka. 719 00:38:24,140 --> 00:38:28,560 Begitu pun swap adalah di atas, cara sebenar ia berjalan adalah bahawa kita akan melalui utama, 720 00:38:28,560 --> 00:38:31,040 dan kemudian ia memanggil sehingga menukar, oke? 721 00:38:31,040 --> 00:38:32,810 Jadi semua orang tahu itu. 722 00:38:32,810 --> 00:38:34,960 >> Jadi yang mana yang anda orang ingin memulakan dengan? 723 00:38:34,960 --> 00:38:37,240 Apakah orang benar-benar yakin kira-kira satu ini? 724 00:38:37,240 --> 00:38:38,307 725 00:38:38,307 --> 00:38:39,265 Atau bahkan sebagian pasti? 726 00:38:39,265 --> 00:38:44,170 727 00:38:44,170 --> 00:38:48,120 Apa kata kita mulakan dengan x? 728 00:38:48,120 --> 00:38:49,060 Apa yang kita fikir x? 729 00:38:49,060 --> 00:38:49,735 >> PENONTON: 1. 730 00:38:49,735 --> 00:38:50,360 ALLISON BUCHHOLTZ-AU: 1. 731 00:38:50,360 --> 00:38:54,500 732 00:38:54,500 --> 00:38:56,340 Jadi mengapa adalah 2. 733 00:38:56,340 --> 00:38:58,880 734 00:38:58,880 --> 00:39:01,380 Dan itu kerana perbezaan besar di sini 735 00:39:01,380 --> 00:39:04,890 adalah bahawa kami hanya lewat salinan, kan? 736 00:39:04,890 --> 00:39:06,520 Kami tidak lewat rujukan. 737 00:39:06,520 --> 00:39:08,850 Jadi, walaupun pada akhir ini x program dan y 738 00:39:08,850 --> 00:39:14,170 telah di tahap yang sama, kerana mereka hanya salinan dalam fungsi swap. 739 00:39:14,170 --> 00:39:16,320 Mereka tidak benar-benar berubah, kan? 740 00:39:16,320 --> 00:39:17,570 741 00:39:17,570 --> 00:39:19,290 >> Jadi bagaimana pula dengan a, b, dan menggoda? 742 00:39:19,290 --> 00:39:21,540 743 00:39:21,540 --> 00:39:22,890 >> PENONTON: a ialah b. 744 00:39:22,890 --> 00:39:23,940 >> ALLISON BUCHHOLTZ-AU: a ialah b. 745 00:39:23,940 --> 00:39:28,569 Jadi dalam hal ini, adalah x, yang adalah 1, kan? 746 00:39:28,569 --> 00:39:29,860 Jadi di sini, mari kita berjalan melaluinya. 747 00:39:29,860 --> 00:39:33,940 Jadi pada awal, dan b adalah 1 dan 2 dan ditentukan. 748 00:39:33,940 --> 00:39:35,000 749 00:39:35,000 --> 00:39:40,850 Jadi awalnya mendapat temp ditetapkan ke, jadi temp 1. 750 00:39:40,850 --> 00:39:46,150 adalah sama dengan b, Jadi kita mendapatkan 2, dan b adalah sama dengan suhu. 751 00:39:46,150 --> 00:39:47,284 Sekarang kita akan mendapat 1. 752 00:39:47,284 --> 00:39:49,454 753 00:39:49,454 --> 00:39:55,860 >> PENONTON: Dalam satu itu sebelumnya bertukar ampersand x dan y ampersand. 754 00:39:55,860 --> 00:39:57,390 Apa sebenarnya adakah itu bermakna? 755 00:39:57,390 --> 00:39:59,890 ALLISON BUCHHOLTZ-AU: Jadi itu bermakna Anda sedang lewat rujukan. 756 00:39:59,890 --> 00:40:03,830 Ini bermakna anda sebenarnya lewat di alamat di mana 757 00:40:03,830 --> 00:40:04,814 x dan y disimpan. 758 00:40:04,814 --> 00:40:06,730 PENONTON: Tetapi anda tidak menukar alamat. 759 00:40:06,730 --> 00:40:07,860 ALLISON BUCHHOLTZ-AU: Anda tidak lagi menukar alamat. 760 00:40:07,860 --> 00:40:10,015 Anda menukar apa yang di dalam diri mereka. 761 00:40:10,015 --> 00:40:11,510 762 00:40:11,510 --> 00:40:14,460 Seperti apa yang di alamat itu, dan sebab itu ia berfungsi. 763 00:40:14,460 --> 00:40:20,750 Versus dalam program ini di sini apa anda lakukan adalah anda membuat salinan. 764 00:40:20,750 --> 00:40:27,440 Jadi, anda mempunyai x dan y yang ada sebagai variabel mereka sendiri di sini. 765 00:40:27,440 --> 00:40:31,530 766 00:40:31,530 --> 00:40:34,140 Tapi kemudian apabila anda meninggal mereka ke dalam pertukaran, itu 767 00:40:34,140 --> 00:40:38,090 seolah-olah anda sedang menciptakan ini set lain secara keseluruhan. 768 00:40:38,090 --> 00:40:41,272 Jadi kau pernah benar-benar x menyentuh dan y. 769 00:40:41,272 --> 00:40:46,890 >> PENONTON: Jika ampersand x apa yang di alamat x, apa yang akan bintang x menjadi? 770 00:40:46,890 --> 00:40:53,290 >> ALLISON BUCHHOLTZ-AU: Ampersand x adalah apa yang di alamat x, maka star-- baik, 771 00:40:53,290 --> 00:40:54,950 dalam kes ini, x bukan pointer. 772 00:40:54,950 --> 00:40:56,332 773 00:40:56,332 --> 00:40:57,040 PENONTON: Oh, OK. 774 00:40:57,040 --> 00:40:58,998 Oleh itu, anda hanya melakukan ini kerana ia bukan pointer. 775 00:40:58,998 --> 00:40:59,890 ALLISON BUCHHOLTZ-AU: Benar. 776 00:40:59,890 --> 00:41:03,046 Anda hanya boleh melakukan bintang sesuatu yang pointer. 777 00:41:03,046 --> 00:41:05,920 Mungkin anda boleh melakukannya untuk perkara-perkara yang tidak, tetapi kompilasi yang anda 778 00:41:05,920 --> 00:41:07,350 melakukan hal-hal gila yang akan terjadi. 779 00:41:07,350 --> 00:41:09,570 Dan saya tidak betul-betul pasti apa yang akan berlaku. 780 00:41:09,570 --> 00:41:11,880 Anda sentiasa boleh mengambil alamat sesuatu, 781 00:41:11,880 --> 00:41:14,255 tetapi anda tidak boleh dereference sesuatu yang bukan pointer. 782 00:41:14,255 --> 00:41:14,805 783 00:41:14,805 --> 00:41:17,860 Jika yang masuk akal, itu perbezaan yang baik untuk mempunyai. 784 00:41:17,860 --> 00:41:19,870 785 00:41:19,870 --> 00:41:21,340 >> Jadi tidak terlalu buruk, kan? 786 00:41:21,340 --> 00:41:23,650 Tabel mudah-mudahan mendapat sedikit kurang menakutkan. 787 00:41:23,650 --> 00:41:25,450 788 00:41:25,450 --> 00:41:26,690 Baik. 789 00:41:26,690 --> 00:41:28,370 Ah, orang-orang yang bersenang-senang. 790 00:41:28,370 --> 00:41:31,265 Jadi sekarang, menulis kod anda sendiri. 791 00:41:31,265 --> 00:41:33,640 792 00:41:33,640 --> 00:41:37,950 Jadi, saya akan membiarkan kalian bekerja mengenai perkara ini selama kira-kira empat minit, 793 00:41:37,950 --> 00:41:41,480 dan kemudian kita boleh bercakap tentang cara-cara untuk mendekatinya. 794 00:41:41,480 --> 00:41:45,080 795 00:41:45,080 --> 00:41:47,110 Jangan ragu untuk berbicara dengan orang di sekeliling anda. 796 00:41:47,110 --> 00:41:48,114 797 00:41:48,114 --> 00:41:49,155 Juga ini adalah menarik. 798 00:41:49,155 --> 00:41:51,460 Ia seperti semua gadis-gadis seksyen sekarang. 799 00:41:51,460 --> 00:41:52,190 Cukup menarik. 800 00:41:52,190 --> 00:41:53,310 801 00:41:53,310 --> 00:41:54,502 Kecuali Chang. 802 00:41:54,502 --> 00:41:56,190 Tetapi Chang tidak adalah benar-benar sebahagian daripada bahagian. 803 00:41:56,190 --> 00:42:17,282 804 00:42:17,282 --> 00:42:17,985 Awesome. 805 00:42:17,985 --> 00:42:18,485 Sempurna. 806 00:42:18,485 --> 00:42:38,059 807 00:42:38,059 --> 00:42:39,475 Jadi saya akan memberikan anda beberapa petunjuk. 808 00:42:39,475 --> 00:42:43,450 809 00:42:43,450 --> 00:42:46,890 Dalam kes di mana anda mempunyai lebih daripada satu aksara, di mana 810 00:42:46,890 --> 00:42:49,990 anda mempunyai sesuatu yang lain seperti 123 atau 1000 sesuatu, 811 00:42:49,990 --> 00:42:53,790 Anda perlu berupaya untuk gelung melalui dan menukar masing-masing. 812 00:42:53,790 --> 00:42:55,340 813 00:42:55,340 --> 00:42:58,699 Jadi ada pasangan cara-cara anda boleh melakukan itu, 814 00:42:58,699 --> 00:43:01,740 tetapi anda pasti akan mempunyai untuk loop di suatu tempat di sana untuk gelung 815 00:43:01,740 --> 00:43:05,150 melalui mereka, yang merupakan jenis seperti giveaway 816 00:43:05,150 --> 00:43:09,540 dengan walaupun anda sebut strlen, yang jenis suka oh 817 00:43:09,540 --> 00:43:12,418 mungkin anda ingin menggunakan panjang string dalam beberapa cara. 818 00:43:12,418 --> 00:45:17,300 819 00:45:17,300 --> 00:45:17,829 >> Baik. 820 00:45:17,829 --> 00:45:20,870 Jadi, apa yang anda semua berfikir mungkin salah satu perkara pertama yang ingin kita lakukan? 821 00:45:20,870 --> 00:45:23,149 822 00:45:23,149 --> 00:45:25,690 Ada beberapa kes di sini kita perlu mengambil kira, kan? 823 00:45:25,690 --> 00:45:27,360 Sama ada kita ada sesuatu yang tidak sah. 824 00:45:27,360 --> 00:45:28,685 825 00:45:28,685 --> 00:45:30,383 Apa yang kita ada? 826 00:45:30,383 --> 00:45:30,882 Kes. 827 00:45:30,882 --> 00:45:32,760 828 00:45:32,760 --> 00:45:33,260 Null. 829 00:45:33,260 --> 00:45:34,400 830 00:45:34,400 --> 00:45:42,414 Kami mempunyai kes yang ia mempunyai sesuatu yang lain daripada 09, kan? 831 00:45:42,414 --> 00:45:43,580 Jadi, bila ia mempunyai huruf. 832 00:45:43,580 --> 00:45:44,900 833 00:45:44,900 --> 00:45:46,510 Atau kita mempunyai kes yang sah. 834 00:45:46,510 --> 00:45:48,450 835 00:45:48,450 --> 00:45:50,130 Tiga kes memikirkan. 836 00:45:50,130 --> 00:45:53,527 Jadi yang mana satu yang anda fikir mungkin salah satu yang paling mudah untuk menjaga pertama? 837 00:45:53,527 --> 00:45:54,152 PENONTON: Null. 838 00:45:54,152 --> 00:45:55,527 ALLISON BUCHHOLTZ-AU: Kes itu adalah batal. 839 00:45:55,527 --> 00:45:56,610 Jadi apa yang kita akan lakukan di sana? 840 00:45:56,610 --> 00:45:57,954 841 00:45:57,954 --> 00:45:58,870 PENONTON: [didengar]. 842 00:45:58,870 --> 00:46:02,434 843 00:46:02,434 --> 00:46:03,184 ALLISON BUCHHOLTZ-AU: Ya. 844 00:46:03,184 --> 00:46:05,140 845 00:46:05,140 --> 00:46:06,550 Dan apa yang saya mahu lakukan? 846 00:46:06,550 --> 00:46:07,341 >> PENONTON: Kembali 0. 847 00:46:07,341 --> 00:46:07,935 848 00:46:07,935 --> 00:46:09,110 >> ALLISON BUCHHOLTZ-AU: Tepat sekali. 849 00:46:09,110 --> 00:46:09,860 Awesome. 850 00:46:09,860 --> 00:46:10,640 OK. 851 00:46:10,640 --> 00:46:15,270 Jadi sekarang huruf bahawa ia mempunyai surat dan kes itu bahawa itu sah. 852 00:46:15,270 --> 00:46:19,140 Kami benar-benar boleh menjaga dari ini dalam satu gelung, OK? 853 00:46:19,140 --> 00:46:22,710 Jadi salah satu cara untuk melakukan itu-- apa yang mungkin menjadi cara yang mudah untuk memeriksa jika ia adalah sah. 854 00:46:22,710 --> 00:46:25,150 855 00:46:25,150 --> 00:46:29,144 Kami akan perlu melalui setiap huruf dan melakukan apa? 856 00:46:29,144 --> 00:46:34,336 857 00:46:34,336 --> 00:46:35,640 >> PENONTON: Periksa sama ada itu dalam- 858 00:46:35,640 --> 00:46:39,570 >> ALLISON BUCHHOLTZ-AU: Benar, anda boleh menyemak jika itu adalah antara 0 dan 9, kan? 859 00:46:39,570 --> 00:46:40,880 860 00:46:40,880 --> 00:46:42,700 Dan kemudian di mana-mana yang bahawa itu berlaku, kami tidak 861 00:46:42,700 --> 00:46:46,550 akan berakhir iterasi melalui string kita anyways, kan? 862 00:46:46,550 --> 00:46:48,690 Jadi kenapa tidak kita cuba menggabungkan mereka menjadi satu. 863 00:46:48,690 --> 00:46:51,260 Kita akan beralih melalui tali, dan seperti yang kita 864 00:46:51,260 --> 00:46:56,400 berbuat demikian, kita akan terlebih dahulu melakukan cek untuk melihat apakah surat yang 865 00:46:56,400 --> 00:46:58,110 atau jika karakter yang sah. 866 00:46:58,110 --> 00:47:02,150 Jika ya, kita akan melakukan operasi yang kita perlu mengubahnya. 867 00:47:02,150 --> 00:47:05,050 Jika tidak, ia akan kembali 0, kan? 868 00:47:05,050 --> 00:47:09,160 >> Jadi sebelum kita melakukan itu, kita mungkin ingin beberapa variabel 869 00:47:09,160 --> 00:47:12,820 bahwa kita dapat kembali di akhir yang akan menjadi nilai sebenar kita. 870 00:47:12,820 --> 00:47:17,005 Jadi kita akan memulakan beberapa nilai kepada 0. 871 00:47:17,005 --> 00:47:18,390 Dan itu hanya bagaimana kita bermula. 872 00:47:18,390 --> 00:47:22,452 873 00:47:22,452 --> 00:47:23,785 Jadi saya akan menyingkirkan ini. 874 00:47:23,785 --> 00:47:26,750 875 00:47:26,750 --> 00:47:30,489 Jadi bagaimana kita akan beralih melalui string ini. 876 00:47:30,489 --> 00:47:31,280 PENONTON: Untuk gelung. 877 00:47:31,280 --> 00:47:32,280 ALLISON BUCHHOLTZ-AU: A untuk gelung. 878 00:47:32,280 --> 00:47:33,160 Jadi apa untuk kita? 879 00:47:33,160 --> 00:47:34,710 880 00:47:34,710 --> 00:47:35,909 >> PENONTON: i adalah 0. 881 00:47:35,909 --> 00:47:36,700 ALLISON BUCHHOLTZ-AU: Mm-hm. 882 00:47:36,700 --> 00:47:38,620 883 00:47:38,620 --> 00:47:41,180 Dan apakah kita iterasi sehingga? 884 00:47:41,180 --> 00:47:42,450 >> PENONTON: panjang str s. 885 00:47:42,450 --> 00:47:47,920 886 00:47:47,920 --> 00:47:50,900 >> ALLISON BUCHHOLTZ-AU: OK, sekarang ingat ada cara yang lebih baik. [Terdengar]. 887 00:47:50,900 --> 00:47:52,935 >> PENONTON: Ya, kita boleh melakukan n sama. 888 00:47:52,935 --> 00:47:53,810 ALLISON BUCHHOLTZ-AU: Tepat sekali. 889 00:47:53,810 --> 00:47:55,010 890 00:47:55,010 --> 00:47:56,190 >> PENONTON: i kurang dari n. 891 00:47:56,190 --> 00:47:57,559 892 00:47:57,559 --> 00:47:59,475 ALLISON BUCHHOLTZ-AU: Dan mengapa kita ingin melakukannya? 893 00:47:59,475 --> 00:48:00,815 894 00:48:00,815 --> 00:48:01,940 Adakah anda masih ingat alasannya? 895 00:48:01,940 --> 00:48:04,180 896 00:48:04,180 --> 00:48:05,680 PENONTON: Kita perlu mengira semula itu. 897 00:48:05,680 --> 00:48:08,735 ALLISON BUCHHOLTZ-AU: becasue cara ini anda hanya perlu mengira strlen sekali. 898 00:48:08,735 --> 00:48:09,750 899 00:48:09,750 --> 00:48:14,400 Jika anda lakukan saya kurang dari strlen s, itu bermakna ia mengira semula 900 00:48:14,400 --> 00:48:17,050 panjang setiap kali Anda menjalankan untuk loop, 901 00:48:17,050 --> 00:48:20,800 yang tidak kos yang besar tenaga, tetapi ia 902 00:48:20,800 --> 00:48:24,280 amalan yang lebih baik untuk mencuba dan melakukan perkara-perkara seperti itu sekali. 903 00:48:24,280 --> 00:48:27,610 Kecuali mungkin anda mempunyai rentetan gila yang berubah pada setiap lelaran. 904 00:48:27,610 --> 00:48:30,371 Tetapi jika ia tetap sama, menyimpannya. 905 00:48:30,371 --> 00:48:30,870 Baik. 906 00:48:30,870 --> 00:48:33,430 Dan kemudian saya plus plus. 907 00:48:33,430 --> 00:48:34,040 Awesome. 908 00:48:34,040 --> 00:48:35,789 Kami sedang dalam perjalanan. 909 00:48:35,789 --> 00:48:36,830 PENONTON: Benar-benar cepat. 910 00:48:36,830 --> 00:48:39,600 Pertama, jadi mari kita mengatakan bahawa kita hanya memang i kurang daripada strlen s, 911 00:48:39,600 --> 00:48:42,175 yang mereka dengan kadar kami di reka bentuk sama sekali atau hanya kebenaran? 912 00:48:42,175 --> 00:48:43,640 913 00:48:43,640 --> 00:48:44,610 Mereka tidak. 914 00:48:44,610 --> 00:48:47,920 Kami dengan kadar pada kebenaran untuk kuiz sejauh yang saya tahu. 915 00:48:47,920 --> 00:48:52,670 Saya tidak boleh membuat pada penuh jaminan, tetapi bagi sebahagian besar, 916 00:48:52,670 --> 00:48:57,060 Sebahagian besar adalah benar, kerana Anda berada di bawah banyak kekangan masa. 917 00:48:57,060 --> 00:48:59,704 Reka bentuk biasanya berarti anda mempunyai masa untuk berfikir 918 00:48:59,704 --> 00:49:01,245 tentang keanggunan situasi anda. 919 00:49:01,245 --> 00:49:03,710 920 00:49:03,710 --> 00:49:05,770 >> OK, jadi kita iterasi melalui. 921 00:49:05,770 --> 00:49:10,640 Oleh itu, kita perlu sama ada untuk memeriksa melihat apakah watak ini adalah sah 922 00:49:10,640 --> 00:49:14,550 atau jika dapat dibuat kami biasa [? untuk i?] fungsi. 923 00:49:14,550 --> 00:49:16,600 Kami boleh bimbang tentang apa yang yang ada di dalam satu saat. 924 00:49:16,600 --> 00:49:19,340 Jadi mengapa tidak kita take-- jika ada yang dapat berfikir 925 00:49:19,340 --> 00:49:21,930 mengenai cara untuk memeriksa ke melihat jika ini berlaku. 926 00:49:21,930 --> 00:49:23,346 927 00:49:23,346 --> 00:49:25,740 Kami tahu ia akan menjadi beberapa jika keadaan, kan? 928 00:49:25,740 --> 00:49:26,830 929 00:49:26,830 --> 00:49:32,300 Dan ingat ini adalah dalam ASCII, jadi bagaimana mungkin 930 00:49:32,300 --> 00:49:37,359 kita lihat jika ia bukan 0,1, 2, 3, 4, 5, 6, 7, 8 atau 9. 931 00:49:37,359 --> 00:49:38,150 PENONTON: Jika alfa. 932 00:49:38,150 --> 00:49:39,800 933 00:49:39,800 --> 00:49:44,100 >> ALLISON BUCHHOLTZ-AU: Jadi jika alfa akan hanya beritahu kami jika itu surat. 934 00:49:44,100 --> 00:49:47,810 Dan jika mereka memberi kita simbol, itu masih tidak cukup akan memeriksa. 935 00:49:47,810 --> 00:49:54,270 Jadi, jika anda menarik ASCII anda meja, kita tahu bahawa 0 hingga 9 936 00:49:54,270 --> 00:49:55,340 berada dalam satu segmen. 937 00:49:55,340 --> 00:49:57,560 938 00:49:57,560 --> 00:50:00,540 Beritahu saya nombor mereka sesuai dengan jika boleh. 939 00:50:00,540 --> 00:50:08,136 940 00:50:08,136 --> 00:50:08,677 PENONTON: 40. 941 00:50:08,677 --> 00:50:11,440 942 00:50:11,440 --> 00:50:13,714 >> ALLISON BUCHHOLTZ-AU: Jadi julat adalah seperti 40-- 943 00:50:13,714 --> 00:50:14,380 PENONTON: Mungkin. 944 00:50:14,380 --> 00:50:16,110 945 00:50:16,110 --> 00:50:16,765 48-57. 946 00:50:16,765 --> 00:50:17,430 Saya tidak pasti. 947 00:50:17,430 --> 00:50:18,510 >> ALLISON BUCHHOLTZ-AU: 40-57? 948 00:50:18,510 --> 00:50:19,426 >> PENONTON: 48, saya fikir. 949 00:50:19,426 --> 00:50:20,730 ALLISON BUCHHOLTZ-AU: 48 hingga 57. 950 00:50:20,730 --> 00:50:26,070 Oleh itu, kita tahu bahawa orang-orang ASCII symbols-- jika nilai ASCII tidak 951 00:50:26,070 --> 00:50:29,940 antara 48 dan 57, itu tidak sah, kan? 952 00:50:29,940 --> 00:50:32,050 Jadi kita boleh menggunakannya untuk keuntungan kita mungkin? 953 00:50:32,050 --> 00:50:33,770 954 00:50:33,770 --> 00:50:38,082 Bagaimana kita akan mendapatkan surat ini, dari dulu? 955 00:50:38,082 --> 00:50:40,910 Bagaimana kita mengakses ini watak ini? 956 00:50:40,910 --> 00:50:42,010 >> PENONTON: s kurungan i. 957 00:50:42,010 --> 00:50:42,801 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 958 00:50:42,801 --> 00:50:43,790 959 00:50:43,790 --> 00:50:46,285 Kerana kita boleh memikirkan string sebagai array, ingat. 960 00:50:46,285 --> 00:50:47,470 961 00:50:47,470 --> 00:50:48,740 Jadi, apa yang ingin kita katakan? 962 00:50:48,740 --> 00:50:55,920 Kami ingin mengatakan jika ini is-- saya akan memberikan petunjuk. 963 00:50:55,920 --> 00:50:56,920 Ini adalah kurang daripada. 964 00:50:56,920 --> 00:50:58,711 Apa yang anda fikir ia perlu kurang dari? 965 00:50:58,711 --> 00:50:59,074 966 00:50:59,074 --> 00:50:59,615 PENONTON: 57? 967 00:50:59,615 --> 00:51:01,550 968 00:51:01,550 --> 00:51:02,900 >> ALLISON BUCHHOLTZ-AU: 47, kan? 969 00:51:02,900 --> 00:51:08,920 Tetapi ia juga mewakili bahawa apabila anda 0 dalam satu [? kisi?], kerana itulah 970 00:51:08,920 --> 00:51:09,689 watak 0. 971 00:51:09,689 --> 00:51:10,605 Anda juga boleh meletakkan 47. 972 00:51:10,605 --> 00:51:11,660 973 00:51:11,660 --> 00:51:14,350 Mempunyai jadual ASCII, seperti yang Anda lihat, hanya sesuatu 974 00:51:14,350 --> 00:51:18,580 yang harus ada di lembaran kuiz anda. 975 00:51:18,580 --> 00:51:25,830 >> Jadi jika ini adalah kes itu, jika ia adalah satu kurang daripada 0-- tidak perlu dan. 976 00:51:25,830 --> 00:51:30,890 Ia hanya baik akan menjadi kurang daripada atau lebih besar daripada 9. 977 00:51:30,890 --> 00:51:33,055 Jadi, anda boleh mengisi ini terakhir bagi saya? 978 00:51:33,055 --> 00:51:36,440 Jadi atau s dari saya adalah apa, Rhea? 979 00:51:36,440 --> 00:51:39,810 980 00:51:39,810 --> 00:51:41,536 >> PENONTON: Lebih besar dari 9. 981 00:51:41,536 --> 00:51:42,970 982 00:51:42,970 --> 00:51:44,221 >> ALLISON BUCHHOLTZ-AU: Tidak. 983 00:51:44,221 --> 00:51:47,280 Adakah ini masuk akal untuk semua orang, bagaimana kami tiba di sana? 984 00:51:47,280 --> 00:51:51,340 Masalah-masalah ini, mereka seperti apabila anda melihat penyelesaian, ia seperti oh, OK. 985 00:51:51,340 --> 00:51:52,312 986 00:51:52,312 --> 00:51:53,937 Dan ini adalah mengapa amalan akan membantu anda. 987 00:51:53,937 --> 00:51:55,070 988 00:51:55,070 --> 00:51:57,400 OK, jadi kita kembali 0. 989 00:51:57,400 --> 00:51:57,900 Lovely. 990 00:51:57,900 --> 00:51:59,000 991 00:51:59,000 --> 00:51:59,670 Baik. 992 00:51:59,670 --> 00:52:00,780 993 00:52:00,780 --> 00:52:02,365 Jika tidak apa yang kita mahu lakukan? 994 00:52:02,365 --> 00:52:04,640 Ini adalah bahagian yang menarik di tempat yang lebih sedikit 995 00:52:04,640 --> 00:52:07,550 seperti matematik berbanding CS pada pendapat saya. 996 00:52:07,550 --> 00:52:09,479 997 00:52:09,479 --> 00:52:11,520 Adakah sesiapa yang mempunyai idea tentang bagaimana kita mungkin melakukan hal ini? 998 00:52:11,520 --> 00:52:15,822 999 00:52:15,822 --> 00:52:18,155 Jadi perkara yang penting sadari adalah watak pertama 1000 00:52:18,155 --> 00:52:21,510 kami ambil akan menjadi urutan angka paling tinggi, bukan? 1001 00:52:21,510 --> 00:52:25,975 Jadi, jika kita sedang melihat menukarkan 123, kali pertama kami beralih 1002 00:52:25,975 --> 00:52:30,800 adalah akan menjadi 1, tetapi kita perlu bahwa untuk menjadi 100 pada akhirnya, kan? 1003 00:52:30,800 --> 00:52:34,450 Jadi satu perkara yang anda boleh lakukan ialah dengan setiap digit berikutnya 1004 00:52:34,450 --> 00:52:39,670 anda mengambil, anda kalikan nilai anda dengan 10, supaya pada masa anda mencapai akhir, 1005 00:52:39,670 --> 00:52:42,960 semuanya telah beralih ke atas, kan? 1006 00:52:42,960 --> 00:52:46,490 >> Jadi pada kali pertama anda menjalankan itu, anda mempunyai 1 sebagai nilai anda. 1007 00:52:46,490 --> 00:52:50,370 Kali kedua dijalankan, anda melipatgandakan nilai anda dengan 10. 1008 00:52:50,370 --> 00:52:55,180 Ia akan update sehingga kini 10, dan anda menambah nilai anda yang seterusnya. 1009 00:52:55,180 --> 00:52:57,830 Dan kemudian anda kalikan dengan 10 dan menambah nilai anda yang seterusnya. 1010 00:52:57,830 --> 00:53:01,880 Dan ini adalah mengapa mereka mengatakan ini jauh lebih seperti ujian 1011 00:53:01,880 --> 00:53:06,920 algoritma matematik berbanding CS, tetapi saya menyimpang. 1012 00:53:06,920 --> 00:53:08,080 Saya tidak menulis kuiz. 1013 00:53:08,080 --> 00:53:13,520 >> Jadi satu perkara yang boleh kita lakukan adalah kita mengatakan kali nilai sama dengan 10. 1014 00:53:13,520 --> 00:53:16,630 Jadi ini akan beralih angka sekali setiap kali. 1015 00:53:16,630 --> 00:53:18,770 1016 00:53:18,770 --> 00:53:20,915 Dan kemudian kami hanya hendak tambah. 1017 00:53:20,915 --> 00:53:22,070 1018 00:53:22,070 --> 00:53:24,290 Kami ingin menambah dalam apa kami baru saja, kan? 1019 00:53:24,290 --> 00:53:25,350 1020 00:53:25,350 --> 00:53:31,649 Jadi bagaimana kita benar-benar menukar kami Karakter ASCII kepada bilangan 1021 00:53:31,649 --> 00:53:32,440 yang diwakilinya? 1022 00:53:32,440 --> 00:53:37,680 1023 00:53:37,680 --> 00:53:40,800 >> Jadi kita tahu bahawa 0 adalah sama dengan 47, kan? 1024 00:53:40,800 --> 00:53:44,260 Jadi, jika 0 adalah 47, apa yang yang kita perlu lakukan untuk itu 1025 00:53:44,260 --> 00:53:47,376 untuk benar-benar membuat ia menjadi int 0? 1026 00:53:47,376 --> 00:53:48,384 >> PENONTON: Ini 48. 1027 00:53:48,384 --> 00:53:49,050 ALLISON BUCHHOLTZ-AU: 48? 1028 00:53:49,050 --> 00:53:49,550 Maaf. 1029 00:53:49,550 --> 00:53:53,500 1030 00:53:53,500 --> 00:53:55,100 Kami akan tolak 48, kan? 1031 00:53:55,100 --> 00:53:58,580 1032 00:53:58,580 --> 00:53:59,550 Ingat ASCII matematik? 1033 00:53:59,550 --> 00:54:01,565 Kita boleh memperlakukan mereka seperti nombor biasa. 1034 00:54:01,565 --> 00:54:02,570 1035 00:54:02,570 --> 00:54:05,900 Jika anda memperlakukan mereka seperti nombor, mereka menjadi nombor berkesan. 1036 00:54:05,900 --> 00:54:10,410 Jadi, jika kita mempunyai s dari i, yang mari kita mengatakan dalam hal ini adalah sama dengan 0. 1037 00:54:10,410 --> 00:54:14,420 Jadi s dari saya dalam hal ini akan ASCII-- yang 1038 00:54:14,420 --> 00:54:16,675 int ASCII untuk itu akan menjadi 47. 1039 00:54:16,675 --> 00:54:17,750 1040 00:54:17,750 --> 00:54:19,875 Oleh itu, kita boleh subtract-- atau 48. 1041 00:54:19,875 --> 00:54:20,930 1042 00:54:20,930 --> 00:54:22,440 Anda boleh berbuat demikian, adalah salah satu cara. 1043 00:54:22,440 --> 00:54:25,125 Apakah ada yang tahu lebih baik cara yang boleh kita lakukan 48? 1044 00:54:25,125 --> 00:54:27,220 1045 00:54:27,220 --> 00:54:31,608 Kami hanya mengatakan 0 is-- masuk ke ASCII anda boleh melakukan kutipan 0. 1046 00:54:31,608 --> 00:54:39,740 1047 00:54:39,740 --> 00:54:43,160 Begitu juga ia jenis membuat rasa bagaimana ini bekerja? 1048 00:54:43,160 --> 00:54:50,080 >> PENONTON: Pada ketika ini, adalah nilai 0 kerana walaupun anda kalikan dengan 10, 1049 00:54:50,080 --> 00:54:53,340 Anda bermula dengan sifar, sehingga harus itu dihidupkan? 1050 00:54:53,340 --> 00:54:59,360 >> ALLISON BUCHHOLTZ-AU: Jadi dalam hal ini, anda ingin melipatgandakan sebelum anda menambah, 1051 00:54:59,360 --> 00:55:06,650 kerana dalam kes ini, ya, ia akan masih adalah-- pointer saya yang hilang. 1052 00:55:06,650 --> 00:55:09,980 Nilai dalam kes ini, yang pertama kali kita menjalankan ia akan menjadi sifar. 1053 00:55:09,980 --> 00:55:12,320 Jadi anda hanya menambah pada angka yang pertama. 1054 00:55:12,320 --> 00:55:15,930 Apa yang penting adalah masa depan Anda iterate, anda mahu beralih ke atas 1055 00:55:15,930 --> 00:55:18,722 sebelum anda menambah angka berikutnya anda. 1056 00:55:18,722 --> 00:55:21,223 Apakah yang menjelaskan untuk anda? 1057 00:55:21,223 --> 00:55:21,723 OK. 1058 00:55:21,723 --> 00:55:23,050 1059 00:55:23,050 --> 00:55:25,900 >> Kadang-kadang anda akan mendapatkan lebih perkara-perkara pelik Mathy. 1060 00:55:25,900 --> 00:55:28,020 1061 00:55:28,020 --> 00:55:30,750 Jika anda memiliki sebagian besar ini, anda masih akan 1062 00:55:30,750 --> 00:55:32,610 untuk get-- anda akan lakukan dengan baik. 1063 00:55:32,610 --> 00:55:35,150 Kredit separa adalah sangat perkara yang besar pada CS50 kuiz. 1064 00:55:35,150 --> 00:55:36,270 Jadi menulis apa yang anda tahu. 1065 00:55:36,270 --> 00:55:39,640 Jika anda punya segalanya kecuali di sini, kau 1066 00:55:39,640 --> 00:55:41,390 masih akan melakukan benar-benar baik masalah. 1067 00:55:41,390 --> 00:55:43,750 Kerana anda menunjukkan, OK, saya hampir tahu. 1068 00:55:43,750 --> 00:55:45,570 Saya tahu bahawa saya perlu untuk beralih melalui. 1069 00:55:45,570 --> 00:55:47,260 Saya tahu apa yang saya perlu untuk memeriksa. 1070 00:55:47,260 --> 00:55:50,584 Saya hanya tidak cukup mendapatkan bagaimana untuk mengubahnya. 1071 00:55:50,584 --> 00:55:51,500 Anda akan menjadi OK. 1072 00:55:51,500 --> 00:55:52,850 Ya, anda akan kehilangan beberapa mata, 1073 00:55:52,850 --> 00:55:55,641 tetapi anda masih akan mendapatkan baik jumlah mata bagi sesuatu 1074 00:55:55,641 --> 00:55:57,990 seperti itu jika anda hilang kedua-dua baris. 1075 00:55:57,990 --> 00:56:00,660 Saya akan menjadi seperti OK, orang ini tahu apa yang mereka lakukan. 1076 00:56:00,660 --> 00:56:02,070 Matematik adalah sukar. 1077 00:56:02,070 --> 00:56:04,930 Jadi saya akan mengatakan anda akan baik-baik saja. 1078 00:56:04,930 --> 00:56:09,474 >> OK, jadi anda semua bersedia untuk cuba strlen dengan pointer sekarang 1079 00:56:09,474 --> 00:56:10,890 Antum tuan pointer? 1080 00:56:10,890 --> 00:56:12,400 1081 00:56:12,400 --> 00:56:15,106 Jadi, saya akan memberitahu anda semua bekerja pada itu untuk sedikit. 1082 00:56:15,106 --> 00:56:17,131 1083 00:56:17,131 --> 00:56:19,090 Jika inginkan penyegaran. 1084 00:56:19,090 --> 00:56:23,120 1085 00:56:23,120 --> 00:56:28,060 Jadi, anda mahu menggunakan pointer aritmetik, dan kemudian jika adalah batal, 1086 00:56:28,060 --> 00:56:29,624 pelaksanaan Anda harus kembali 0. 1087 00:56:29,624 --> 00:56:37,045 1088 00:56:37,045 --> 00:56:39,670 Hal-hal seperti ini yang membuat anda benar-benar gembira untuk hanya memanggil strlen 1089 00:56:39,670 --> 00:56:40,586 pada akhir hari. 1090 00:56:40,586 --> 00:57:24,874 1091 00:57:24,874 --> 00:57:27,624 Saya rasa ini mungkin sedikit lebih mudah daripada yang terakhir, yang 1092 00:57:27,624 --> 00:57:28,123 adalah baik. 1093 00:57:28,123 --> 00:58:51,789 1094 00:58:51,789 --> 00:58:55,690 Saya akan memberikan anda semua satu minit lagi, dan kemudian kami akan bekerja melaluinya. 1095 00:58:55,690 --> 00:58:56,896 1096 00:58:56,896 --> 00:58:58,320 Dan kemudian kita akan mendapat untuk pergi ke suis. 1097 00:58:58,320 --> 00:59:32,480 1098 00:59:32,480 --> 00:59:34,660 >> OK, orang bersedia? 1099 00:59:34,660 --> 00:59:35,790 1100 00:59:35,790 --> 00:59:37,420 Mungkin sedikit. 1101 00:59:37,420 --> 00:59:40,210 Jadi, saya telah memberikan anda dua pilihan, bukan? 1102 00:59:40,210 --> 00:59:45,810 Sama ada memeriksa null dan kembali 0 jika ia adalah, atau benar-benar mengira panjang. 1103 00:59:45,810 --> 00:59:48,220 Jadi yang ingin menulis memeriksa null? 1104 00:59:48,220 --> 00:59:50,100 1105 00:59:50,100 --> 00:59:51,790 Pergi untuk itu. 1106 00:59:51,790 --> 00:59:56,460 >> PENONTON: Jika kurungan s sama sama null 0. 1107 00:59:56,460 --> 00:59:57,342 1108 00:59:57,342 --> 00:59:58,175 ALLISON BUCHHOLTZ-AU: Lovely. 1109 00:59:58,175 --> 00:59:59,350 1110 00:59:59,350 --> 01:00:02,320 Saya suka apabila setengah masalah anda hanya memeriksa for null. 1111 01:00:02,320 --> 01:00:04,820 Saya tahu dengan kalian lalu minggu aku seperti cek batal 1112 01:00:04,820 --> 01:00:06,630 secara harfiah setiap kali. 1113 01:00:06,630 --> 01:00:07,510 OK, so-- 1114 01:00:07,510 --> 01:00:08,716 1115 01:00:08,716 --> 01:00:12,750 >> PENONTON: Jika return 0 hanya satu baris, kita masih perlu pendakap kerinting? 1116 01:00:12,750 --> 01:00:15,860 >> ALLISON BUCHHOLTZ-AU: Anda tidak secara teknikal memerlukan mereka selagi anda konsisten. 1117 01:00:15,860 --> 01:00:19,240 Ia adalah amalan yang baik hanya untuk mendapatkan dalam kebiasaan 1118 01:00:19,240 --> 01:00:21,650 menggunakan pendakap kerinting, tetapi secara teknis tidak ada. 1119 01:00:21,650 --> 01:00:23,320 Anda tidak memerlukan mereka untuk satu baris. 1120 01:00:23,320 --> 01:00:26,030 Kami hanya cenderung untuk mengesyorkan bagi orang-orang mula program. 1121 01:00:26,030 --> 01:00:27,740 1122 01:00:27,740 --> 01:00:30,450 >> Jadi sekarang apa yang kita ingin lakukan di sini? 1123 01:00:30,450 --> 01:00:32,222 Jadi sekarang kita tahu bahawa string kita sah. 1124 01:00:32,222 --> 01:00:33,680 Kami ingin terus menghitung panjang. 1125 01:00:33,680 --> 01:00:35,620 Apa yang mungkin yang pertama perkara yang kami mahu lakukan? 1126 01:00:35,620 --> 01:00:38,770 1127 01:00:38,770 --> 01:00:41,276 >> PENONTON: Buat int yang panjang. 1128 01:00:41,276 --> 01:00:42,150 ALLISON BUCHHOLTZ-AU: Tepat sekali. 1129 01:00:42,150 --> 01:00:43,450 PENONTON: Dan kami ingin set ke? 1130 01:00:43,450 --> 01:00:44,210 ALLISON BUCHHOLTZ-AU: 0. 1131 01:00:44,210 --> 01:00:44,710 Sempurna. 1132 01:00:44,710 --> 01:00:46,050 1133 01:00:46,050 --> 01:00:47,290 Baik. 1134 01:00:47,290 --> 01:00:48,750 Sekarang apa yang mahu lakukan? 1135 01:00:48,750 --> 01:00:50,000 Ini adalah benar-benar sebahagian besar dari itu. 1136 01:00:50,000 --> 01:00:50,890 Pergi untuk itu. 1137 01:00:50,890 --> 01:00:54,370 >> PENONTON: Jadi, anda mungkin lakukan untuk loop. 1138 01:00:54,370 --> 01:01:03,150 Dan kemudian sejak bila anda sebut s anda mendapatkan alamat perkara pertama, 1139 01:01:03,150 --> 01:01:05,660 Anda akan bermula dengan i sama dengan 0. 1140 01:01:05,660 --> 01:01:07,980 1141 01:01:07,980 --> 01:01:15,755 Dan kemudian selagi x ditambah saya tidak kembali memangkas 0. 1142 01:01:15,755 --> 01:01:17,130 ALLISON BUCHHOLTZ-AU: The terminator null. 1143 01:01:17,130 --> 01:01:18,380 PENONTON: The terminator null. 1144 01:01:18,380 --> 01:01:18,890 1145 01:01:18,890 --> 01:01:21,088 Kemudian anda menambah satu hingga panjang. 1146 01:01:21,088 --> 01:01:22,372 >> ALLISON BUCHHOLTZ-AU: Ya. 1147 01:01:22,372 --> 01:01:25,940 OK, jadi mari kita mengubah itu kepada kod sangat konkrit. 1148 01:01:25,940 --> 01:01:27,537 Tetapi itu adalah idea yang sempurna. 1149 01:01:27,537 --> 01:01:28,870 Itulah apa yang kita lakukan. 1150 01:01:28,870 --> 01:01:31,910 Kami akan berada iterasi melalui dengan penunjuk. 1151 01:01:31,910 --> 01:01:34,590 Jadi apa yang ingin kita lakukan adalah bukan int 1152 01:01:34,590 --> 01:01:36,660 di sini, kerana kami tidak merujuk kepada suatu. 1153 01:01:36,660 --> 01:01:42,390 Kami merujuk kepada permulaan tali, yang mulai menjadi alamat penerima, 1154 01:01:42,390 --> 01:01:43,300 kan? 1155 01:01:43,300 --> 01:01:44,600 >> Jadi kami ingin pointer. 1156 01:01:44,600 --> 01:01:47,610 1157 01:01:47,610 --> 01:01:52,310 Jadi, kita akan mempunyai beberapa bintang char, kerana ia sesuai dengan s kita, kan? 1158 01:01:52,310 --> 01:01:57,270 Jadi ini adalah satu masa nanti kita Memulakan ke awal dari tali, OK? 1159 01:01:57,270 --> 01:01:58,949 Jadi mari kita memanggilnya i. 1160 01:01:58,949 --> 01:02:01,740 Jika itu adalah awal dari tali, apa yang ia akan ditugaskan untuk? 1161 01:02:01,740 --> 01:02:03,690 1162 01:02:03,690 --> 01:02:04,530 Tidak 0. 1163 01:02:04,530 --> 01:02:06,238 Kami mahu ia menjadi memulakan tali kami. 1164 01:02:06,238 --> 01:02:07,170 1165 01:02:07,170 --> 01:02:09,960 Apa mewakili permulaan string kita yang telah diberikan kepada kita? 1166 01:02:09,960 --> 01:02:10,800 >> PENONTON: Hanya s. 1167 01:02:10,800 --> 01:02:11,425 >> ALLISON BUCHHOLTZ-AU: s. 1168 01:02:11,425 --> 01:02:13,070 1169 01:02:13,070 --> 01:02:17,890 Jadi ini mewujudkan beberapa penunjuk baru yang mewakili permulaan string kita, OK? 1170 01:02:17,890 --> 01:02:19,430 1171 01:02:19,430 --> 01:02:22,777 Cara lain untuk memikirkan ia adalah seperti inilah array kita. 1172 01:02:22,777 --> 01:02:26,690 Itulah tali kami, s. 1173 01:02:26,690 --> 01:02:28,650 1174 01:02:28,650 --> 01:02:32,400 Jadi, bila ini adalah tempat pertama, dan ini adalah 0x4. 1175 01:02:32,400 --> 01:02:34,400 1176 01:02:34,400 --> 01:02:34,900 04. 1177 01:02:34,900 --> 01:02:36,330 1178 01:02:36,330 --> 01:02:38,535 Ini adalah s kita, yang memegang alamat tersebut. 1179 01:02:38,535 --> 01:02:39,810 1180 01:02:39,810 --> 01:02:45,960 Dan kita buat satu sama lain yang disebut i yang hanya merujuk kepada perkara yang sama. 1181 01:02:45,960 --> 01:02:49,437 Jadi mereka berdua hanya menunjuk untuk permulaan rentetan kami. 1182 01:02:49,437 --> 01:02:51,020 Ini hanya satu perwakilan grafik. 1183 01:02:51,020 --> 01:02:53,830 1184 01:02:53,830 --> 01:02:57,100 >> Jadi sekarang apa yang kita mahu lakukan ialah kita mahu beralih 1185 01:02:57,100 --> 01:03:02,040 kondisi kita untuk iterasi melalui tali kami. 1186 01:03:02,040 --> 01:03:02,920 Membeli-belah sekarang. 1187 01:03:02,920 --> 01:03:04,150 Sampai ke kedai, guys. 1188 01:03:04,150 --> 01:03:06,290 1189 01:03:06,290 --> 01:03:12,390 Adakah kita mahu terus mengupdate sehingga kita mencapai terminator nol, kan? 1190 01:03:12,390 --> 01:03:14,930 Jadi apa yang mungkin yang kelihatan seperti? 1191 01:03:14,930 --> 01:03:17,760 1192 01:03:17,760 --> 01:03:21,880 Apakah kita ingin saya, atau adakah kita mahu bintang i adalah soalan? 1193 01:03:21,880 --> 01:03:26,160 1194 01:03:26,160 --> 01:03:29,255 Apakah terminator nol alamat atau sesuatu yang terletak di alamat? 1195 01:03:29,255 --> 01:03:31,420 1196 01:03:31,420 --> 01:03:33,660 Terletak di alamat, kan? 1197 01:03:33,660 --> 01:03:38,420 >> Jadi kita perlu dereference apa yang ada di sini, kerana ini hanya beberapa alamat. 1198 01:03:38,420 --> 01:03:44,350 Untuk benar-benar sampai ke awal kita perlu dereference ini 1199 01:03:44,350 --> 01:03:46,770 supaya kita benar-benar mendapatkan apa yang ada di tempat pertama. 1200 01:03:46,770 --> 01:03:48,690 1201 01:03:48,690 --> 01:03:52,910 Jadi, jika kita lakukan bintang saya, apa yang kita tidak mahu ia sama? 1202 01:03:52,910 --> 01:03:53,885 1203 01:03:53,885 --> 01:03:54,760 PENONTON: Kembali slash? 1204 01:03:54,760 --> 01:03:57,760 1205 01:03:57,760 --> 01:03:59,260 >> ALLISON BUCHHOLTZ-AU: Tidak. 1206 01:03:59,260 --> 01:04:01,430 Adakah ini masuk akal untuk semua orang? 1207 01:04:01,430 --> 01:04:05,620 Kita perlu pergi ke dalam tali dan memastikan bahawa ia bukan akhir. 1208 01:04:05,620 --> 01:04:07,200 1209 01:04:07,200 --> 01:04:08,990 Dan kemudian kami hanya boleh mengemas kini seperti ini. 1210 01:04:08,990 --> 01:04:09,680 Pengemaskinian biasa. 1211 01:04:09,680 --> 01:04:11,910 1212 01:04:11,910 --> 01:04:15,070 Jadi selama ini met, apa yang kita perlu buat? 1213 01:04:15,070 --> 01:04:17,700 1214 01:04:17,700 --> 01:04:18,852 >> PENONTON: Panjang plus plus. 1215 01:04:18,852 --> 01:04:20,656 1216 01:04:20,656 --> 01:04:21,560 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1217 01:04:21,560 --> 01:04:25,540 Dan kemudian selepas untuk loop berakhir, apa yang kita mahu kembali? 1218 01:04:25,540 --> 01:04:27,082 1219 01:04:27,082 --> 01:04:27,790 PENONTON: Panjang? 1220 01:04:27,790 --> 01:04:28,623 ALLISON BUCHHOLTZ-AU: Panjang. 1221 01:04:28,623 --> 01:04:29,910 1222 01:04:29,910 --> 01:04:30,760 Terdapat anda pergi. 1223 01:04:30,760 --> 01:04:33,790 1224 01:04:33,790 --> 01:04:37,810 Jelas daging yang satu ini adalah memahami ini untuk gelung. 1225 01:04:37,810 --> 01:04:39,280 1226 01:04:39,280 --> 01:04:41,090 Adakah semua orang mendapatkan cara yang bekerja? 1227 01:04:41,090 --> 01:04:42,460 1228 01:04:42,460 --> 01:04:44,170 Saya senang untuk pergi lebih dari itu lagi. 1229 01:04:44,170 --> 01:04:48,400 >> PENONTON: Kedua bahagian, jadi bintang yang saya ada, 1230 01:04:48,400 --> 01:04:51,834 itulah alamat first-- 1231 01:04:51,834 --> 01:04:53,250 ALLISON BUCHHOLTZ-AU: Ini bukan alamat. 1232 01:04:53,250 --> 01:04:54,142 Ia adalah apa yang di. 1233 01:04:54,142 --> 01:04:55,600 PENONTON: Itu benar-benar di sana. 1234 01:04:55,600 --> 01:04:57,475 ALLISON BUCHHOLTZ-AU: Itu apa yang benar-benar di sana. 1235 01:04:57,475 --> 01:05:01,280 Jadi, ini adalah saying-- membiarkan saya membuat ini lebih baik. 1236 01:05:01,280 --> 01:05:07,940 Jadi, ini adalah 0x04, dan saya hanya akan untuk mengatakan saya akan membuat nama saya ini. 1237 01:05:07,940 --> 01:05:14,531 1238 01:05:14,531 --> 01:05:15,030 OK. 1239 01:05:15,030 --> 01:05:17,456 1240 01:05:17,456 --> 01:05:19,080 Ya, saya tahu saya mempunyai kajian kuiz malam ini. 1241 01:05:19,080 --> 01:05:20,620 1242 01:05:20,620 --> 01:05:21,540 Banyak kajian kuiz. 1243 01:05:21,540 --> 01:05:23,500 1244 01:05:23,500 --> 01:05:26,620 Jadi, bila string ini adalah nama saya, Allison. 1245 01:05:26,620 --> 01:05:28,600 Sedikit berantakan, tapi itu ada. 1246 01:05:28,600 --> 01:05:33,640 Dan s merupakan lokasi di mana tali bermula, 1247 01:05:33,640 --> 01:05:41,950 jadi saya akan membuat ini real-- ini adalah alamat dari, 1248 01:05:41,950 --> 01:05:45,000 di mana tali bermula, kan? 1249 01:05:45,000 --> 01:05:48,560 >> Jadi apa yang kita lakukan di sini adalah kita mahu menggunakan pointer untuk beralih melalui. 1250 01:05:48,560 --> 01:05:49,920 1251 01:05:49,920 --> 01:05:56,870 Oleh itu, kita membuat beberapa penunjuk, i, yang juga adalah sama dengan permulaan string. 1252 01:05:56,870 --> 01:05:57,880 1253 01:05:57,880 --> 01:06:03,820 Dan pada setiap titik, kita mahu terus melalui array 1254 01:06:03,820 --> 01:06:07,570 di sini sehingga kita mencapai terminator nol. 1255 01:06:07,570 --> 01:06:12,320 Oleh itu, kita sentiasa mahu untuk memeriksa apa yang di setiap alamat ini. 1256 01:06:12,320 --> 01:06:15,730 >> Oleh itu, kita dereference i, sehingga kali pertama kita melakukannya kita 1257 01:06:15,730 --> 01:06:17,810 berkata, OK, apa yang di alamat 0x04? 1258 01:06:17,810 --> 01:06:19,060 1259 01:06:19,060 --> 01:06:19,720 Ini adalah satu. 1260 01:06:19,720 --> 01:06:20,660 OK, kita baik. 1261 01:06:20,660 --> 01:06:21,770 Panjang kenaikan. 1262 01:06:21,770 --> 01:06:22,790 Bergerak ke satu depan. 1263 01:06:22,790 --> 01:06:32,410 Jadi aku-- ingat pointer peningkatan oleh ukuran apa sahaja yang mereka menunjuk ke. 1264 01:06:32,410 --> 01:06:35,320 Jadi dalam hal ini, kerana ia char, ia akan update per satu. 1265 01:06:35,320 --> 01:06:38,755 Jadi sekarang kita akan melihat 5, yang bermakna ia akan di sini. 1266 01:06:38,755 --> 01:06:39,860 1267 01:06:39,860 --> 01:06:43,440 Sehingga kata OK, pergi ke 0x05. 1268 01:06:43,440 --> 01:06:44,270 Apa yang ada di sana? 1269 01:06:44,270 --> 01:06:44,930 Ini l an. 1270 01:06:44,930 --> 01:06:47,870 Dan ia akan terus melakukan itu sehingga ia mencecah satu ini. 1271 01:06:47,870 --> 01:06:50,990 Dan ia berkata OK, apa yang ada di apa sahaja alamat ini? 1272 01:06:50,990 --> 01:06:53,060 Terminator batal, OK. 1273 01:06:53,060 --> 01:06:53,870 Keluar. 1274 01:06:53,870 --> 01:06:55,240 Dan hanya kembali panjang. 1275 01:06:55,240 --> 01:06:56,370 1276 01:06:56,370 --> 01:06:59,800 Kerana anda memerlukan apa yang benar-benar di alamat tersebut, bukan alamat itu sendiri. 1277 01:06:59,800 --> 01:07:03,110 1278 01:07:03,110 --> 01:07:05,790 >> Tidak banyak tempat-tempat di mana Anda benar-benar perlu alamat. 1279 01:07:05,790 --> 01:07:08,720 Kebanyakan masa apabila Anda menggunakan dan itu 1280 01:07:08,720 --> 01:07:12,424 apabila anda pertama memberikan pointer atau apabila 1281 01:07:12,424 --> 01:07:14,090 Anda lewat ke fungsi yang lain. 1282 01:07:14,090 --> 01:07:16,350 1283 01:07:16,350 --> 01:07:21,330 OK, semua orang yang baik di sana? 1284 01:07:21,330 --> 01:07:21,830 Jenis? 1285 01:07:21,830 --> 01:07:23,810 1286 01:07:23,810 --> 01:07:25,040 OK. 1287 01:07:25,040 --> 01:07:28,210 >> Jadi ia kelihatan seperti kita sudah mendapat kira-kira 12 minit, 1288 01:07:28,210 --> 01:07:31,340 jadi kita akan pergi ke mungkin masalah terakhir kami, 1289 01:07:31,340 --> 01:07:34,230 dan kemudian ada apa-apa konsep-konsep yang telah datang 1290 01:07:34,230 --> 01:07:36,830 dalam masa yang sama kita boleh cepat pergi lebih dari itu. 1291 01:07:36,830 --> 01:07:42,310 >> Sehingga beralih gear adalah yang terakhir masalah di sini, menukar pernyataan. 1292 01:07:42,310 --> 01:07:44,970 1293 01:07:44,970 --> 01:07:49,450 Jadi tugas anda adalah untuk menulis semula ini sehingga berperilaku yang sama 1294 01:07:49,450 --> 01:07:50,580 tetapi tidak menggunakan suis. 1295 01:07:50,580 --> 01:07:53,684 1296 01:07:53,684 --> 01:07:54,666 Tangan pasi. 1297 01:07:54,666 --> 01:08:11,630 1298 01:08:11,630 --> 01:08:13,420 Jadi apa-apa soalan tentang hal ini dari kelelawar? 1299 01:08:13,420 --> 01:08:15,420 1300 01:08:15,420 --> 01:08:15,920 Tiada? 1301 01:08:15,920 --> 01:08:16,420 OK. 1302 01:08:16,420 --> 01:08:17,920 1303 01:08:17,920 --> 01:08:22,170 Adakah semua orang faham bahawa jika kes tidak mempunyai apa-apa selepas itu, 1304 01:08:22,170 --> 01:08:25,029 ia bermakna bahawa ia harus ikuti langkah seterusnya? 1305 01:08:25,029 --> 01:08:28,200 Jadi kes 1 dan 2 dalam hal ini melakukan perkara yang sama. 1306 01:08:28,200 --> 01:08:31,153 1307 01:08:31,153 --> 01:08:32,444 Kadang-kadang titik kekeliruan. 1308 01:08:32,444 --> 01:09:32,700 1309 01:09:32,700 --> 01:09:33,488 >> Baik. 1310 01:09:33,488 --> 01:09:34,404 Ada yang punya ide? 1311 01:09:34,404 --> 01:09:36,364 1312 01:09:36,364 --> 01:09:36,864 Ya? 1313 01:09:36,864 --> 01:09:40,120 >> PENONTON: Jadi, anda boleh hanya dilakukan jika pernyataan. 1314 01:09:40,120 --> 01:09:41,140 >> ALLISON BUCHHOLTZ-AU: Mm-hm. 1315 01:09:41,140 --> 01:09:42,880 Jadi apa yang pertama kita? 1316 01:09:42,880 --> 01:09:48,120 >> PENONTON: Jika n sama sama dengan 1, dan 2 baris untuk n atau sama dengan 1317 01:09:48,120 --> 01:09:51,059 sama dengan 2, kemudian mencetak kecil. 1318 01:09:51,059 --> 01:09:57,760 1319 01:09:57,760 --> 01:09:59,520 Dan kemudian anda boleh melakukan lain jika? 1320 01:09:59,520 --> 01:10:02,160 Atau anda hanya boleh melakukan sesuatu jika? 1321 01:10:02,160 --> 01:10:03,650 >> ALLISON BUCHHOLTZ-AU: Anda dapat melakukan lain jika? 1322 01:10:03,650 --> 01:10:05,274 >> PENONTON: Adakah ia masalah jika anda lakukan jika? 1323 01:10:05,274 --> 01:10:06,320 ALLISON BUCHHOLTZ-AU: Jadi ia. 1324 01:10:06,320 --> 01:10:10,160 Adakah anyone-- demikian, anda akan mendapatkan output yang sama 1325 01:10:10,160 --> 01:10:13,930 jika anda menggunakan hanya IFS berbanding jika anda menggunakan IFS lain. 1326 01:10:13,930 --> 01:10:17,090 Bolehkah kalian memikirkan alasan yang mengapa anda mungkin mahu menggunakan lagi satu 1327 01:10:17,090 --> 01:10:18,680 jika berbanding banyak seandainya? 1328 01:10:18,680 --> 01:10:20,260 1329 01:10:20,260 --> 01:10:21,510 Harus dengan cekap. 1330 01:10:21,510 --> 01:10:22,225 Ya? 1331 01:10:22,225 --> 01:10:24,783 >> PENONTON: Akan memeriksa semua seandainya setiap kali. 1332 01:10:24,783 --> 01:10:26,076 1333 01:10:26,076 --> 01:10:28,110 >> ALLISON BUCHHOLTZ-AU: Jadi, walaupun ia memukul salah satu yang pertama ini, 1334 01:10:28,110 --> 01:10:29,880 ia akan pergi pada cek setiap satunya. 1335 01:10:29,880 --> 01:10:36,690 Jadi, anda mahu untuk digunakan jika yang lain seandainya dalam kes-kes di mana hanya salah seorang daripada mereka pernah akan berlaku. 1336 01:10:36,690 --> 01:10:39,380 Jadi pengecualian bersama adalah apa yang kita cenderung untuk mengatakan. 1337 01:10:39,380 --> 01:10:41,410 1338 01:10:41,410 --> 01:10:46,550 Jika anda mempunyai sekumpulan jika, ia bermakna yang mungkin lebih daripada satu daripada mereka 1339 01:10:46,550 --> 01:10:49,630 perkara, dan mungkin lebih dari salah seorang daripada mereka boleh menjadi kenyataan. 1340 01:10:49,630 --> 01:10:51,910 Dan anda mahu kedua-dua mereka untuk melaksanakan jika mereka benar. 1341 01:10:51,910 --> 01:10:57,180 Jika anda hanya mahu salah seorang daripada mereka untuk bekerja dalam kes-kes yang saling eksklusif, 1342 01:10:57,180 --> 01:11:00,790 Anda ingin menggunakan lain jika, kerana semuanya berkaitan dengan kecekapan. 1343 01:11:00,790 --> 01:11:05,350 Kode Anda hanya lebih baik dirancang jika ia berpegang kepada amalan ini. 1344 01:11:05,350 --> 01:11:07,330 Jadi dalam hal ini kita akan mempunyai sebuah lagi kalau. 1345 01:11:07,330 --> 01:11:09,080 Dan ini akan menjadi? 1346 01:11:09,080 --> 01:11:11,890 >> PENONTON: n sama sama dengan 3. 1347 01:11:11,890 --> 01:11:12,765 ALLISON BUCHHOLTZ-AU: Perfect. 1348 01:11:12,765 --> 01:11:19,420 1349 01:11:19,420 --> 01:11:20,445 Media cetak. 1350 01:11:20,445 --> 01:11:25,190 1351 01:11:25,190 --> 01:11:29,930 Dan kemudian di terakhir kami kes, apa yang kita ada? 1352 01:11:29,930 --> 01:11:31,495 Yang lain atau yang lain jika? 1353 01:11:31,495 --> 01:11:32,120 PENONTON: Lain-Lain. 1354 01:11:32,120 --> 01:11:33,450 1355 01:11:33,450 --> 01:11:37,900 >> ALLISON BUCHHOLTZ-AU: Apakah kita want-- Anda mahu lain jika kerana kami mempunyai kes konkrit. 1356 01:11:37,900 --> 01:11:39,270 Ia bukan jenis menangkap semua. 1357 01:11:39,270 --> 01:11:44,247 Jika anda telah lalai dalam switch-- ingat dalam suis anda boleh mempunyai kes, 1358 01:11:44,247 --> 01:11:45,330 dan kemudian anda perlu lalai. 1359 01:11:45,330 --> 01:11:48,760 Jika anda mempunyai suatu keingkaran, itulah jenis pernyataan lain anda di sana. 1360 01:11:48,760 --> 01:11:52,180 Tetapi jika ia mempunyai kes sahaja, yang bermakna anda perlu 1361 01:11:52,180 --> 01:11:54,315 untuk memeriksa untuk melihat apakah itu masing-masing. 1362 01:11:54,315 --> 01:11:57,755 Jadi dalam kes ini, ia akan 4 atau 5. 1363 01:11:57,755 --> 01:12:00,480 1364 01:12:00,480 --> 01:12:01,450 Kami ingin mencetak off. 1365 01:12:01,450 --> 01:12:02,990 1366 01:12:02,990 --> 01:12:03,630 Ini besar. 1367 01:12:03,630 --> 01:12:06,640 1368 01:12:06,640 --> 01:12:07,509 Dan ada anda pergi. 1369 01:12:07,509 --> 01:12:08,800 Dan itu akan menjadi program anda. 1370 01:12:08,800 --> 01:12:11,890 1371 01:12:11,890 --> 01:12:17,050 >> Jadi dalam hal ini jika kita mempunyai sesuatu yang lalai, 1372 01:12:17,050 --> 01:12:20,470 kita akan mempunyai yang lain dalam apa pun yang ingin kita lakukan. 1373 01:12:20,470 --> 01:12:23,365 Supaya perbezaan yang baik untuk mengetahui, mengerti. 1374 01:12:23,365 --> 01:12:25,368 1375 01:12:25,368 --> 01:12:27,790 Apakah yang membantu dengan suis untuk anda? 1376 01:12:27,790 --> 01:12:28,800 Sempurna. 1377 01:12:28,800 --> 01:12:29,390 Baik. 1378 01:12:29,390 --> 01:12:31,320 1379 01:12:31,320 --> 01:12:33,340 >> Kami mempunyai kira-kira lapan minit kiri. 1380 01:12:33,340 --> 01:12:37,090 Apakah kalian mempunyai apa-apa konsep tingkat tinggi yang lain? 1381 01:12:37,090 --> 01:12:38,720 Soalan-soalan secara umum? 1382 01:12:38,720 --> 01:12:39,220 Ya? 1383 01:12:39,220 --> 01:12:42,860 >> PENONTON: saya mempunyai soalan mengenai salah seorang daripada mereka 1384 01:12:42,860 --> 01:12:46,257 itu tentang rawak number generator pada kuis sifar. 1385 01:12:46,257 --> 01:12:47,340 ALLISON BUCHHOLTZ-AU: Oh, yang satu itu. 1386 01:12:47,340 --> 01:12:51,460 Yang satu itu adalah satu sama lain di mana ia lebih matematik than-- ya. 1387 01:12:51,460 --> 01:12:53,800 1388 01:12:53,800 --> 01:12:59,452 Penyelesaian untuk bahawa- walaupun saya apabila Yang saya lihat, saya seperti apa ini. 1389 01:12:59,452 --> 01:13:00,590 >> PENONTON: Ia adalah nombor 7. 1390 01:13:00,590 --> 01:13:02,720 1391 01:13:02,720 --> 01:13:05,310 >> ALLISON BUCHHOLTZ-AU: Ini aneh pada pendapat saya. 1392 01:13:05,310 --> 01:13:07,260 1393 01:13:07,260 --> 01:13:11,630 Jadi, pada asasnya anda mahu menggunakan drand48, yang 1394 01:13:11,630 --> 01:13:15,420 akan memberikan anda beberapa nombor di antara 0 dan 1. 1395 01:13:15,420 --> 01:13:21,200 Dan anda ingin menggunakannya sehingga yang entah bagaimana anda mendapat a-- 1396 01:13:21,200 --> 01:13:26,690 dan itu jauh lebih dari masalah matematik bagi saya daripada saya fikir masalah CS. 1397 01:13:26,690 --> 01:13:29,040 1398 01:13:29,040 --> 01:13:37,845 >> Cara yang anda lakukan dan itu-- kadang-kadang ia hanya akan menjadi seperti itu. 1399 01:13:37,845 --> 01:13:39,340 1400 01:13:39,340 --> 01:13:41,090 Sekali lagi, ini adalah kes di mana ia adalah jenis 1401 01:13:41,090 --> 01:13:46,310 seperti menulis apa yang anda boleh dan kredit separa. 1402 01:13:46,310 --> 01:13:47,800 1403 01:13:47,800 --> 01:13:51,510 Jadi jika kita ingin kembali, kita tahu bahawa kita berada 1404 01:13:51,510 --> 01:13:54,182 akan menggunakan drand48 dalam beberapa cara, bukan? 1405 01:13:54,182 --> 01:13:55,640 Jadi mengapa tidak kita hanya mencatat bahawa ke bawah. 1406 01:13:55,640 --> 01:13:58,286 1407 01:13:58,286 --> 01:13:59,410 Kami menggunakannya dalam beberapa cara. 1408 01:13:59,410 --> 01:14:00,780 1409 01:14:00,780 --> 01:14:04,190 Cara yang mereka mempunyai kalian menggunakannya adalah 1410 01:14:04,190 --> 01:14:08,175 seperti ini, yang saya akan cuba menjelaskan. 1411 01:14:08,175 --> 01:14:10,200 1412 01:14:10,200 --> 01:14:15,340 >> Jadi, pada asasnya apa yang berlaku di sini adalah kerana ia adalah di antara 0 dan 1, 1413 01:14:15,340 --> 01:14:19,300 apa yang anda lakukan adalah anda mendarabkan oleh- ini sangat banyak soalan matematik. 1414 01:14:19,300 --> 01:14:22,010 Hanya penafian penuh, ini adalah sepenuhnya soalan matematik. 1415 01:14:22,010 --> 01:14:23,990 Apa yang anda lakukan adalah karena 0 dan 1 dan anda 1416 01:14:23,990 --> 01:14:26,460 ingin ia berada dalam julat ini, anda sebenarnya 1417 01:14:26,460 --> 01:14:29,360 memikirkan bagaimana besar julat adalah, dan kemudian 1418 01:14:29,360 --> 01:14:32,710 Anda pada dasarnya skala itu, yang adalah apa yang ini lakukan. 1419 01:14:32,710 --> 01:14:39,050 >> b tolak yang memberikan anda pelbagai itu, Perbezaan antara nombor-nombor tersebut. 1420 01:14:39,050 --> 01:14:44,040 Anda boleh membiak di antara 0 dan 1, dan kemudian menambah yang adil 1421 01:14:44,040 --> 01:14:48,870 bermakna anda scaling itu sehingga sehingga itu antara a dan b, 1422 01:14:48,870 --> 01:14:52,377 yang saya tidak benar-benar seperti masalah ini. 1423 01:14:52,377 --> 01:14:58,380 1424 01:14:58,380 --> 01:15:01,790 Seperti yang saya katakan, kuis ini yang dimaksudkan untuk mencakup 1425 01:15:01,790 --> 01:15:04,110 orang yang kurang selesa, di suatu tempat di antara, 1426 01:15:04,110 --> 01:15:05,070 dan lebih selesa. 1427 01:15:05,070 --> 01:15:07,550 Oleh itu, jika mereka membuatnya begitu bahawa ia adalah sesuatu yang 1428 01:15:07,550 --> 01:15:10,050 bahawa semua orang di kurang tempat yang selesa akan dapat, 1429 01:15:10,050 --> 01:15:12,259 kita akan mempunyai terlalu banyak orang mencetak Perfect, 1430 01:15:12,259 --> 01:15:13,925 dan yang lebih selesa akan menjadi bosan. 1431 01:15:13,925 --> 01:15:14,980 1432 01:15:14,980 --> 01:15:18,970 >> Jadi mereka sentiasa mempunyai ini jenis soalan asah otak 1433 01:15:18,970 --> 01:15:22,695 yang dimaksudkan untuk menjadi sedikit lebih keras yang mengambil beberapa pemikiran kreatif. 1434 01:15:22,695 --> 01:15:25,030 1435 01:15:25,030 --> 01:15:27,790 Apabila kamu melihat mereka, jangan terlalu bingung. 1436 01:15:27,790 --> 01:15:31,720 Saya pasti akan mengatakan flip melalui kuiz anda terlebih dahulu. 1437 01:15:31,720 --> 01:15:35,020 Mengatasi masalah anda tahu yang anda boleh, 1438 01:15:35,020 --> 01:15:38,480 kerana tidak ada gunanya terjebak pada masalah ketika ada tiga 1439 01:15:38,480 --> 01:15:42,090 atau empat atau lima di muka selepas itu anda boleh dengan mudah melakukannya. 1440 01:15:42,090 --> 01:15:45,331 1441 01:15:45,331 --> 01:15:48,520 >> PENONTON: Mengapa sebenarnya yang Anda kalikan dengan jangkauan? 1442 01:15:48,520 --> 01:15:54,935 >> ALLISON BUCHHOLTZ-AU: Anda membiak pelbagai yang Anda tahu-- ia seperti berapa banyak selepas 1443 01:15:54,935 --> 01:15:55,485 yang anda mahu? 1444 01:15:55,485 --> 01:15:57,840 1445 01:15:57,840 --> 01:16:02,130 Jadi yang boleh anda fikirkan, kerana ia mengembalikan nombor antara 0 dan 1, 1446 01:16:02,130 --> 01:16:03,890 Anda boleh menganggapnya sebagai peratusan. 1447 01:16:03,890 --> 01:16:12,195 Jadi pada dasarnya mengatakan jika kita mempunyai garis nombor di sini, yang ada di sini, 1448 01:16:12,195 --> 01:16:13,840 dan b di sini. 1449 01:16:13,840 --> 01:16:19,170 Kau seperti berapa banyak yang lalu itu? 1450 01:16:19,170 --> 01:16:20,010 Apakah semua yang kita lakukan. 1451 01:16:20,010 --> 01:16:24,920 Jadi, anda hanya meminta untuk peratusan julat ini, yang 1452 01:16:24,920 --> 01:16:26,170 adalah apa yang ia memberi anda. 1453 01:16:26,170 --> 01:16:30,915 Dan kemudian anda pada dasarnya hanya skala itu dengan menambah. 1454 01:16:30,915 --> 01:16:32,302 Ini adalah penggoda otak matematik. 1455 01:16:32,302 --> 01:16:35,400 1456 01:16:35,400 --> 01:16:39,060 >> Jika ada apa-apa nasihat saat akhir, saya akan mengatakan flip melalui pertanyaan-pertanyaan, 1457 01:16:39,060 --> 01:16:41,660 mencari tahu mana yang anda tahu bahawa seperti, oh saya mendapat ini. 1458 01:16:41,660 --> 01:16:43,196 1459 01:16:43,196 --> 01:16:45,820 Hampir pasti mereka akan menjadi soalan yang anda tidak akan tahu 1460 01:16:45,820 --> 01:16:49,580 atau bahawa anda akan mempunyai masa untuk, jadi memukul kekuatan anda, OK? 1461 01:16:49,580 --> 01:16:50,990 Kalian akan besar. 1462 01:16:50,990 --> 01:16:52,740 Terdapat banyak soalan sebab, 1463 01:16:52,740 --> 01:16:57,140 supaya anda mempunyai masa untuk jenis mempunyai peluang 1464 01:16:57,140 --> 01:16:59,330 untuk menunjukkan apa yang Anda benar-benar baik di. 1465 01:16:59,330 --> 01:17:02,370 Jadi apa jika anda tidak baik dalam segala hal. 1466 01:17:02,370 --> 01:17:03,371 Bermain untuk kekuatan anda. 1467 01:17:03,371 --> 01:17:03,870 Ya? 1468 01:17:03,870 --> 01:17:06,536 >> PENONTON: Jadi ini akan kembali sesuatu yang dipotong? 1469 01:17:06,536 --> 01:17:10,810 1470 01:17:10,810 --> 01:17:15,015 Ya, ia akan, kerana drand pulangan antara 0 dan 1. 1471 01:17:15,015 --> 01:17:17,459 1472 01:17:17,459 --> 01:17:19,250 Ia akan kembali int an, kerana ia akan memotong 1473 01:17:19,250 --> 01:17:22,933 apabila kita menambah atau memperbanyak olehnya. 1474 01:17:22,933 --> 01:17:27,670 1475 01:17:27,670 --> 01:17:28,442 Sejuk. 1476 01:17:28,442 --> 01:17:29,525 Sebarang pertanyaan istimewa? 1477 01:17:29,525 --> 01:17:31,310 1478 01:17:31,310 --> 01:17:32,615 >> Kalian akan melakukan yang besar. 1479 01:17:32,615 --> 01:17:34,440 Kau Pergi dan menjadi luar biasa. 1480 01:17:34,440 --> 01:17:37,100 Dan jika tidak, akan ada menjadi gula-gula di sini minggu depan. 1481 01:17:37,100 --> 01:17:39,040 1482 01:17:39,040 --> 01:17:40,020 Dan aku akan mencintaimu. 1483 01:17:40,020 --> 01:17:41,270 Saya akan mencintai kalian kira. 1484 01:17:41,270 --> 01:17:42,550 1485 01:17:42,550 --> 01:17:43,930 Baiklah, semua orang, nasib baik. 1486 01:17:43,930 --> 01:17:44,680 Mempunyai masa yang hebat. 1487 01:17:44,680 --> 01:17:45,620 1488 01:17:45,620 --> 01:17:46,620 Anda akan baik-baik saja. 1489 01:17:46,620 --> 01:17:47,370 Dan anda tahu apa? 1490 01:17:47,370 --> 01:17:50,310 Dalam dua hari ia akan berakhir, sedangkan saya 1491 01:17:50,310 --> 01:17:53,675 mempunyai dua ujian tengah semester pada hari Khamis, jadi sekurang-kurangnya kalian akan dilakukan. 1492 01:17:53,675 --> 01:17:56,550 Baiklah, saya akan melihat kalian minggu depan. 1493 01:17:56,550 --> 01:17:58,208