1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> SPEAKER: OK, vì vậy, bạn sẽ không tin điều đó, nhưng tuần trước, hôm thứ Hai, trong Pierce, tôi 3 00:00:15,180 --> 00:00:16,090 giảm trong tầng hầm. 4 00:00:16,090 --> 00:00:17,010 Tôi không bao giờ đi đến Pierce. 5 00:00:17,010 --> 00:00:20,530 Và tôi sẽ không bao giờ trở lại một lần nữa, bởi vì Tôi rời công cụ của tôi một mình, 6 00:00:20,530 --> 00:00:23,950 như, năm phút và ai đó lấy trộm máy tính và tôi của tôi 7 00:00:23,950 --> 00:00:26,050 điện thoại ra khỏi ba lô của tôi. 8 00:00:26,050 --> 00:00:28,780 Có nghĩa là tôi đã nhận nó trở lại, và sau đó chưa đầy một tuần sau 9 00:00:28,780 --> 00:00:30,220 nó đã bị đánh cắp một lần nữa. 10 00:00:30,220 --> 00:00:31,570 >> Và sau đó nó đã bật - 11 00:00:31,570 --> 00:00:34,540 Find My iPhone tiếp tục là vô ích. 12 00:00:34,540 --> 00:00:37,340 Vì vậy, tôi tiếp tục khuyến khích bạn không sử dụng nó. 13 00:00:37,340 --> 00:00:42,270 Nó bật một lần, và nó đã ở MIT, 15 phút sau đó, và người 14 00:00:42,270 --> 00:00:45,770 gọi số điện thoại này cho thấy trong AT & T nhật ký cuộc gọi của tôi. 15 00:00:45,770 --> 00:00:48,830 >> Vì vậy, tôi đã đi trực tuyến, gọi điện thoại mà số, và nó đã đi thẳng đến này 16 00:00:48,830 --> 00:00:50,540 máy trả lời trong tiếng Tây Ban Nha. 17 00:00:50,540 --> 00:00:52,520 Và tôi đã không nghe nói về nó từ đó. 18 00:00:52,520 --> 00:00:54,800 Vì vậy, tôi đã có để có được một mới máy tính và điện thoại. 19 00:00:54,800 --> 00:00:55,150 Tôi biết. 20 00:00:55,150 --> 00:00:56,326 Yeah. 21 00:00:56,326 --> 00:01:00,110 Nhưng nếu các bạn muốn chip vào của tôi Quỹ máy tính sau này, đó là lý do tại sao 22 00:01:00,110 --> 00:01:01,030 Tôi đã hỏi bạn ở đây. 23 00:01:01,030 --> 00:01:02,280 Chỉ đùa thôi. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Nhưng đó là thực sự buồn và đau buồn. 26 00:01:07,420 --> 00:01:10,700 >> Nhưng đó là tất cả trở lại bây giờ, và đó là lý do tại sao p thiết lập 8 đã để lâu, bởi vì 27 00:01:10,700 --> 00:01:12,480 Tôi không có một máy tính. 28 00:01:12,480 --> 00:01:13,730 Và ai đó đã lấy nó. 29 00:01:13,730 --> 00:01:16,940 Và tôi gửi qua email, yêu cầu nếu họ sẽ cấp p-thiết lập 8 của bạn. 30 00:01:16,940 --> 00:01:18,790 Nhưng họ nói không. 31 00:01:18,790 --> 00:01:20,000 Và tôi nói, tôi có thể có máy tính của tôi trở lại? 32 00:01:20,000 --> 00:01:21,270 Và họ đang như thế, không có. 33 00:01:21,270 --> 00:01:22,130 Chỉ đùa thôi. 34 00:01:22,130 --> 00:01:22,930 >> OK. 35 00:01:22,930 --> 00:01:28,140 Đây là phần cuối cùng của chúng tôi, và tôi có một vài - chúng ta chỉ có ba 36 00:01:28,140 --> 00:01:29,790 những thứ trên chương trình nghị sự. 37 00:01:29,790 --> 00:01:31,330 Chúng ta sẽ nói chuyện một chút về hướng dẫn Q. 38 00:01:31,330 --> 00:01:33,900 Sau đó chúng ta sẽ dành 15 phút trên một bản demo mát mẻ. 39 00:01:33,900 --> 00:01:36,890 Sau đó chúng ta sẽ nói tất cả lời tạm biệt với nhau. 40 00:01:36,890 --> 00:01:41,460 Bạn không thực sự cần máy tính của bạn hoặc một cây bút hoặc giấy để ghi chép, hoặc 41 00:01:41,460 --> 00:01:42,410 theo cùng. 42 00:01:42,410 --> 00:01:45,620 Vì vậy, tôi giả sử nếu bạn có máy tính của bạn lên, sau đó bạn đang ở trên Facebook. 43 00:01:45,620 --> 00:01:46,530 Chỉ cần nói. 44 00:01:46,530 --> 00:01:49,650 Trừ khi bạn đang điền vào Q dẫn, đó là lần đầu tiên. 45 00:01:49,650 --> 00:01:50,690 >> Hướng dẫn Q mở cửa. 46 00:01:50,690 --> 00:01:53,520 Bạn đã có một email về nó. 47 00:01:53,520 --> 00:01:56,930 Một khi tất cả các công cụ Q được nộp tại cuối năm nay, tôi nhận được tất cả các 48 00:01:56,930 --> 00:02:03,710 Q ý kiến ​​trong điểm số từ tất cả mọi người người lựa chọn để cung cấp cho tôi thông tin phản hồi. 49 00:02:03,710 --> 00:02:04,810 Và vì vậy khi bạn đi trong Q - 50 00:02:04,810 --> 00:02:07,440 Tôi không biết nếu bạn có thể làm điều này, Jeff, bởi vì bạn và sinh viên mở rộng. 51 00:02:07,440 --> 00:02:12,730 Nhưng khi bạn đi trong Q, nếu bạn có không thực hiện nó trước, bạn chọn của bạn 52 00:02:12,730 --> 00:02:14,020 giáo viên, đó là David Malan. 53 00:02:14,020 --> 00:02:14,970 Bạn phải làm anh ta. 54 00:02:14,970 --> 00:02:15,690 >> Và sau đó bạn có thể chọn TF. 55 00:02:15,690 --> 00:02:17,750 Và bạn có thể chọn nhiều TF như bạn muốn. 56 00:02:17,750 --> 00:02:18,990 Nhưng có 60 người trong chúng ta. 57 00:02:18,990 --> 00:02:20,350 Bạn không phải chọn tất cả mọi người. 58 00:02:20,350 --> 00:02:23,090 Bạn chỉ có thể chọn tôi, hoặc chỉ cần chọn một vài người khác, nếu bạn muốn, 59 00:02:23,090 --> 00:02:24,470 cung cấp cho họ thông tin phản hồi là tốt. 60 00:02:24,470 --> 00:02:27,595 Và sau đó bạn có được điểm số trên tất cả các trục khác nhau, và sau đó bạn có thể để lại 61 00:02:27,595 --> 00:02:28,570 họ phản hồi. 62 00:02:28,570 --> 00:02:31,520 >> Và sau đó, như một tháng sau đó, Tôi sẽ nhận được tất cả những thông tin phản hồi. 63 00:02:31,520 --> 00:02:34,570 Và cũng giống như những phản hồi bạn đã đem lại cho tôi trong suốt học kỳ, tôi 64 00:02:34,570 --> 00:02:35,790 đọc tất cả. 65 00:02:35,790 --> 00:02:39,620 Và nó thực sự hữu ích, và nó giúp tôi phát triển như là một giáo viên và là một 66 00:02:39,620 --> 00:02:40,680 cá nhân. 67 00:02:40,680 --> 00:02:43,360 Vì vậy, xin vui lòng, mất một thời gian để làm điều đó. 68 00:02:43,360 --> 00:02:45,020 Chúng ta chỉ có được ở đây cho, như, 30 phút. 69 00:02:45,020 --> 00:02:48,090 Vì vậy, nếu bạn muốn, vào cuối này, để mất năm phút, và chỉ cần điền vào 70 00:02:48,090 --> 00:02:49,960 Q, bởi vì nó không mất bất cứ lúc nào nhiều hơn thế. 71 00:02:49,960 --> 00:02:53,410 Đó sẽ là tuyệt vời, và bạn cũng có được điểm của bạn trở lại một cách nhanh chóng hơn nếu 72 00:02:53,410 --> 00:02:54,620 bạn điền vào Q. 73 00:02:54,620 --> 00:02:56,580 >> Vì vậy, hầu hết các bạn đã làm điều đó trước khi - 74 00:02:56,580 --> 00:02:58,240 hoặc không có, khoảng một nửa của bạn đã làm điều đó trước đây. 75 00:02:58,240 --> 00:03:00,060 Nhưng nếu bạn là một sinh viên năm nhất, đó là đó là những gì. 76 00:03:00,060 --> 00:03:01,910 Nó sẽ là như nhau cho tất cả các lớp. 77 00:03:01,910 --> 00:03:02,270 Làm điều đó. 78 00:03:02,270 --> 00:03:02,900 Phải mất năm phút. 79 00:03:02,900 --> 00:03:07,610 Nhưng cũng có thể, nếu bạn làm điều đó một chút nghiêm túc, đó không phải là điều tồi tệ nhất 80 00:03:07,610 --> 00:03:10,270 trên thế giới, bởi vì tôi chắc chắn mang nó nghiêm túc. 81 00:03:10,270 --> 00:03:13,000 >> Vì vậy, nếu bạn để lại cho tôi một khuôn mặt cười, Tôi sẽ đánh giá cao điều đó. 82 00:03:13,000 --> 00:03:17,550 Nhưng tôi cũng sẽ đánh giá cao nếu bạn để lại cho tôi nhiều hơn một khuôn mặt cười. 83 00:03:17,550 --> 00:03:18,270 Nhưng nó thuộc vào bạn. 84 00:03:18,270 --> 00:03:21,540 Tôi không thể cho bạn biết - hoặc thích cười lớn phải đối mặt, với số vốn D. Điều đó muốn 85 00:03:21,540 --> 00:03:23,060 thậm chí còn tốt hơn. 86 00:03:23,060 --> 00:03:27,860 >> OK, đó là tất cả tôi có cho Q. Nếu bạn có thắc mắc, bạn có thể yêu cầu 87 00:03:27,860 --> 00:03:29,370 tôi, nhưng khá tự giải thích. 88 00:03:29,370 --> 00:03:31,090 Chỉ, xin vui lòng, điền đơn. 89 00:03:31,090 --> 00:03:34,390 Tôi thực sự sẽ đánh giá cao nó, và nó có nghĩa là rất nhiều cho tôi. 90 00:03:34,390 --> 00:03:38,910 >> OK, đây là những gì chúng ta sẽ dành 15 phút đi qua. 91 00:03:38,910 --> 00:03:39,800 Tôi sẽ cho bạn thấy một số mã. 92 00:03:39,800 --> 00:03:42,080 Tôi nghĩ rằng đây là thực sự mát mẻ, và điều này đã cho tôi nhiều hơn 93 00:03:42,080 --> 00:03:43,810 kích thích trong khoa học máy tính. 94 00:03:43,810 --> 00:03:46,480 Vì vậy, tôi hy vọng nó sẽ làm tương tự cho tất cả các bạn. 95 00:03:46,480 --> 00:03:51,760 >> Chúng tôi sẽ mở ra - và tất cả điều này mã tôi sẽ gửi cho bạn sau này. 96 00:03:51,760 --> 00:03:52,680 Nhưng chúng tôi chỉ cần đi để mở ra - 97 00:03:52,680 --> 00:03:54,310 Tôi đang ở thiết bị đầu cuối của tôi - 98 00:03:54,310 --> 00:03:56,810 chúng ta sẽ mở ra chương trình này được gọi là [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Tất cả mọi người có thể đọc mà hay Tôi nên làm cho nó lớn hơn không? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Ai cũng có thể cho tôi biết những gì mã này sẽ làm gì khi tôi chạy nó, hoặc những gì này 103 00:04:13,040 --> 00:04:14,320 chương trình sẽ làm gì khi tôi chạy nó? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] Những gì bạn nghĩ nó sẽ làm gì? 106 00:04:32,400 --> 00:04:33,335 Kết thúc nhai. 107 00:04:33,335 --> 00:04:35,033 Bạn không nên nói chuyện với miệng mở. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> ĐỐI TƯỢNG: Liệu nó có một loạt các lập luận, tìm tổng của họ trở về 110 00:04:42,860 --> 00:04:45,285 Tóm lại, và sau đó in nó ra? 111 00:04:45,285 --> 00:04:53,045 Hoặc phải mất trong hai đối số, và sau đó nó [không nghe được]. 112 00:04:53,045 --> 00:04:56,460 Và sau đó nó in ra bất cứ điều gì kết quả. 113 00:04:56,460 --> 00:04:58,100 >> SPEAKER: Đóng cửa, thực sự gần gũi. 114 00:04:58,100 --> 00:04:59,840 Bất kỳ ai muốn thêm vào [? những gì Avi?] nói? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Bạn cần phải cung cấp cho chương trình này bất kỳ đối số dòng lệnh? 117 00:05:07,293 --> 00:05:09,145 >> ĐỐI TƯỢNG: số 118 00:05:09,145 --> 00:05:09,610 >> SPEAKER: số 119 00:05:09,610 --> 00:05:11,250 Điều gì xảy ra nếu bạn không cung cấp cho nó bất kỳ đối số dòng lệnh? 120 00:05:11,250 --> 00:05:12,500 Tôi chỉ cần viết dấu chấm dấu gạch chéo MySum. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> ĐỐI TƯỢNG: 1 cộng 2 bằng 3. 123 00:05:16,630 --> 00:05:17,250 >> SPEAKER: 1 cộng 2 bằng 3. 124 00:05:17,250 --> 00:05:18,570 Và nó sẽ in ra ngoài. 125 00:05:18,570 --> 00:05:19,450 Đó chính quyền. 126 00:05:19,450 --> 00:05:21,370 Bạn sẽ thấy rằng in f dòng ở phía dưới. 127 00:05:21,370 --> 00:05:23,450 Nó sẽ in ra a, b, và sau đó tổng của a và b. 128 00:05:23,450 --> 00:05:26,360 Và tôi đoán bạn cho rằng tổng hoạt động chính xác. 129 00:05:26,360 --> 00:05:28,120 Tốt giả định. 130 00:05:28,120 --> 00:05:32,250 >> OK, và những gì xảy ra nếu tôi cung cấp cho nó những lập luận gì? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> ĐỐI TƯỢNG: Nó sẽ thêm bất cứ điều gì tham số đầu tiên là b. 133 00:05:36,230 --> 00:05:37,150 Hoặc 2, xin lỗi. 134 00:05:37,150 --> 00:05:38,480 >> SPEAKER: Đúng, 2. 135 00:05:38,480 --> 00:05:42,470 Không ai biết những gì strtol không? 136 00:05:42,470 --> 00:05:43,960 Đó là cơ bản atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi thực sự là một phiên bản ưa thích của - 138 00:05:47,240 --> 00:05:49,600 hoặc một phiên bản đơn giản của strtol. 139 00:05:49,600 --> 00:05:51,790 Nhưng nó thực sự sử dụng strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 Và tôi thấy rằng ra vì tôi muốn một cái gì đó như atoi, và sau đó khi tôi 142 00:05:58,010 --> 00:06:01,110 đã atoi, tôi đọc ở đây. 143 00:06:01,110 --> 00:06:04,380 Và tôi thấy "hành vi này cũng giống như "strtol. 144 00:06:04,380 --> 00:06:06,850 Vì vậy, về cơ bản nó cho atoi tất cả ý nghĩa và mục đích. 145 00:06:06,850 --> 00:06:09,320 Và bạn thấy tôi thậm chí sử dụng vô 10. 146 00:06:09,320 --> 00:06:14,390 >> Điều này thực sự cho phép bạn chụp một chuỗi, và biến nó thành một con số, và chọn 147 00:06:14,390 --> 00:06:15,970 cơ sở nào, bạn muốn làm nó in 148 00:06:15,970 --> 00:06:17,370 Vì vậy, đây là cơ sở 10 ngay tại đây. 149 00:06:17,370 --> 00:06:20,455 Tôi có thể làm cơ sở cho hai số thập phân, cơ sở 16 cho hệ thập lục phân. 150 00:06:20,455 --> 00:06:22,090 Nó khá mát mẻ. 151 00:06:22,090 --> 00:06:25,860 Nhưng câu chuyện dài ngắn, điều này có hai số và thêm chúng với nhau. 152 00:06:25,860 --> 00:06:29,260 >> Vì vậy, hãy chạy nó. 153 00:06:29,260 --> 00:06:32,560 Và bạn cũng sẽ nhận thấy, có một số điều - 154 00:06:32,560 --> 00:06:37,830 vì vậy tôi có một makefile ngay tại đây, và nếu bạn mở lên, một số điều 155 00:06:37,830 --> 00:06:39,270 bạn sẽ nhận thấy là khác nhau. 156 00:06:39,270 --> 00:06:42,370 Đặc biệt, lập luận này ngay tại đây, bạn có thể 157 00:06:42,370 --> 00:06:43,010 đã không thấy rằng trước. 158 00:06:43,010 --> 00:06:45,770 Nói chung, chúng tôi biên dịch điều với dấu gạch ngang không, không. 159 00:06:45,770 --> 00:06:51,500 Dash không, không, có nghĩa là không làm bất kỳ tối ưu, trình biên dịch. 160 00:06:51,500 --> 00:06:54,950 Đừng cố gắng và làm cho bất cứ điều gì ưa thích, hoặc làm bất cứ điều gì chạy nhanh hơn, hoặc được 161 00:06:54,950 --> 00:06:56,530 loại bỏ các biến đó là cần thiết. 162 00:06:56,530 --> 00:06:58,080 Không tối ưu hóa mã này ở tất cả, 163 00:06:58,080 --> 00:07:00,110 >> Tôi yêu cầu cấp thứ ba tối ưu hóa. 164 00:07:00,110 --> 00:07:02,580 Vì vậy, tôi yêu cầu biên dịch để làm rất nhiều tối ưu hóa. 165 00:07:02,580 --> 00:07:05,870 Bạn có thể thay đổi điều đó trong makefile khi bạn có mã này, nếu bạn muốn 166 00:07:05,870 --> 00:07:07,190 để xem công cụ khác nhau. 167 00:07:07,190 --> 00:07:08,660 Mà chúng tôi sẽ hiển thị trong một giây. 168 00:07:08,660 --> 00:07:12,080 Vì vậy, chúng tôi chạy tiền của tôi 1 cộng với 2 cộng với 3. 169 00:07:12,080 --> 00:07:13,445 Ai đó cho tôi hai đối số. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> ĐỐI TƯỢNG: 4 và 5. 172 00:07:18,210 --> 00:07:18,966 >> SPEAKER: 4 và 5. 173 00:07:18,966 --> 00:07:19,900 Cảm ơn bạn. 174 00:07:19,900 --> 00:07:20,860 Tuyệt vời, nó hoạt động. 175 00:07:20,860 --> 00:07:25,700 Một số đối số tốt khác là gì để cố gắng, để đảm bảo hoạt động này? 176 00:07:25,700 --> 00:07:27,050 Bất cứ ai? 177 00:07:27,050 --> 00:07:27,430 >> ĐỐI TƯỢNG: 0. 178 00:07:27,430 --> 00:07:29,210 >> SPEAKER: 0? 179 00:07:29,210 --> 00:07:31,010 >> ĐỐI TƯỢNG: Tiêu cực 3. 180 00:07:31,010 --> 00:07:32,040 >> SPEAKER: Nó hoạt động. 181 00:07:32,040 --> 00:07:33,670 Nhưng đó là những lựa chọn tốt. 182 00:07:33,670 --> 00:07:36,600 OK, vì vậy chúng ta hãy quay trở lại đây. 183 00:07:36,600 --> 00:07:38,540 Đây là mysum.c. 184 00:07:38,540 --> 00:07:42,440 Bạn sẽ nhận thấy cũng có một cái gì đó gọi là sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 Và điều này cho biết, oh, có điều gì đó quy định tại sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 Tôi không bao gồm tập tin này tại đây bởi vì tôi không cần. 187 00:07:51,480 --> 00:07:54,840 Nhưng tôi liên kết nó trong khi tôi biên dịch, mà bạn nhận thấy. 188 00:07:54,840 --> 00:07:57,380 >> Chúng ta hãy di chuyển lên. 189 00:07:57,380 --> 00:08:02,880 Chúng ta đã thấy khi chúng tôi biên soạn mysum, ngay ở đó, chúng tôi liên kết trong hệ nhị phân từ 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 Và tôi không cần các tập tin tiêu đề bởi vì, tất nhiên, có những 193 00:08:08,470 --> 00:08:09,240 khai báo hàm. 194 00:08:09,240 --> 00:08:12,200 Vì vậy, sắc nét bao gồm bình thường chỉ cần puts trong một khai báo hàm. 195 00:08:12,200 --> 00:08:13,730 Ở đây tôi đã chỉ cần đặt nó thẳng trong các mã. 196 00:08:13,730 --> 00:08:16,370 Và vì vậy tôi cần phải làm là liên kết trong nhị phân, mà tôi làm. 197 00:08:16,370 --> 00:08:19,950 >> Bất kỳ dự đoán cho là những gì trong sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Mã những gì tôi đã viết trong sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> ĐỐI TƯỢNG: [nghe được]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> SPEAKER: Bất kỳ dự đoán? 203 00:08:30,630 --> 00:08:30,940 Yeah? 204 00:08:30,940 --> 00:08:33,710 >> ĐỐI TƯỢNG: Tôi nghĩ rằng, định nghĩa một số [không nghe được]. 205 00:08:33,710 --> 00:08:33,975 >> SPEAKER: Có. 206 00:08:33,975 --> 00:08:37,650 Vì vậy tôi viết int tổng int a. 207 00:08:37,650 --> 00:08:41,120 Tôi viết dòng này, và sau đó tôi đã mở ngoặc móc, đóng ngoặc móc. 208 00:08:41,120 --> 00:08:46,160 Bạn nghĩ gì tôi viết trong những dấu ngoặc nhọn, bên trong chức năng đó? 209 00:08:46,160 --> 00:08:46,600 Yeah? 210 00:08:46,600 --> 00:08:48,150 >> ĐỐI TƯỢNG: Quay trở lại bằng một. 211 00:08:48,150 --> 00:08:50,010 >> Bộ xử lý: Đó là một đoán thực sự tốt. 212 00:08:50,010 --> 00:08:51,720 Người nghĩ rằng [? Manu?] Là đúng? 213 00:08:51,720 --> 00:08:54,122 Nó nói trở lại a + b. 214 00:08:54,122 --> 00:08:55,860 OK, không mọi người. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 bạn làm gì, quá? 217 00:08:57,390 --> 00:09:00,430 Bạn có chắc chắn? 218 00:09:00,430 --> 00:09:01,680 OK. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Những gì? 221 00:09:10,050 --> 00:09:11,662 >> ĐỐI TƯỢNG: Bạn viết sai. 222 00:09:11,662 --> 00:09:13,000 >> SPEAKER: Không, tôi không. 223 00:09:13,000 --> 00:09:13,966 Yeah, chỉ đùa thôi. 224 00:09:13,966 --> 00:09:15,300 Bạn nói đúng. 225 00:09:15,300 --> 00:09:15,930 Đó là chính xác những gì nó nói. 226 00:09:15,930 --> 00:09:17,110 Nó trả về một cộng b. 227 00:09:17,110 --> 00:09:18,570 Điều đó làm cho rất nhiều ý nghĩa. 228 00:09:18,570 --> 00:09:20,240 >> OK, chúng ta hãy quay trở lại đây. 229 00:09:20,240 --> 00:09:21,490 Chúng ta thấy tiêu đề - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 đó là kiểu trả về. 232 00:09:25,660 --> 00:09:29,100 Hãy nhớ rằng, chúng ta đã thấy ngày hôm đó một, loại chức năng quay trở lại, nhưng đi 233 00:09:29,100 --> 00:09:30,160 trước tên của các chức năng int. 234 00:09:30,160 --> 00:09:31,560 Ở đây, tôi đã viết int. 235 00:09:31,560 --> 00:09:35,680 Bạn nghĩ gì sẽ xảy ra nếu trong này chức năng, tôi không viết int, nhưng 236 00:09:35,680 --> 00:09:38,270 Tôi viết không dấu? 237 00:09:38,270 --> 00:09:41,050 Sự khác biệt, tất nhiên, được rằng unsigned đại diện duy nhất tích cực 238 00:09:41,050 --> 00:09:43,620 số nguyên, và int có thể tích cực hay tiêu cực. 239 00:09:43,620 --> 00:09:45,450 >> Vì vậy, tôi đã thay đổi trở lại loại chức năng này. 240 00:09:45,450 --> 00:09:49,370 Mã này không phù hợp trở lại này nhập ở đây. 241 00:09:49,370 --> 00:09:50,925 Bạn nghĩ gì sẽ xảy ra khi tôi biên dịch? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Bạn nên hét vào mặt tôi. 244 00:09:56,240 --> 00:09:57,700 Không la hét. 245 00:09:57,700 --> 00:10:00,050 >> Những gì về khi tôi chạy chương trình? 246 00:10:00,050 --> 00:10:05,810 Chúng ta hãy làm trước khi tiêu cực 0 3, hay tiêu cực 1. 247 00:10:05,810 --> 00:10:10,180 Nó vẫn hoạt động, mặc dù tôi đang nói nó trở về một số nguyên unsigned. 248 00:10:10,180 --> 00:10:12,060 Rõ ràng nó không trở về một số nguyên unsigned. 249 00:10:12,060 --> 00:10:13,520 Nó trở về một số nguyên ký. 250 00:10:13,520 --> 00:10:16,130 Nó trở về âm 1. 251 00:10:16,130 --> 00:10:17,830 OK, đó là lạ. 252 00:10:17,830 --> 00:10:27,030 >> Những gì về nếu tôi đi trong ở đây và làm điều đó? 253 00:10:27,030 --> 00:10:29,700 Vì vậy, tôi đã thay đổi tất cả mọi thứ từ int unsigned. 254 00:10:29,700 --> 00:10:31,590 Nó chỉ có thể đưa số nguyên unsigned. 255 00:10:31,590 --> 00:10:33,840 Nhưng chúng ta vẫn nghĩ rằng nó sẽ chạy? 256 00:10:33,840 --> 00:10:35,652 >> ĐỐI TƯỢNG: Có. 257 00:10:35,652 --> 00:10:37,270 >> SPEAKER: Nó sẽ. 258 00:10:37,270 --> 00:10:39,410 Thật điên rồ. 259 00:10:39,410 --> 00:10:43,140 Và chúng tôi vượt qua trong một phân công rõ ràng số nguyên, chúng ta có thể vượt qua hai ký 260 00:10:43,140 --> 00:10:46,280 số nguyên, nó vẫn hoạt động. 261 00:10:46,280 --> 00:10:52,150 >> OK, bất kỳ ý tưởng tại sao nó vẫn hoạt động, hoặc những gì đang xảy ra? 262 00:10:52,150 --> 00:10:53,368 Yeah, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> ĐỐI TƯỢNG: Nó có cái gì để làm với tối ưu hóa của bạn mà bạn 264 00:10:56,296 --> 00:10:57,760 nhấn mạnh. 265 00:10:57,760 --> 00:10:58,210 >> SPEAKER: số 266 00:10:58,210 --> 00:11:00,570 Chúng tôi có thể thay đổi tối ưu hóa, nó vẫn sẽ làm việc. 267 00:11:00,570 --> 00:11:02,240 Tôi có thể làm điều đó cho bạn, nhưng - 268 00:11:02,240 --> 00:11:02,930 >> ĐỐI TƯỢNG: Tôi sẽ dùng từ ngữ của bạn cho nó. 269 00:11:02,930 --> 00:11:03,690 >> SPEAKER: Vâng. 270 00:11:03,690 --> 00:11:09,690 Nếu bạn mở makefile ngay tại đây, Tôi đã thay đổi tối ưu hóa. 271 00:11:09,690 --> 00:11:11,570 Vì vậy, bạn có thể làm dấu gạch ngang không, không. 272 00:11:11,570 --> 00:11:12,820 Nó sẽ vẫn làm việc. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Suy nghĩ khác? 275 00:11:20,280 --> 00:11:22,600 >> Tất cả các bạn dự kiến ​​làm việc, vì vậy sao cậu lại mong đợi nó để làm việc? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Không? 278 00:11:32,150 --> 00:11:33,660 Sự im lặng. 279 00:11:33,660 --> 00:11:34,910 OK. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Tôi phải đợi bảy giây, bởi vì tôi hỏi một câu hỏi. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Vì vậy, điều thú vị về C, và bạn đã có thể có kinh nghiệm trước - bạn 284 00:11:48,660 --> 00:11:50,260 có thể không có, sức mạnh này là lần đầu tiên. 285 00:11:50,260 --> 00:11:57,030 Nhưng như bạn đã biết, khi tôi viết một cái gì đó trong C, nó không lưu như 286 00:11:57,030 --> 00:11:57,760 này trên máy tính. 287 00:11:57,760 --> 00:11:59,440 Nó sẽ được lưu như những người thân và zero. 288 00:11:59,440 --> 00:12:02,970 Nó đi từ mã C để lắp ráp mã. 289 00:12:02,970 --> 00:12:09,460 >> Có ai nhìn thấy mã lắp ráp trước, mã lắp ráp máy? 290 00:12:09,460 --> 00:12:10,630 Chúng tôi sẽ xem xét trong một giây. 291 00:12:10,630 --> 00:12:12,040 Nó đi từ mã C để lắp ráp mã. 292 00:12:12,040 --> 00:12:13,755 Và các bạn biết các giai đoạn biên dịch. 293 00:12:13,755 --> 00:12:17,410 Bạn phải ghi nhớ rằng đối với bài kiểm tra một, và sau đó viết nó ra trên bài kiểm tra không. 294 00:12:17,410 --> 00:12:18,240 Hầu hết mọi người đã nhận nó sai. 295 00:12:18,240 --> 00:12:19,760 Tôi nghĩ các bạn đóng đinh nó. 296 00:12:19,760 --> 00:12:22,880 >> Nhưng, các bạn là những phần tốt nhất cho các câu đố, bằng cách này. 297 00:12:22,880 --> 00:12:25,210 Đó là tuyệt vời. 298 00:12:25,210 --> 00:12:25,910 Nó sẽ không làm tổn thương bạn. 299 00:12:25,910 --> 00:12:26,900 Đừng lo lắng. 300 00:12:26,900 --> 00:12:28,800 Nhưng nó thực sự mát mẻ. 301 00:12:28,800 --> 00:12:29,660 Tốt công việc. 302 00:12:29,660 --> 00:12:32,870 >> Vì vậy, nó đi vào ngôn ngữ lắp ráp, và sau đó nó đi đến những người thân và zero. 303 00:12:32,870 --> 00:12:35,500 Và những người thân và số không được lưu trên máy tính, và đó là những gì được lưu trong 304 00:12:35,500 --> 00:12:38,340 các a.out, hoặc trong trường hợp này, các tập tin thực thi. 305 00:12:38,340 --> 00:12:41,040 Và các máy tính chạy những người thân và zero. 306 00:12:41,040 --> 00:12:41,670 Phải không? 307 00:12:41,670 --> 00:12:43,890 Chúng tôi đã học được điều này trước đây. 308 00:12:43,890 --> 00:12:47,490 >> Vì vậy, điều thú vị là, unsigned này ý tưởng, ý tưởng của các loại số nguyên unsigned, 309 00:12:47,490 --> 00:12:50,490 vân vân, vân vân, đó là ở đây trong ngôn ngữ C. 310 00:12:50,490 --> 00:12:51,110 Những tồn tại. 311 00:12:51,110 --> 00:12:53,770 Nhưng loại không tồn tại những người và zero. 312 00:12:53,770 --> 00:12:57,110 Loại thậm chí không thực sự tồn tại cấp độ ngôn ngữ lắp ráp. 313 00:12:57,110 --> 00:13:00,075 Vì vậy, đó là một cái gì đó tồn tại trong C thế giới nhưng không tồn tại trong máy tính 314 00:13:00,075 --> 00:13:01,640 thế giới hoặc bộ vi xử lý thế giới. 315 00:13:01,640 --> 00:13:04,660 Đó là một số trừu tượng mà C ngôn ngữ đã bao gồm, để làm cho chúng tôi 316 00:13:04,660 --> 00:13:06,240 sống dễ dàng hơn. 317 00:13:06,240 --> 00:13:09,990 >> Vì vậy, vào cuối ngày, tôi có thể viết nhiều điều khác nhau ở đây, và nó 318 00:13:09,990 --> 00:13:10,700 không tạo sự khác biệt. 319 00:13:10,700 --> 00:13:12,060 Bởi vì đó chỉ tồn tại trong C trên thế giới. 320 00:13:12,060 --> 00:13:14,100 Nó không tồn tại trong những người thân và số không trên thế giới. 321 00:13:14,100 --> 00:13:17,310 Và chương trình của chúng tôi thực hiện trong những người và số không trên thế giới. 322 00:13:17,310 --> 00:13:21,170 Vì vậy, tâm trí của bạn rõ ràng không thổi được nêu ra. 323 00:13:21,170 --> 00:13:22,740 Nhưng tôi nghĩ rằng đó là mát mẻ. 324 00:13:22,740 --> 00:13:23,530 Yeah, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> ĐỐI TƯỢNG: Vì vậy, nếu thay vì làm int, bạn làm char. 326 00:13:27,298 --> 00:13:27,770 Và bạn là - 327 00:13:27,770 --> 00:13:29,311 >> SPEAKER: Chúng ta hãy làm điều đó trong một giây. 328 00:13:29,311 --> 00:13:32,583 >> ĐỐI TƯỢNG: Bởi vì sau đó bạn nhận được một unsigned đi từ tiêu cực đến 128 329 00:13:32,583 --> 00:13:34,720 127 hoặc 0 đến 255. 330 00:13:34,720 --> 00:13:36,760 >> SPEAKER: Vì vậy, char là có vấn đề. 331 00:13:36,760 --> 00:13:39,460 Không ai biết lý do tại sao char sẽ là có vấn đề, và nó sẽ thực sự 332 00:13:39,460 --> 00:13:42,930 thay đổi mọi thứ trong những và zero thế giới? 333 00:13:42,930 --> 00:13:44,370 >> ĐỐI TƯỢNG: Bởi vì kích thước của char. 334 00:13:44,370 --> 00:13:46,200 >> SPEAKER: Kích thước của char là 1. 335 00:13:46,200 --> 00:13:48,260 Vì vậy, không dấu cũng là 4 byte. 336 00:13:48,260 --> 00:13:50,080 Vì vậy, char sẽ vít những thứ lên. 337 00:13:50,080 --> 00:13:55,660 Nhưng 4 byte đó là những gì liên quan đến một char? 338 00:13:55,660 --> 00:13:57,820 Hoặc có thêm một bổ sung - 339 00:13:57,820 --> 00:13:59,760 bạn có thể đặt một nhân vật nhiều hơn sau khi char. 340 00:13:59,760 --> 00:14:00,200 >> ĐỐI TƯỢNG: sao Char. 341 00:14:00,200 --> 00:14:01,220 >> SPEAKER: sao Char có 4 byte. 342 00:14:01,220 --> 00:14:02,490 Vì vậy, hãy làm điều gì đó đó là một ngôi sao char. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Vì vậy, điều này có lẽ sẽ làm việc, nhưng chúng tôi sẽ làm một cái gì đó thậm chí 345 00:14:07,240 --> 00:14:09,710 điên hơn này. 346 00:14:09,710 --> 00:14:10,960 Theo ý kiến ​​của tôi, điên. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Bây giờ tôi đã viết một hàm trả về một con trỏ, và phải mất một 349 00:14:24,570 --> 00:14:29,480 con trỏ và một giá trị không dấu - chúng tôi sẽ thay đổi trở lại thành int vì vậy chúng tôi không 350 00:14:29,480 --> 00:14:31,250 làm quá nhiều thay đổi cùng một lúc. 351 00:14:31,250 --> 00:14:35,370 Và nó có một mảng gọi là, chỉ số vào mảng và trả về 352 00:14:35,370 --> 00:14:35,850 địa chỉ của. 353 00:14:35,850 --> 00:14:37,470 Chúng tôi đã nhìn thấy các nhà khai thác trước đây. 354 00:14:37,470 --> 00:14:43,340 Này, những gì bạn nghĩ rằng điều này sẽ để làm, ngược lại, khi tôi chạy nó? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Bạn nghĩ những gì nó sẽ làm gì? 357 00:14:49,070 --> 00:14:50,320 Bất kỳ dự đoán? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> ĐỐI TƯỢNG: segfault. 360 00:14:55,320 --> 00:14:55,600 >> SPEAKER: Cái gì? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Đó là một đoán tốt. 363 00:14:58,520 --> 00:14:59,430 Tom nói điều tương tự. 364 00:14:59,430 --> 00:15:02,240 Bất kỳ dự đoán nào khác không? 365 00:15:02,240 --> 00:15:05,260 >> Người nghĩ rằng nó sẽ làm điều tương tự? 366 00:15:05,260 --> 00:15:06,510 Người nghĩ rằng nó sẽ segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Nó làm điều tương tự. 369 00:15:10,230 --> 00:15:11,880 Xin lôi. 370 00:15:11,880 --> 00:15:13,860 >> Nhưng, tất nhiên, chúng tôi đặt trong 1 và 2. 371 00:15:13,860 --> 00:15:16,470 Và đó là cả hai hợp lệ, phải không? 372 00:15:16,470 --> 00:15:19,420 Hãy xem, chúng ta có thể đi đến vị trí thứ hai của một mảng. 373 00:15:19,420 --> 00:15:24,010 Nhưng nếu chúng ta thực hiện b một số tiêu cực? 374 00:15:24,010 --> 00:15:26,380 Đó có lẽ là một đoán tốt hơn cho một cái gì đó segfaulting. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Nó vẫn hoạt động. 377 00:15:32,260 --> 00:15:35,020 >> OK, đây là bây giờ điên. 378 00:15:35,020 --> 00:15:38,350 Đây là chức năng tổng giá trị ngang nhau. 379 00:15:38,350 --> 00:15:40,470 Điều này không chính xác cùng một như trở lại a và b. 380 00:15:40,470 --> 00:15:44,600 Ai cũng có thể giải thích lý do tại sao đây là một tốt tổng hợp chức năng, hoặc lý do tại sao công trình này? 381 00:15:44,600 --> 00:15:45,850 Những gì đang xảy ra ở đây? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Tại sao điều này làm chính xác cùng điều như chức năng tổng cũ của chúng tôi? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 những gì đang xảy ra? 386 00:15:58,155 --> 00:16:01,540 >> ĐỐI TƯỢNG: Bởi vì khi bạn có một một đó là một địa chỉ để 387 00:16:01,540 --> 00:16:03,950 vị trí bộ nhớ - 388 00:16:03,950 --> 00:16:07,910 và khi bạn làm các ký hiệu, nó đi đến địa chỉ bộ nhớ. 389 00:16:07,910 --> 00:16:13,610 Và khi bạn đi đến b, bạn loại di chuyển bước từ địa chỉ bộ nhớ, 390 00:16:13,610 --> 00:16:15,550 bạn đang quay trở lại đó. 391 00:16:15,550 --> 00:16:20,083 Vì vậy, bạn thực sự, trên thực tế, thêm a và b [nghe được]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Ở đâu hoạt động tiêu chuẩn trở về điều đó không? 394 00:16:26,222 --> 00:16:27,683 Như, nơi nào dấu ngoặc rơi? 395 00:16:27,683 --> 00:16:30,610 Là sự trở lại của địa chỉ trên một trước hoặc sau [không nghe được]? 396 00:16:30,610 --> 00:16:32,380 >> SPEAKER: Nó sẽ chỉ mục b - 397 00:16:32,380 --> 00:16:34,430 hoặc chỉ số vào một - và sau đó trả lại địa chỉ. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, vì vậy đã mọi người hiểu những gì [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 nói, và giải thích, lý do tại sao công trình này? 401 00:16:45,830 --> 00:16:49,430 Tôi không, lần đầu tiên người giải thích điều này với tôi. 402 00:16:49,430 --> 00:16:51,900 Ai muốn có một hình ảnh để giải thích điều này? 403 00:16:51,900 --> 00:16:55,320 Chúng ta sẽ vẽ một bức tranh, với không có dấu hiệu, đó là tuyệt vời. 404 00:16:55,320 --> 00:16:57,920 Tìm thấy một số. 405 00:16:57,920 --> 00:17:03,390 >> Vì vậy, chúng tôi có một mảng đó là một loạt các hộp. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 Người đầu tiên là một chỉ số 0, chỉ số 1, 2, 3, 4, dấu chấm, dấu chấm, dấu chấm. 408 00:17:13,710 --> 00:17:15,609 Một mảng điển hình. 409 00:17:15,609 --> 00:17:19,540 Và ngoài việc chỉ số, tất cả đều có địa chỉ bộ nhớ. 410 00:17:19,540 --> 00:17:30,190 Vì vậy, hãy cung cấp cho địa chỉ bộ nhớ này 13, 14, 15, 16, 17, vân vân. 411 00:17:30,190 --> 00:17:32,490 Tất cả mọi người ở đây cho đến nay. 412 00:17:32,490 --> 00:17:35,810 >> Vì vậy, một là một địa chỉ. 413 00:17:35,810 --> 00:17:38,850 Tên của một mảng, một con trỏ được lưu ở đó. 414 00:17:38,850 --> 00:17:42,730 Đó là một con trỏ, đó là một vị trí bộ nhớ, để bắt đầu của mảng. 415 00:17:42,730 --> 00:17:45,910 Vì vậy, nếu điều này là mảng, một sẽ là một giá trị 13. 416 00:17:45,910 --> 00:17:49,110 Và, tất nhiên, chúng tôi có thể cung cấp một giá trị nào chúng ta muốn. 417 00:17:49,110 --> 00:17:52,450 Char một ngôi sao, chúng ta có thể cung cấp cho bất kỳ một địa chỉ bộ nhớ chúng ta muốn. 418 00:17:52,450 --> 00:17:55,940 Chúng tôi có thể cung cấp cho nó 0, chúng ta có thể cung cấp cho nó tiêu cực 1 - 1 âm không tồn tại, 419 00:17:55,940 --> 00:17:58,820 để có thể là có vấn đề, nhưng bạn thấy rằng nó vẫn còn làm việc. 420 00:17:58,820 --> 00:18:03,070 Vì vậy chúng tôi có thể cung cấp cho một số bất kỳ chúng ta muốn, bất kỳ địa chỉ bộ nhớ chúng ta muốn. 421 00:18:03,070 --> 00:18:08,720 >> Sau đó, int b nói, OK, đi con số này của bước vào mảng. 422 00:18:08,720 --> 00:18:13,150 Vì vậy, nếu b bằng 2, và bằng 13, chúng tôi tại địa chỉ bộ nhớ 13. 423 00:18:13,150 --> 00:18:17,330 Và chúng tôi đi hai bước, và vì vậy chúng tôi đang ở đây. 424 00:18:17,330 --> 00:18:21,150 Và các ký hiệu có nghĩa là trở lại địa chỉ của địa điểm này. 425 00:18:21,150 --> 00:18:23,990 Và địa chỉ là, tất nhiên, 15. 426 00:18:23,990 --> 00:18:28,710 Vì vậy chúng tôi có được 13 cộng với 2, hoặc a + b, đó là 15. 427 00:18:28,710 --> 00:18:29,590 >> Câu hỏi đặt ra là, mặc dù - 428 00:18:29,590 --> 00:18:30,250 Tôi xin lỗi. 429 00:18:30,250 --> 00:18:34,324 Điều đó làm rõ sự vật cho lý do tại sao công trình này? 430 00:18:34,324 --> 00:18:36,300 >> ĐỐI TƯỢNG: Tại sao nó sẽ làm việc đi - 431 00:18:36,300 --> 00:18:38,770 để bạn có thể có một mảng và đi đến một chỉ số tiêu cực? 432 00:18:38,770 --> 00:18:39,050 >> SPEAKER: Đúng vậy. 433 00:18:39,050 --> 00:18:40,870 Vì vậy, chúng tôi đã làm số âm, vì vậy đó là - 434 00:18:40,870 --> 00:18:42,770 điều này không có ý nghĩa, mặc dù đầu tiên, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 cho bạn? 436 00:18:43,120 --> 00:18:48,840 >> ĐỐI TƯỢNG: Vâng tôi chỉ [Nghe được], nhưng - 437 00:18:48,840 --> 00:18:50,440 >> SPEAKER: Vâng, điều này sẽ trở lại 15. 438 00:18:50,440 --> 00:18:53,523 Nếu là 13, và b là 2, điều này sẽ trở lại 15. 439 00:18:53,523 --> 00:18:58,160 >> ĐỐI TƯỢNG: Vì vậy, việc lập chỉ mục không không trở thành một vấn đề, phải không? 440 00:18:58,160 --> 00:19:00,160 Bởi vì bạn đang di chuyển từ 0. 441 00:19:00,160 --> 00:19:00,470 >> SPEAKER: Đúng vậy. 442 00:19:00,470 --> 00:19:05,000 Vì vậy, bạn đang di chuyển - vì vậy nếu b là 0, bạn sẽ không di chuyển bất cứ nơi nào. 443 00:19:05,000 --> 00:19:06,330 Và bạn chỉ muốn quay trở lại địa chỉ - 444 00:19:06,330 --> 00:19:10,830 nếu b là 0, đó là bản chất trở về địa chỉ của một. 445 00:19:10,830 --> 00:19:13,960 Đi qua trong char sao một và trả lại địa chỉ của một chỉ đang quay trở lại một, 446 00:19:13,960 --> 00:19:15,860 cơ bản. 447 00:19:15,860 --> 00:19:18,280 >> OK, câu hỏi là tại sao số âm làm việc? 448 00:19:18,280 --> 00:19:21,670 Và đó là điều thực sự mát mẻ về này, bởi vì điều này nên segfault. 449 00:19:21,670 --> 00:19:25,110 Và nó sẽ segfault nếu chúng ta đã làm một cái gì đó như thế này. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Hãy nói rằng, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Vì vậy, mã này trông giống hệt nhau và nên cư xử giống nhau. 454 00:19:39,810 --> 00:19:44,550 Về cơ bản, x là một biến rác thải, và vì thế này nên cư xử giống nhau. 455 00:19:44,550 --> 00:19:46,370 >> Chúng ta hãy làm điều này - 456 00:19:46,370 --> 00:19:47,620 tiếc - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 trong sao. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 OK, chúng tôi đã nhận được lỗi ở đây, bởi vì nó đã được sẽ không nổi giận 461 00:20:02,733 --> 00:20:04,610 với tôi, bởi vì nó đã biết những gì sắp tới. 462 00:20:04,610 --> 00:20:07,060 Đặc biệt, điều thứ hai. 463 00:20:07,060 --> 00:20:09,800 Địa chỉ của bộ nhớ xếp chồng lên nhau liên quan với một biến địa phương. 464 00:20:09,800 --> 00:20:14,220 >> Về cơ bản, tôi sẽ không để biên dịch này, và sau đó tôi sẽ lùi lại làm 465 00:20:14,220 --> 00:20:14,920 những gì chúng ta chỉ cần làm. 466 00:20:14,920 --> 00:20:19,130 Nhưng vì chúng tôi không bao giờ thực sự truy cập vào những gì ở bộ nhớ 467 00:20:19,130 --> 00:20:21,930 vị trí, nó sẽ không segfault. 468 00:20:21,930 --> 00:20:26,450 Chúng tôi sẽ không bao giờ thực sự nhìn vào những gì trong hộp thứ hai hoặc những gì trong bất kỳ hộp 469 00:20:26,450 --> 00:20:28,340 của mảng này. 470 00:20:28,340 --> 00:20:30,980 Chúng tôi chỉ nói rằng, đây là địa chỉ trong những điều chúng tôi đang tìm kiếm và 471 00:20:30,980 --> 00:20:32,410 trở lại địa chỉ đó. 472 00:20:32,410 --> 00:20:35,700 Chúng tôi sẽ không bao giờ thực sự đi vào mảng nhìn vào vị trí đó. 473 00:20:35,700 --> 00:20:39,140 Và bởi vì chúng tôi không bao giờ chạm vào bộ nhớ, chúng tôi không gặp rắc rối. 474 00:20:39,140 --> 00:20:40,760 Chúng tôi không có được một segfault. 475 00:20:40,760 --> 00:20:46,225 >> Nếu chúng ta cố gắng, một lần nữa, chạm vào bộ nhớ, chạm vào những gì đã được tại một hoặc b - 476 00:20:46,225 --> 00:20:49,940 hoặc b khung, và giả sử một là 0 và - 477 00:20:49,940 --> 00:20:53,040 nếu là 0, thậm chí, đó sẽ là khá xấu, bởi vì chúng ta không thể đi 478 00:20:53,040 --> 00:20:54,090 xuống tất cả các cách đó. 479 00:20:54,090 --> 00:20:58,250 Nếu a và b đều 0, và chúng tôi đã cố gắng để chạm vào những gì đã có, sau đó chúng tôi sẽ 480 00:20:58,250 --> 00:20:59,110 gặp rắc rối. 481 00:20:59,110 --> 00:21:02,160 Nhưng nếu chúng ta không chạm vào những gì đang có, chúng tôi chỉ trả lại địa chỉ, đó là 482 00:21:02,160 --> 00:21:08,300 thực sự sẽ không segfault vì nó cho phép bạn thực hiện những hoạt động. 483 00:21:08,300 --> 00:21:11,920 Nó chỉ được giận bạn, và được siêu tức giận, khi bạn cố gắng và chạm 484 00:21:11,920 --> 00:21:15,740 bộ nhớ thực tế và trả lại những gì là ở vị trí bộ nhớ. 485 00:21:15,740 --> 00:21:17,690 >> Điều đó có ý nghĩa? 486 00:21:17,690 --> 00:21:24,820 Đó chỉ là một phần điên rồ của C. Vì vậy, chúng ta có thêm một trong số này. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Người nghĩ rằng đây là mát mẻ? 489 00:21:29,700 --> 00:21:30,280 Nhiều người hơn. 490 00:21:30,280 --> 00:21:31,070 Đó là tốt. 491 00:21:31,070 --> 00:21:34,860 OK, đây là tác phẩm mới nhất của chúng tôi. 492 00:21:34,860 --> 00:21:37,314 Và tôi muốn bạn để cho tôi biết liệu hoặc không bạn nghĩ rằng điều này sẽ 493 00:21:37,314 --> 00:21:38,564 để làm một điều chính xác. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Tôi đã viết ra những nơi nào đó. 496 00:22:07,390 --> 00:22:08,640 Tôi không ghi nhớ chúng. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Chúng ta hãy xem, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Vì vậy, đây là một mảng, bây giờ, không phải là một chức năng. 500 00:22:46,670 --> 00:22:49,640 Và nó là một mảng, vì chúng tôi có vuông dấu ngoặc, niềng răng không nhọn. 501 00:22:49,640 --> 00:22:52,360 Và đó là một loạt các loại? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Bất cứ ai, hmm? 504 00:22:56,862 --> 00:22:57,694 >> ĐỐI TƯỢNG: số thập lục phân của họ? 505 00:22:57,694 --> 00:22:59,650 >> SPEAKER: Nhưng loại C là những gì? 506 00:22:59,650 --> 00:23:00,710 Tất cả đều có số thập lục phân. 507 00:23:00,710 --> 00:23:01,960 Loại C là những gì? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Nó cho bạn. 510 00:23:05,480 --> 00:23:07,350 >> ĐỐI TƯỢNG: Đó là ký tự không dấu. 511 00:23:07,350 --> 00:23:09,170 >> SPEAKER: Đúng, ký tự không dấu. 512 00:23:09,170 --> 00:23:13,050 Và hai số thập lục phân là một byte. 513 00:23:13,050 --> 00:23:18,540 Vì vậy, đây là 1, 2, 3, 4, 5, 6, 7, 8, 9 byte. 514 00:23:18,540 --> 00:23:21,360 Nó là một mảng của 9 byte. 515 00:23:21,360 --> 00:23:25,530 >> OK, bạn có thể đã biết câu trả lời cho câu hỏi này. 516 00:23:25,530 --> 00:23:29,840 Nhưng, những gì bạn nghĩ rằng sẽ xảy ra khi tôi chạy? 517 00:23:29,840 --> 00:23:34,110 Tôi nói, một lần nữa, trong mysum.c, Tôi đang mong đợi một chức năng 518 00:23:34,110 --> 00:23:36,280 mà phải mất hai số nguyên. 519 00:23:36,280 --> 00:23:40,265 Và tôi thay vì nói rằng khoản tiền đó là một mảng các ký tự. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 Điều gì sẽ xảy ra khi Tôi chạy. / Mysum và thực hiện? 522 00:23:48,070 --> 00:23:53,230 >> Vâng, đầu tiên, hầu hết các bạn sẽ có thể đồng ý làm điều đó - không có, chỉ đùa thôi. 523 00:23:53,230 --> 00:23:54,746 What'd tôi làm sai? 524 00:23:54,746 --> 00:23:55,996 Uh oh. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Đó nên là dấu ngoặc nhọn. 527 00:24:01,160 --> 00:24:02,790 Đó là cách bạn khởi tạo một mảng. 528 00:24:02,790 --> 00:24:04,040 Xấu của tôi. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Vì vậy, chúng tôi đã nhìn thấy trước rằng các loại là một khái niệm trừu tượng C cấp, không phải là một 531 00:24:11,670 --> 00:24:12,610 cấp máy tính trừu tượng. 532 00:24:12,610 --> 00:24:16,360 Vì vậy, hầu hết các bạn có thể mong đợi nó thực hiện, hoặc giả định rằng nó sẽ làm cho. 533 00:24:16,360 --> 00:24:18,680 Nhưng những gì khi tôi chạy. / Mysum? 534 00:24:18,680 --> 00:24:19,930 Điều gì sẽ xảy ra? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Bất kỳ dự đoán? 537 00:24:23,422 --> 00:24:25,270 >> ĐỐI TƯỢNG: Nó sẽ in ra một từ. 538 00:24:25,270 --> 00:24:26,310 >> SPEAKER: Nó sẽ in ra một từ. 539 00:24:26,310 --> 00:24:29,335 Từ những gì? 540 00:24:29,335 --> 00:24:32,200 >> ĐỐI TƯỢNG: [nghe được]. 541 00:24:32,200 --> 00:24:33,240 >> SPEAKER: Bất kỳ dự đoán nào khác không? 542 00:24:33,240 --> 00:24:34,000 OK, in ra một cụm từ. 543 00:24:34,000 --> 00:24:35,130 Bạn có thể có bất kỳ cụm từ. 544 00:24:35,130 --> 00:24:36,240 Sẽ được phía bạn. 545 00:24:36,240 --> 00:24:38,480 Bất cứ ai có một đoán khác nhau? 546 00:24:38,480 --> 00:24:39,730 Anna, đoán của bạn là gì? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> ĐỐI TƯỢNG: Nó sẽ in ra - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 hai chữ cái, hoặc [nghe được] một chữ cái. 551 00:24:49,480 --> 00:24:51,460 >> SPEAKER: Một thư. 552 00:24:51,460 --> 00:24:53,260 >> ĐỐI TƯỢNG: Tôi có thể đếm có bao nhiều [nghe được]? 553 00:24:53,260 --> 00:24:55,426 >> SPEAKER: Chín. 554 00:24:55,426 --> 00:24:56,640 Vâng, tôi sẽ chạy nó. 555 00:24:56,640 --> 00:24:58,650 Nó làm điều chính xác. 556 00:24:58,650 --> 00:25:00,190 Nó cho biết thêm hai số với nhau. 557 00:25:00,190 --> 00:25:02,740 Vâng, chúng ta hãy vượt qua hai đối số. 558 00:25:02,740 --> 00:25:03,710 Nó không có đối số. 559 00:25:03,710 --> 00:25:06,080 Vì vậy, tôi không biết nó có thể có thể có được những lập luận này. 560 00:25:06,080 --> 00:25:07,710 Nhưng chúng ta hãy vượt qua 100 và 0. 561 00:25:07,710 --> 00:25:09,200 Và nó cho biết thêm 100 và 0. 562 00:25:09,200 --> 00:25:10,220 Đó là điên. 563 00:25:10,220 --> 00:25:12,280 Tôi nghĩ như vậy. 564 00:25:12,280 --> 00:25:14,480 >> Tiêu cực 4, làm việc quá. 565 00:25:14,480 --> 00:25:15,650 Bạn có thể làm bất cứ điều gì bạn muốn. 566 00:25:15,650 --> 00:25:17,920 Đây là một chức năng tổng giá trị ngang nhau. 567 00:25:17,920 --> 00:25:19,640 Đây là một chức năng tổng hợp. 568 00:25:19,640 --> 00:25:21,510 Nhưng, không, bạn đang nói nó một mảng byte. 569 00:25:21,510 --> 00:25:23,570 Vì vậy, những gì đang xảy ra ở đây? 570 00:25:23,570 --> 00:25:27,240 >> Vì vậy, một lần nữa, chúng ta hãy quay trở lại ý tưởng này mà chúng tôi đã nói ngay từ đầu. 571 00:25:27,240 --> 00:25:32,050 Bạn đi từ mã C cấp, để lắp ráp ngôn ngữ, để những người thân và zero. 572 00:25:32,050 --> 00:25:33,050 Đây là hệ thập lục phân. 573 00:25:33,050 --> 00:25:35,780 Nhưng điều này thực sự chỉ là một rất nhiều những người thân và zero. 574 00:25:35,780 --> 00:25:39,230 Đây là 72 người và số không, phải không? 575 00:25:39,230 --> 00:25:40,550 72 người thân và zero. 576 00:25:40,550 --> 00:25:42,160 9 byte. 577 00:25:42,160 --> 00:25:43,740 Mỗi byte có 8 bit. 578 00:25:43,740 --> 00:25:44,760 Mỗi bit là một hoặc một số không. 579 00:25:44,760 --> 00:25:45,920 Vì vậy, những người 72 hoặc zero. 580 00:25:45,920 --> 00:25:48,780 Tôi đã chỉ cần viết chúng như thế này - chứ không phải viết nó ra như rất nhiều 581 00:25:48,780 --> 00:25:49,730 những người thân và zero. 582 00:25:49,730 --> 00:25:53,560 >> Nhưng điều này sẽ đi từ C cấp ngôn ngữ, để lắp ráp 583 00:25:53,560 --> 00:25:54,620 ngôn ngữ, mã. 584 00:25:54,620 --> 00:25:59,020 Và điều này sẽ in ra trong mã, nơi nào đó, những 72 người và zero 585 00:25:59,020 --> 00:26:00,910 mà tôi đã viết ở đây. 586 00:26:00,910 --> 00:26:03,610 Vì vậy, nơi nào đó trong đó - 587 00:26:03,610 --> 00:26:04,850 chúng ta hãy đi đây - 588 00:26:04,850 --> 00:26:11,240 nơi nào đó trong mysum, chương trình, có là những 72 người và số không mà tôi đã 589 00:26:11,240 --> 00:26:14,930 viết và nói với nó để viết. 590 00:26:14,930 --> 00:26:19,331 >> Bây giờ, bất kỳ dự đoán cho những gì những 72 người thân và zero nghĩa là gì? 591 00:26:19,331 --> 00:26:21,240 >> ĐỐI TƯỢNG: Có lẽ là như nhau điều như trở về một cộng b. 592 00:26:21,240 --> 00:26:22,890 >> SPEAKER: Có lẽ là như nhau điều như trở về một cộng b. 593 00:26:22,890 --> 00:26:23,730 Chúng ta hãy xác minh rằng. 594 00:26:23,730 --> 00:26:25,210 Chúng ta hãy tìm ra cách tôi đã làm điều này. 595 00:26:25,210 --> 00:26:31,840 >> Vì vậy, nếu bạn quay trở lại đây, tôi nói với bạn để chạy lệnh này, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Chúng ta hãy đi chạy nó. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, đổ. 599 00:26:37,990 --> 00:26:39,840 Về cơ bản nó có thể cho tôi bất cứ điều gì tôi muốn xem. 600 00:26:39,840 --> 00:26:40,840 Nó có thể cung cấp cho tôi những ngôn ngữ lắp ráp. 601 00:26:40,840 --> 00:26:42,730 Nó có thể cho tôi những người thân và zero. 602 00:26:42,730 --> 00:26:43,840 Nó có một tấn của lá cờ. 603 00:26:43,840 --> 00:26:45,860 Đây là một trong chúng ta sẽ để sử dụng cho bây giờ. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 như bạn thấy trong các slide - 606 00:26:48,810 --> 00:26:53,840 vốn gạch ngang S cho biết, vai ra, mã nguồn - 607 00:26:53,840 --> 00:26:58,410 dòng này là từ C - với lắp ráp mã và với những người thân và zero. 608 00:26:58,410 --> 00:27:00,350 Và chúng ta sẽ chạy nó trên sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Bởi vì nó sẽ được dễ dàng hơn để xem. 610 00:27:01,410 --> 00:27:02,670 Một lần nữa - hmm? 611 00:27:02,670 --> 00:27:04,700 >> ĐỐI TƯỢNG: Bạn viết sai. 612 00:27:04,700 --> 00:27:05,930 >> SPEAKER: Nhưng tôi thực sự đi để xóa nó trong một giây. 613 00:27:05,930 --> 00:27:09,160 Tôi đầu tiên sẽ mở chỉ sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> ĐỐI TƯỢNG: Bạn đánh vần sai lần đầu tiên. 615 00:27:11,170 --> 00:27:12,420 >> SPEAKER: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Sum - 618 00:27:15,480 --> 00:27:16,680 đó là một từ khó khăn, mặc dù. 619 00:27:16,680 --> 00:27:19,050 Bạn sẽ ngạc nhiên. 620 00:27:19,050 --> 00:27:21,560 OK, vì vậy đây là sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Tôi thậm chí không thể cho bạn biết. 623 00:27:26,220 --> 00:27:30,250 Có rất nhiều số không, rõ ràng rất nhiều của zero, và có một số khác 624 00:27:30,250 --> 00:27:31,930 thứ đó không phải là zero. 625 00:27:31,930 --> 00:27:33,220 Nhưng chủ yếu là zero. 626 00:27:33,220 --> 00:27:35,120 Hình như có một số người. 627 00:27:35,120 --> 00:27:36,810 Vì vậy, rõ ràng, điều này là khó đọc. 628 00:27:36,810 --> 00:27:39,320 Đó là ngôn ngữ nhị phân. 629 00:27:39,320 --> 00:27:40,710 >> Chúng ta hãy mở nó bây giờ - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 những gì? 632 00:27:52,350 --> 00:27:53,600 Tôi đang làm gì sai? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Tôi đã đánh vần chính xác? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, đây là khó xử. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Tôi cần một giây để tìm ra những gì tôi đang làm sai. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Đó là một lỗi. 641 00:28:49,310 --> 00:28:50,560 Đó là lạ. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Ồ, đó là lý do tại sao. 644 00:29:01,800 --> 00:29:09,880 >> Tôi sẽ quay trở lại ban đầu của chúng tôi một, vì vậy chúng ta có thể nhìn vào 645 00:29:09,880 --> 00:29:10,560 mã đối tượng này. 646 00:29:10,560 --> 00:29:13,390 Bởi vì có không thực sự sẽ được bất cứ điều gì khi chúng ta chỉ cần đặt 647 00:29:13,390 --> 00:29:14,640 những người thân và zero in 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Có chúng tôi đi. 650 00:29:30,200 --> 00:29:32,425 OK, vì vậy mọi người có thể thấy điều này. 651 00:29:32,425 --> 00:29:38,130 Chức năng này, như tôi đã nói, đưa ra các dòng C - 652 00:29:38,130 --> 00:29:39,060 nguồn dòng mã - 653 00:29:39,060 --> 00:29:41,000 với một số hướng dẫn lắp ráp. 654 00:29:41,000 --> 00:29:42,760 >> Đây là dòng mã nguồn của chúng tôi. 655 00:29:42,760 --> 00:29:44,910 Đây là một trong, đây là một. 656 00:29:44,910 --> 00:29:46,540 Đây là những hướng dẫn lắp ráp. 657 00:29:46,540 --> 00:29:47,820 Đó là những gì họ trông như thế. 658 00:29:47,820 --> 00:29:49,010 Hướng dẫn lắp ráp - 659 00:29:49,010 --> 00:29:51,530 bạn có thể tìm hiểu thêm về những nếu bạn có CS các lớp học khác, nhưng chúng 660 00:29:51,530 --> 00:29:53,500 nói chung là một hướng dẫn. 661 00:29:53,500 --> 00:29:57,940 Và sau đó một nguồn và một đích đến. 662 00:29:57,940 --> 00:30:02,740 >> Và sau đó ở đây là các mã nhị phân tương ứng với hội đồng 663 00:30:02,740 --> 00:30:04,940 hướng dẫn. 664 00:30:04,940 --> 00:30:09,760 Vì vậy, bạn có thể thấy, chức năng số tiền này, vào cuối ngày, là ba 665 00:30:09,760 --> 00:30:10,950 hướng dẫn lắp ráp. 666 00:30:10,950 --> 00:30:12,870 Chỉ có ba. 667 00:30:12,870 --> 00:30:14,180 Một mov - 668 00:30:14,180 --> 00:30:16,740 này m-o-v là viết tắt của một di chuyển. 669 00:30:16,740 --> 00:30:17,780 Thêm khán đài cho Add. 670 00:30:17,780 --> 00:30:20,440 Và r-e-t là viết tắt của Return. 671 00:30:20,440 --> 00:30:22,540 Vì vậy, một mov, một tiện ích, một trở lại. 672 00:30:22,540 --> 00:30:27,970 Và các, ở đây, là zero và những người tương ứng với mã đó. 673 00:30:27,970 --> 00:30:31,100 >> Vì vậy, những số không và những người thân, nếu bạn biết những người, bạn chỉ có thể đặt 674 00:30:31,100 --> 00:30:32,140 những thẳng vào 675 00:30:32,140 --> 00:30:34,130 Và sau đó nó sẽ làm cùng một điều chính xác. 676 00:30:34,130 --> 00:30:37,260 Bởi vì, vào cuối ngày, tất cả bạn đang thực hiện là một chuỗi dài các 677 00:30:37,260 --> 00:30:38,480 zero và những người thân. 678 00:30:38,480 --> 00:30:40,700 Và đó là những gì mã của bạn thực sự là. 679 00:30:40,700 --> 00:30:41,770 >> Và lý do - 680 00:30:41,770 --> 00:30:43,680 chúng ta hãy nhìn vào một điều. 681 00:30:43,680 --> 00:30:45,440 Tôi có makefile mở? 682 00:30:45,440 --> 00:30:48,510 Vì vậy, nếu chúng tôi trở về dấu gạch ngang bằng không, bằng không ở đây - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 xin lỗi, vốn o, vốn o không, không không, không. 685 00:30:57,300 --> 00:31:01,810 Và chúng tôi đã thực hiện, nó sẽ vẫn làm việc như nhau. 686 00:31:01,810 --> 00:31:05,420 Nhưng bây giờ bạn nhận thấy rằng có một rất nhiều hướng dẫn lắp ráp. 687 00:31:05,420 --> 00:31:09,090 Đó là bởi vì, một lần nữa, tôi hỏi những trình biên dịch không phải làm bất cứ tối ưu hóa. 688 00:31:09,090 --> 00:31:12,800 >> Vì vậy, tôi vẫn có thể mất tất cả các zero và những người thân, và ném chúng vào, 689 00:31:12,800 --> 00:31:13,390 và sẽ làm việc. 690 00:31:13,390 --> 00:31:15,850 Tôi chỉ cần làm tối ưu hóa, bởi vì đó là một chút dễ dàng hơn, sau đó, 691 00:31:15,850 --> 00:31:17,310 để viết mảng đó. 692 00:31:17,310 --> 00:31:19,730 Nhưng điều này sẽ chỉ làm việc tốt. 693 00:31:19,730 --> 00:31:24,460 >> OK, chúng ta sẽ làm một điều cuối cùng, bởi vì tôi nghĩ là phần thú vị nhất. 694 00:31:24,460 --> 00:31:27,410 Mặc dù tất cả mọi người rõ ràng đã thổi và không nói nên lời. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Tâm trí của chúng tôi được thổi. 697 00:31:31,670 --> 00:31:32,920 [Nghe được] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Vì vậy, đây là những từ một lớp CS khác nhau, mà là siêu thú vị, 700 00:31:51,520 --> 00:31:52,970 mà tôi đang thực hiện - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Tôi rất khuyến khích bạn mang nó. 703 00:31:55,910 --> 00:31:58,990 Nhưng phần thú vị về thực tế này, mà mọi thứ chỉ là zero và những người thân, 704 00:31:58,990 --> 00:32:01,270 là tất cả mọi thứ là zero và những người thân. 705 00:32:01,270 --> 00:32:05,330 >> Vì vậy, bạn có thể mất một tập tin có zero chính xác và những người bạn muốn 706 00:32:05,330 --> 00:32:10,390 ở đâu đó trong nó, và sử dụng phần zero và những người thân như một chức năng tổng hợp. 707 00:32:10,390 --> 00:32:11,480 >> Tôi có ý nghĩa gì bởi điều đó không? 708 00:32:11,480 --> 00:32:15,755 Tôi có nghĩa là bạn có thể mất một tập tin hình ảnh có hàng loạt chính xác của zero và 709 00:32:15,755 --> 00:32:17,120 những người, mà in một cái gì đó ra một hình ảnh. 710 00:32:17,120 --> 00:32:20,070 Và một chương trình có thể giải thích là một hình ảnh, nhưng bạn có thể giải thích nó, nếu 711 00:32:20,070 --> 00:32:22,040 bạn muốn, như một chức năng tổng hợp. 712 00:32:22,040 --> 00:32:27,010 >> Vì vậy, nếu chúng tôi muốn mở, cho Ví dụ, hình ảnh này. 713 00:32:27,010 --> 00:32:37,440 Chúng ta hãy đi, Hello Kitty. 714 00:32:37,440 --> 00:32:38,810 Hình ảnh nhỏ tuyệt vời. 715 00:32:38,810 --> 00:32:42,260 Trong đây có chuỗi của zero và những người thân. 716 00:32:42,260 --> 00:32:45,500 Những 72 zero và những người thân tồn tại trong hình ảnh này. 717 00:32:45,500 --> 00:32:47,695 >> Vì vậy, những gì tôi có thể làm, sau đó, là viết - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Tôi phải nhớ mà họ đang có. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Tôi sẽ thấy rằng trong một giây. 722 00:32:55,720 --> 00:32:57,840 Nhưng chúng tôi - 723 00:32:57,840 --> 00:32:59,440 hãy để tôi tìm ra nơi mà họ đang có. 724 00:32:59,440 --> 00:33:00,020 Một giây. 725 00:33:00,020 --> 00:33:01,270 Chúng ta hãy làm - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> ĐỐI TƯỢNG: [nghe được]. 728 00:33:07,240 --> 00:33:08,490 >> SPEAKER: Cảm ơn. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Vì vậy, nếu chúng ta thực hiện chương trình này, thay vì đọc trong một tập tin, sau đó nó đi 731 00:33:28,740 --> 00:33:33,160 chỉ số này trong tập tin. 732 00:33:33,160 --> 00:33:35,500 Và sau đó, một lần nữa, giống như mysum, có hai con số. 733 00:33:35,500 --> 00:33:41,410 Chúng ta có thể thêm số điện thoại chính xác giống như chúng tôi đã làm trước đây, mà đi vào 734 00:33:41,410 --> 00:33:44,850 chỉ cho bạn cách thực tế là, ở cuối trong ngày, tất cả những điều này là 735 00:33:44,850 --> 00:33:45,350 zero và những người thân. 736 00:33:45,350 --> 00:33:48,170 Và nó chỉ là cách bạn chọn để giải thích cho họ. 737 00:33:48,170 --> 00:33:50,770 >> Và nếu bạn thực sự nhìn vào hình ảnh này - 738 00:33:50,770 --> 00:33:52,930 chúng ta hãy phóng to một chút. 739 00:33:52,930 --> 00:33:53,720 Tất cả mọi người có thể nhìn thấy nó? 740 00:33:53,720 --> 00:33:57,570 Bạn sẽ nhận thấy ngay ở đây, có một số vết bẩn lạ. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Chúng ta hãy đi - đây là hình ảnh ban đầu. 743 00:34:02,290 --> 00:34:04,540 Bạn sẽ nhận thấy đây không có vết bẩn. 744 00:34:04,540 --> 00:34:08,420 Đó là mã cho chức năng tổng hợp, là ít smudge ngay tại đó. 745 00:34:08,420 --> 00:34:13,449 >> Và trên thực tế, một lần nữa, nếu bạn tìm hiểu thêm về điều này, bạn sẽ nhận ra rằng điều này 746 00:34:13,449 --> 00:34:18,270 Hello Kitty, trong đó có cả một lớn hơn smudge, có mã có thể mất hơn một 747 00:34:18,270 --> 00:34:21,800 máy tính nếu nó không được bảo vệ thích hợp. 748 00:34:21,800 --> 00:34:23,920 Vì vậy, bạn thực sự có thể chạy này. 749 00:34:23,920 --> 00:34:25,380 Tôi sẽ không để chạy nó ngay bây giờ. 750 00:34:25,380 --> 00:34:30,600 Nhưng bạn có thể chạy Hello Kitty hình ảnh, và nó có thể 751 00:34:30,600 --> 00:34:32,429 mất trên máy tính của bạn. 752 00:34:32,429 --> 00:34:35,159 >> Vì vậy, đó là tất cả các bản demo. 753 00:34:35,159 --> 00:34:38,560 Không ai có bất kỳ câu hỏi, ý kiến, mối quan tâm? 754 00:34:38,560 --> 00:34:39,515 Tôi nghĩ rằng công cụ này là hấp dẫn. 755 00:34:39,515 --> 00:34:41,500 Nó cảm hứng cho tôi để tìm hiểu thêm. 756 00:34:41,500 --> 00:34:44,980 Tôi khuyên bạn nên, nếu bạn quan tâm ở tất cả các CS, nói chuyện với tôi. 757 00:34:44,980 --> 00:34:50,250 Mặc dù tôi là một Khoa học Xã hội Tập trung, tôi là một CS, trung học, vì vậy 758 00:34:50,250 --> 00:34:52,340 Tôi vẫn biết một chút ít. 759 00:34:52,340 --> 00:34:53,810 Nhưng tôi chắc chắn biết các lớp học bạn nên dùng. 760 00:34:53,810 --> 00:34:57,940 Tôi nghĩ rằng đó là tất cả thực sự thú vị, và tôi khuyến khích bạn, chắc chắn, để 761 00:34:57,940 --> 00:35:00,330 tìm hiểu thêm nếu bạn quan tâm. 762 00:35:00,330 --> 00:35:02,090 >> OK, tôi có một điều cuối cùng. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Xin lôi. 765 00:35:05,870 --> 00:35:06,460 Bất kỳ câu hỏi? 766 00:35:06,460 --> 00:35:10,010 Tôi không dừng lại để chờ đợi nếu ai có bất kỳ câu hỏi về điều đó. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Có ai sẽ là một CS tập trung không? 769 00:35:16,900 --> 00:35:18,580 Hoặc suy nghĩ về nó? 770 00:35:18,580 --> 00:35:20,730 Một, hai, ba, bốn. 771 00:35:20,730 --> 00:35:21,620 Một - chỉ có một. 772 00:35:21,620 --> 00:35:24,680 Anna là bàn tay duy nhất đó là tăng uy quyền. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, đó là mát mẻ. 775 00:35:29,390 --> 00:35:30,110 Assam, những gì thì bạn sẽ làm gì? 776 00:35:30,110 --> 00:35:33,220 >> ĐỐI TƯỢNG: [nghe được]. 777 00:35:33,220 --> 00:35:33,910 >> SPEAKER: Constantine? 778 00:35:33,910 --> 00:35:34,990 >> ĐỐI TƯỢNG: Vật lý. 779 00:35:34,990 --> 00:35:36,720 >> SPEAKER: Whoa, đó là nhanh chóng. 780 00:35:36,720 --> 00:35:40,770 Bạn đã có một kinh nghiệm xấu trong CS50? 781 00:35:40,770 --> 00:35:42,015 [Nghe được], những gì thì bạn sẽ làm gì? 782 00:35:42,015 --> 00:35:42,980 >> ĐỐI TƯỢNG: Tôi không có ý tưởng. 783 00:35:42,980 --> 00:35:43,924 >> SPEAKER: Curt? 784 00:35:43,924 --> 00:35:45,900 >> ĐỐI TƯỢNG: Econ hay CS. 785 00:35:45,900 --> 00:35:46,910 >> SPEAKER: Econ hay CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> ĐỐI TƯỢNG: Tôi đang làm Stat. 788 00:35:48,385 --> 00:35:48,950 >> SPEAKER: Stat? 789 00:35:48,950 --> 00:35:50,100 OK. 790 00:35:50,100 --> 00:35:51,000 Bạn là gì? 791 00:35:51,000 --> 00:35:51,310 >> ĐỐI TƯỢNG: nhớ? 792 00:35:51,310 --> 00:35:51,750 >> SPEAKER: Vâng. 793 00:35:51,750 --> 00:35:52,190 >> ĐỐI TƯỢNG: Stat. 794 00:35:52,190 --> 00:35:52,520 >> SPEAKER: Stat. 795 00:35:52,520 --> 00:35:53,500 Oh, có bạn đi. 796 00:35:53,500 --> 00:35:55,200 Tom, nói chuyện với Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, bạn là gì? 798 00:35:56,932 --> 00:35:57,396 >> ĐỐI TƯỢNG: Y Sinh - 799 00:35:57,396 --> 00:36:00,178 >> SPEAKER: Bạn có trong phần này? 800 00:36:00,178 --> 00:36:03,040 >> ĐỐI TƯỢNG: số 801 00:36:03,040 --> 00:36:04,530 >> SPEAKER: OK, đó là Emily. 802 00:36:04,530 --> 00:36:05,670 Cô ấy là bạn của tôi. 803 00:36:05,670 --> 00:36:10,080 Rõ ràng không phải là tốt của một người bạn, bởi vì cô ấy mang lại cho tôi một thời gian khó khăn. 804 00:36:10,080 --> 00:36:13,223 Bạn có thể đẹp hơn với tôi ở phía trước của tất cả mọi người, sinh viên của tôi - 805 00:36:13,223 --> 00:36:14,580 >> ĐỐI TƯỢNG: Tôi đang làm hướng dẫn Q của bạn. 806 00:36:14,580 --> 00:36:14,870 >> SPEAKER: Thật sao? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 OK, bạn tuyệt vời. 809 00:36:17,224 --> 00:36:19,380 Tôi yêu các bạn rất nhiều. 810 00:36:19,380 --> 00:36:20,600 Oh boy. 811 00:36:20,600 --> 00:36:28,320 >> Dù sao, tôi, đêm qua, như tất cả mọi thứ - 812 00:36:28,320 --> 00:36:32,220 Tôi chắc chắn tất cả mọi người dường như thực sự nhấn mạnh ngay bây giờ. 813 00:36:32,220 --> 00:36:35,970 Tôi không biết, là sinh viên năm nhất - là các bạn cảm thấy căng thẳng? 814 00:36:35,970 --> 00:36:36,855 Tôi đang cảm thấy căng thẳng. 815 00:36:36,855 --> 00:36:37,980 Nó giống như, khi về nhà cho Lễ Tạ Ơn. 816 00:36:37,980 --> 00:36:40,660 Bạn giống như, tôi sẽ làm tất cả những điều này. 817 00:36:40,660 --> 00:36:41,530 >> ĐỐI TƯỢNG: Thật là khác nhau. 818 00:36:41,530 --> 00:36:42,560 >> SPEAKER: Vâng, và bạn trở lại. 819 00:36:42,560 --> 00:36:45,290 Jeff, bạn không cảm thấy như vậy? 820 00:36:45,290 --> 00:36:46,610 >> ĐỐI TƯỢNG: Tôi chỉ nghĩ Tôi muốn làm một ít. 821 00:36:46,610 --> 00:36:48,660 >> SPEAKER: OK, tuyệt vời. 822 00:36:48,660 --> 00:36:51,650 Vì vậy, tôi trở lại, và tôi đã không thực hiện bất cứ điều gì. 823 00:36:51,650 --> 00:36:53,260 Và đó là tất cả siêu căng thẳng. 824 00:36:53,260 --> 00:36:55,640 Và tôi đang quan tâm, thực sự có liên quan, về việc có hay không tôi 825 00:36:55,640 --> 00:36:57,380 sẽ hoàn thành tất cả mọi thứ tôi phải. 826 00:36:57,380 --> 00:37:01,750 Nhưng đêm qua, tôi đã không nhấn mạnh, Tôi chỉ hơi buồn một chút. 827 00:37:01,750 --> 00:37:04,520 Vì vậy, tôi đã viết trong nhật ký về những gì tôi đã buồn. 828 00:37:04,520 --> 00:37:08,020 Và tôi rất buồn về phần này trong lớp học này sắp kết thúc. 829 00:37:08,020 --> 00:37:11,100 >> Vì vậy, tôi chỉ cần đi để đọc cho các bạn một đoạn nhỏ của tạp chí của tôi, 830 00:37:11,100 --> 00:37:12,950 từ đêm qua. 831 00:37:12,950 --> 00:37:17,400 Tôi có thể nhận được một số khăn ăn, một số mô từ Tom? 832 00:37:17,400 --> 00:37:18,040 Không, tôi sẽ khóc. 833 00:37:18,040 --> 00:37:19,720 Tôi không khóc. 834 00:37:19,720 --> 00:37:22,030 Không phải là bạn không thể khóc, Tôi chỉ không khóc. 835 00:37:22,030 --> 00:37:24,040 Tôi thậm chí không biết nếu nước mắt của tôi tuyến làm việc - ống dẫn nước mắt. 836 00:37:24,040 --> 00:37:25,630 Tôi đã không khóc trong một thời gian dài. 837 00:37:25,630 --> 00:37:26,510 >> ĐỐI TƯỢNG: [nghe được]. 838 00:37:26,510 --> 00:37:28,920 >> SPEAKER: OK, cảm ơn. 839 00:37:28,920 --> 00:37:30,070 OK, có một chút lời nói đầu - 840 00:37:30,070 --> 00:37:32,480 có một số bộ phận khác của tạp chí của tôi nhập cảnh, bởi vì tôi cố gắng mỗi tạp chí 841 00:37:32,480 --> 00:37:33,600 đêm trước khi tôi đi ngủ. 842 00:37:33,600 --> 00:37:34,900 Tôi khuyên bạn nên ghi nhật ký. 843 00:37:34,900 --> 00:37:38,600 Nó giúp bạn xử lý mọi thứ, và cũng rất đánh giá cao trong ngày của bạn. 844 00:37:38,600 --> 00:37:43,063 Và nó làm cho nó dễ dàng hơn nhiều để tìm trở lại trong ngày của bạn và nhận ra rằng 845 00:37:43,063 --> 00:37:44,240 đã có rất nhiều tốt điều đã xảy ra. 846 00:37:44,240 --> 00:37:47,240 Ngay cả khi bạn cảm thấy thực sự nhấn mạnh vào ban đêm hoặc thực sự khó chịu, hoặc 847 00:37:47,240 --> 00:37:49,022 thực sự buồn hay mệt mỏi. 848 00:37:49,022 --> 00:37:50,272 >> Oh, my god. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Tôi thậm chí không biết nếu nó được viết rằng cũng bởi vì tôi không đọc lại nó. 851 00:37:54,400 --> 00:37:55,780 Nhưng chúng tôi sẽ đọc nó. 852 00:37:55,780 --> 00:37:59,950 Tôi thường không đọc của tôi tạp chí, rõ ràng. 853 00:37:59,950 --> 00:38:03,720 >> "Ngày mai, tôi sẽ dạy cuối cùng của tôi Phần CS50 năm. 854 00:38:03,720 --> 00:38:05,860 Thật là điên rồ như thế nào thời gian nhanh bay. 855 00:38:05,860 --> 00:38:09,900 Tuy nhiên, tôi ấn tượng bởi chỉ cách khác nhau kinh nghiệm của tôi dạy năm nay 856 00:38:09,900 --> 00:38:11,365 so với khi tôi còn là một sinh viên năm hai. 857 00:38:11,365 --> 00:38:14,120 Để bắt đầu, tôi chắc chắn biết tài liệu tốt hơn. 858 00:38:14,120 --> 00:38:16,820 Nhưng không nói cho nhóm đầu tiên của tôi của sinh viên đó. 859 00:38:16,820 --> 00:38:20,030 Quan trọng hơn, tuy nhiên, tôi nhận ra rằng niềm vui đến từ đứng 860 00:38:20,030 --> 00:38:23,160 ở phía trước của một căn phòng của những gì bắt đầu ra như những người xa lạ, nhưng kết thúc như là, tại 861 00:38:23,160 --> 00:38:27,150 ít nhất, bạn bè trên Facebook, là không phải là một sự may mắn đầu năm. 862 00:38:27,150 --> 00:38:29,970 Thay vào đó, nó là từ khi biết rằng, trong một số cách nhỏ, bạn đang giúp đỡ 863 00:38:29,970 --> 00:38:32,980 tài năng, chu đáo, thú vị, và những người đam mê tìm hiểu thêm một chút 864 00:38:32,980 --> 00:38:34,750 về khoa học máy tính. 865 00:38:34,750 --> 00:38:37,480 >> Bạn đang chuyển mà bóng đèn chỉ là một bit trong socket của nó, do đó, nó có thể 866 00:38:37,480 --> 00:38:42,120 tỏa sáng sáng hơn bạn, hoặc họ, có thể tưởng tượng ở học kỳ bắt đầu. 867 00:38:42,120 --> 00:38:45,390 Bạn đang giúp biến những cau mày ngược xuống và đặt câu hỏi rằng 868 00:38:45,390 --> 00:38:49,240 cung cấp hỗ trợ, nhưng vẫn cho phép học sinh đứng lên một mình. 869 00:38:49,240 --> 00:38:52,190 >> Đó chắc chắn không phải là một cường điệu nói rằng phần này là yêu thích của tôi 870 00:38:52,190 --> 00:38:53,190 một phần của tuần. 871 00:38:53,190 --> 00:38:57,930 Hoặc thậm chí là tôi ngần ngại nói, đó là tất cả, tại 05:30 mỗi tuần, biết 872 00:38:57,930 --> 00:39:00,640 rằng nó sẽ được cách quá dài cho đến khi chúng ta gặp lại. 873 00:39:00,640 --> 00:39:02,740 >> Tuy nhiên, tôi vô cùng biết ơn tất cả mọi người ai cho tôi điều này 874 00:39:02,740 --> 00:39:05,010 cơ hội để trả lại cho người khác. 875 00:39:05,010 --> 00:39:07,340 David, sự kiên nhẫn và niềm tin của mình. 876 00:39:07,340 --> 00:39:11,040 Để sản xuất phim và phi hành đoàn, cho làm cho tôi trông hơi đáng kính. 877 00:39:11,040 --> 00:39:15,380 Và quan trọng nhất, để sinh viên của tôi, không có người mà tôi muốn không có lý do để 878 00:39:15,380 --> 00:39:17,890 dành 10 giờ để tìm ra sản phẩm tốt nhất cách vẽ con trỏ, hoặc đặt ra một 879 00:39:17,890 --> 00:39:20,330 bảng của cá heo, thông qua JavaScript. 880 00:39:20,330 --> 00:39:22,620 Như mọi khi, nó được một phước lành. " 881 00:39:22,620 --> 00:39:25,420 >> Vì vậy, với điều đó, cảm ơn các bạn. 882 00:39:25,420 --> 00:39:29,000 Tôi sẽ thấy tất cả các bạn tại hội chợ CS50, và các hackathon, nếu bạn đang ở đó. 883 00:39:29,000 --> 00:39:32,020 Và nếu bạn có câu hỏi, tôi sẽ gắn bó xung quanh cho đến khi không có nhiều. 884 00:39:32,020 --> 00:39:33,760 Nhưng tôi cảm ơn các bạn cho một năm tuyệt vời. 885 00:39:33,760 --> 00:39:37,290 >> [Vỗ tay] 886 00:39:37,290 --> 00:39:38,540 >> SPEAKER: Tôi có thể khóc. 887 00:39:38,540 --> 00:39:40,800