1 00:00:00,000 --> 00:00:00,960 2 00:00:00,960 --> 00:00:03,360 >> [მუსიკალური სათამაშო] 3 00:00:03,360 --> 00:00:11,050 4 00:00:11,050 --> 00:00:12,065 >> Davin: ყველა უფლება, ბიჭები. 5 00:00:12,065 --> 00:00:13,642 6 00:00:13,642 --> 00:00:15,350 ასე რომ ეს არის მიმოხილვა პირველი ვიქტორინა. 7 00:00:15,350 --> 00:00:17,751 ყველას მზად ვიქტორინა ოთხშაბათს? 8 00:00:17,751 --> 00:00:18,292 ALLISON: Woo! 9 00:00:18,292 --> 00:00:18,743 სტუდენტი: Woo! 10 00:00:18,743 --> 00:00:19,242 Davin: ჰო. 11 00:00:19,242 --> 00:00:19,920 ALLISON: Yeah! 12 00:00:19,920 --> 00:00:20,920 Davin: ეს ბიჭი მზად. 13 00:00:20,920 --> 00:00:22,200 რომ ბიჭი, ორიდან, ლამაზი. 14 00:00:22,200 --> 00:00:23,234 15 00:00:23,234 --> 00:00:25,900 ასე ინტელექტუალური მიმოხილვა დღეს, ის აპირებს უნდა იყოს დაახლოებით საათი და ნახევარი. 16 00:00:25,900 --> 00:00:27,940 ჩვენ ვაპირებთ, რომ წავიდეთ ყველა ძირითადი ცნებები თქვენ უნდა იცოდეს, რომ ვიქტორინა. 17 00:00:27,940 --> 00:00:31,434 ჩვენ ვაპირებთ წავიდეთ მეტი რამდენიმე კოდირება მიერ ხელის მაგალითები, რომლებიც ყოველ ვიქტორინა. 18 00:00:31,434 --> 00:00:34,350 და თუ თქვენ გაქვთ შეკითხვები, მოგერიდებათ გაზარდოთ თქვენი მხრივ, და ყველაფერი 19 00:00:34,350 --> 00:00:34,945 როგორიცაა, რომ. 20 00:00:34,945 --> 00:00:36,695 ასევე, ლოჯისტიკა შესახებ ვიქტორინა ხაზზე. 21 00:00:36,695 --> 00:00:38,450 ამიტომ, ჩვენ ვაპირებთ, რომ გაყოფილი ხალხი up სხვადასხვა ოთახებში. 22 00:00:38,450 --> 00:00:39,491 ის ეფუძნება მათი სახელი. 23 00:00:39,491 --> 00:00:43,630 ასე რომ, თუ თქვენ გაქვთ რაიმე შეკითხვები, სადაც წასვლა ან იმაზე, თუ რა მასალა, როგორიცაა, 24 00:00:43,630 --> 00:00:46,810 ოფიციალური სიტყვა რა ხდება უნდა იყოს ინტელექტუალური, შეამოწმეთ ონლაინ რეჟიმში. 25 00:00:46,810 --> 00:00:48,420 და ეს ყველაფერი დღემდე. 26 00:00:48,420 --> 00:00:51,280 ასე რომ, თუ არ არსებობს შეკითხვები დასაწყისისთვის, ჩვენ ვაპირებთ დავიწყოთ. 27 00:00:51,280 --> 00:00:52,790 28 00:00:52,790 --> 00:00:53,710 და აქ Allison. 29 00:00:53,710 --> 00:00:56,060 30 00:00:56,060 --> 00:00:57,000 >> [Claps] 31 00:00:57,000 --> 00:00:59,300 >> ALLISON: OK, მადლობა, Rob. 32 00:00:59,300 --> 00:01:00,280 ვაფასებ მას. 33 00:01:00,280 --> 00:01:01,350 34 00:01:01,350 --> 00:01:03,050 Davin უნდა flipped ამ. 35 00:01:03,050 --> 00:01:07,240 ეს არის არასამთავრობო ამომწურავ ჩამონათვალს, თემა, როგორც ყოველთვის, როგორც Davin უბრალოდ განაცხადა. 36 00:01:07,240 --> 00:01:10,860 გაეცანით დოკუმენტაციას ონლაინ შესახებ ვიქტორინა ნულოვანი. 37 00:01:10,860 --> 00:01:13,680 მაგრამ ეს არის საკმაოდ ბევრი ეს არის ის სილაბუსი 38 00:01:13,680 --> 00:01:15,550 არის ყველაფერი ჩვენ წავიდა დღემდე. 39 00:01:15,550 --> 00:01:18,290 ყველაფერი აქ არის სამართლიანი თამაში, ისევე როგორც არაფერი 40 00:01:18,290 --> 00:01:21,380 რომელიც შეიძლება უკვე აღნიშნული ლექცია. 41 00:01:21,380 --> 00:01:25,070 >> ჩემს განყოფილებაში, აქ, უბრალოდ ბევრი მიმოხილვა. 42 00:01:25,070 --> 00:01:27,775 არსებობს რამდენიმე წვრთნები რომ თქვენ ბიჭები შეიძლება მუშაობა. 43 00:01:27,775 --> 00:01:30,650 მაგრამ უმეტესწილად, ჩვენ ნამდვილად გვინდა Davin იმ კოდი 44 00:01:30,650 --> 00:01:31,710 ხელით წვრთნები. 45 00:01:31,710 --> 00:01:33,940 >> ამიტომ, მე ვაპირებ, რომ ფრენა მეშვეობით. 46 00:01:33,940 --> 00:01:36,330 თუ თქვენ გაქვთ რაიმე შეკითხვები, შეწყვიტოს ჩემთვის. 47 00:01:36,330 --> 00:01:37,270 გაზარდოთ თქვენი მხრივ. 48 00:01:37,270 --> 00:01:39,250 მე გპირდებით, რომ მე, ალბათ, რომ თქვენ. 49 00:01:39,250 --> 00:01:41,042 თუ არ გამოვიდა, ტალღა ირგვლივ. 50 00:01:41,042 --> 00:01:42,250 მე ვაპირებ უნდა ვსაუბრობთ სწრაფად. 51 00:01:42,250 --> 00:01:43,950 იმედი მაქვს, ყველას კარგად რომ. 52 00:01:43,950 --> 00:01:48,020 >> OK, სპეციალური სიტყვა, Davin აშკარად დაავიწყდა Flip მეშვეობით ეს სლაიდები. 53 00:01:48,020 --> 00:01:51,880 [იცინის] თქვენ პრობლემები, კაცი. 54 00:01:51,880 --> 00:01:55,770 ასე რჩევები ვიქტორინა ნულოვანი, პრაქტიკაში კოდირების ქაღალდზე. 55 00:01:55,770 --> 00:01:58,950 თქვენ ბიჭები ვაპირებთ, რომ რაღაც პრაქტიკაში, რომ ახლა Davin, 56 00:01:58,950 --> 00:02:00,655 ასე რომ თქვენ არ იქნება მთლიანად თავს. 57 00:02:00,655 --> 00:02:03,030 მე ვფიქრობ, რომ ჩვენ რეალურად აპირებს ამ ორი ფუნქციები. 58 00:02:03,030 --> 00:02:04,500 ასე რომ თქვენ უნდა კარგად მომზადებული იყო. 59 00:02:04,500 --> 00:02:05,958 >> იყოს იცნობს თქვენი პრობლემა კომპლექტი. 60 00:02:05,958 --> 00:02:08,150 არ ყოფილა შეკითხვები წინა ტესტები 61 00:02:08,150 --> 00:02:12,680 რომ მოგთხოვთ, მაგალითად, კოდექსში რაღაც ძალიან გავს Mario. 62 00:02:12,680 --> 00:02:15,060 ასე რომ, ძალიან კარგად იცნობს თქვენი პრობლემა ადგენს, ასევე 63 00:02:15,060 --> 00:02:17,827 როგორც ჩვენს მიერ დასმულ კითხვებს თქვენ დასაწყისში on ფორმა 64 00:02:17,827 --> 00:02:19,660 რომ თქვენ შეავსოთ, ნება ემსახურება თქვენ ძალიან კარგად. 65 00:02:19,660 --> 00:02:20,940 66 00:02:20,940 --> 00:02:23,380 >> ნუ წინა ვიქტორინა ქვეშ დრო შეზღუდვების. 67 00:02:23,380 --> 00:02:25,430 ეს ტესტები ხანგრძლივი. 68 00:02:25,430 --> 00:02:26,850 დრო გადის მართლაც სწრაფი. 69 00:02:26,850 --> 00:02:30,480 და ხშირად, თქვენ არ ესმოდეს, თუ როგორ სწრაფად მიდის, სანამ თქვენ ნამდვილად 70 00:02:30,480 --> 00:02:32,180 დააყენა თავს ქვეშ იმ შეზღუდვების. 71 00:02:32,180 --> 00:02:36,500 ასე რომ, თუ თქვენ შეგიძლიათ უბრალოდ გაიყო, თქვენ იცით, 75-ე წუთზე, ან დღეს ან ხვალ 72 00:02:36,500 --> 00:02:41,020 მიიღოს ერთი ამ ტესტებში ქვეშ ის, რომ თქვენ უნდა იყოს ბევრად უკეთესი ფორმა. 73 00:02:41,020 --> 00:02:43,060 >> და ასევე, ქმნის თქვენი მინიშნება ფურცელი. 74 00:02:43,060 --> 00:02:45,290 გახსოვდეთ, თქვენ გაქვთ ერთი გვერდი წინა და უკანა 75 00:02:45,290 --> 00:02:47,040 როგორც მინიშნება თქვენი Quiz ოთხშაბათს. 76 00:02:47,040 --> 00:02:49,074 შექმნა, რომელიც დიდი გზა შესწავლა. 77 00:02:49,074 --> 00:02:51,990 ყველაფერი, რაც თქვენ მქონე უბედურება თქვენ გსურთ მოიცავს იქ. 78 00:02:51,990 --> 00:02:55,627 რამე რომ თქვენი TFs არ ყოფილა, ისევე, როგორც ეს მართლაც მნიშვნელოვანია. 79 00:02:55,627 --> 00:02:57,960 თქვენ უნდა იცოდეს, არის იქნებ გაქვს იქ 80 00:02:57,960 --> 00:02:59,931 თუ თქვენ არ აქვს მათ მეხსიერებაში. 81 00:02:59,931 --> 00:03:02,680 მაშინაც კი, თუ თქვენ იცით მათ ნამდვილად ასევე, ზოგჯერ, რომელსაც იგი იქ 82 00:03:02,680 --> 00:03:07,030 მხოლოდ სახის კომფორტი თქვენთვის, რაც მე ვიცი, ტესტები სტრესული. 83 00:03:07,030 --> 00:03:09,260 ასე რომ, ნებისმიერ კომფორტს თქვენ შეუძლია დაეხმაროს. 84 00:03:09,260 --> 00:03:13,072 ყველა უფლება, ასევე, ძილის და ჭამა და მინდა ჩვეულებრივი რამ 85 00:03:13,072 --> 00:03:14,280 ჩვენ გეტყვით, ტესტები. 86 00:03:14,280 --> 00:03:16,320 87 00:03:16,320 --> 00:03:18,890 >> ასე იწყება off ადვილი, მონაცემთა ტიპის და ზომის. 88 00:03:18,890 --> 00:03:22,720 როგორც ვთქვი, ეს მხოლოდ აპირებს უნდა მე სროლა ბევრი პერსონალი 89 00:03:22,720 --> 00:03:24,320 აქ რომ თქვენ უნდა იცოდეს. 90 00:03:24,320 --> 00:03:27,600 ასე რომ, ჩვენ გვაქვს ჩვენი chars რომ არის ერთი ბაიტი, ints 91 00:03:27,600 --> 00:03:30,390 რომ ოთხი ბაიტი, ხანგრძლივი ხანგრძლივი, რომლებიც რვა ბაიტს. 92 00:03:30,390 --> 00:03:33,280 ძირითადად, ეს მხოლოდ თქვენ მინდა გამართავს დიდი რიცხვებით. 93 00:03:33,280 --> 00:03:35,490 მოძრავი, რომელიც ოთხი, ორადგილიანი, რომელიც რვა. 94 00:03:35,490 --> 00:03:38,150 ერთხელ, გაძლევთ მეტი სივრცეს მოძრავი. 95 00:03:38,150 --> 00:03:41,290 და შემდეგ ჩაწერეთ ვარსკვლავი, ასე რომ ნებისმიერი კურსორი on 32-bit მანქანა, 96 00:03:41,290 --> 00:03:44,650 რომელიც ყველა თქვენ ბიჭები უნდა იცოდეს, რომ ოთხი ბაიტი. 97 00:03:44,650 --> 00:03:46,542 >> ასე რომ ყველაფერი თქვენ უნდა ვიცი, ალბათ ყველაფერი 98 00:03:46,542 --> 00:03:48,250 გსურთ აქვს თქვენი მინიშნება ფურცელი. 99 00:03:48,250 --> 00:03:50,350 100 00:03:50,350 --> 00:03:53,520 OK, ორობითი კონვერტაციის ორობითი, კონვერტაციის 101 00:03:53,520 --> 00:03:56,860 თექვსმეტობითი, უკან და მეოთხე, ყველაფერი უნდა იცოდეს. 102 00:03:56,860 --> 00:03:59,480 ასე ორობითი ათობითზე. 103 00:03:59,480 --> 00:04:03,309 თქვენ ბიჭები უნდა მიიღოს სწრაფი წუთი და ცდილობენ და გაერკვნენ, თითოეული ამ 104 00:04:03,309 --> 00:04:04,600 და მაშინ მითხარით რა არის? 105 00:04:04,600 --> 00:04:06,500 106 00:04:06,500 --> 00:04:10,240 >> მე ასევე candy ჩემი ჩანთა, ასე რომ ყველას რომელიც პასუხობს იღებს candy, სხვათა შორის. 107 00:04:10,240 --> 00:04:13,560 108 00:04:13,560 --> 00:04:14,480 და მაქვს უამრავი იგი. 109 00:04:14,480 --> 00:04:15,760 110 00:04:15,760 --> 00:04:16,870 ნება მიბოძეთ აითვისებდა ეს. 111 00:04:16,870 --> 00:04:18,480 მე ვაპირებ, რათა ეს Gabe. 112 00:04:18,480 --> 00:04:21,829 ასე რომ თქვენ შეგიძლიათ გადასცემს კანფეტი ვინც არის ლამაზი და კოოპერატივი. 113 00:04:21,829 --> 00:04:23,490 >> OK, ვნახე მხრივ იქ უკან. 114 00:04:23,490 --> 00:04:26,418 115 00:04:26,418 --> 00:04:28,370 >> სტუდენტი: ჰო, პირველი 42 წლისაა. 116 00:04:28,370 --> 00:04:30,280 >> ALLISON: დიახ, პირველი არის 42 სწორი. 117 00:04:30,280 --> 00:04:31,163 118 00:04:31,163 --> 00:04:32,038 სტუდენტი: [INAUDIBLE]. 119 00:04:32,038 --> 00:04:34,810 [სიცილის] 120 00:04:34,810 --> 00:04:37,030 ALLISON: მეორე, არსებობს უკან ყვითელი? 121 00:04:37,030 --> 00:04:38,910 სტუდენტი: 110010. 122 00:04:38,910 --> 00:04:43,410 ALLISON: სწორი, და ეს ბოლო ერთი, ქვევით აქ ბოლოში? 123 00:04:43,410 --> 00:04:44,570 ასევე, yeah, თქვენ იცით, თუ გინდათ? 124 00:04:44,570 --> 00:04:45,550 უბრალოდ toss out candy. 125 00:04:45,550 --> 00:04:46,483 როგორ შესახებ candy ყველასთვის? 126 00:04:46,483 --> 00:04:47,510 >> სტუდენტი: [INAUDIBLE] როდესაც ჩვენ გავაკეთეთ. 127 00:04:47,510 --> 00:04:48,051 >> ALLISON: Shh. 128 00:04:48,051 --> 00:04:49,380 129 00:04:49,380 --> 00:04:50,910 და შემდეგ ბოლო ერთი. 130 00:04:50,910 --> 00:04:52,000 ვისაც სურს, რომ პასუხი? 131 00:04:52,000 --> 00:04:52,744 უფლება არსებობს. 132 00:04:52,744 --> 00:04:54,480 >> სტუდენტი: 11100. 133 00:04:54,480 --> 00:04:56,820 >> ALLISON: 11100, შევხედოთ, რომ. 134 00:04:56,820 --> 00:04:58,790 გილოცავთ, დიდი სამუშაო, ყველას. 135 00:04:58,790 --> 00:05:03,370 OK, ყველა სახის მესმის, პროცესი ამით? 136 00:05:03,370 --> 00:05:08,700 თქვენ, მიმდინარეობს ორობითი ათობითზე სხვათა შორის, მე, როგორც წესი, ამის გაკეთება, წერს out 137 00:05:08,700 --> 00:05:09,920 უფლებამოსილების 2. 138 00:05:09,920 --> 00:05:18,350 ამიტომ ვამბობ, OK, 0-ჯერ 2: 0, ასე ეს არის 0, 1 ჯერ 2, პირველ რიგში, 139 00:05:18,350 --> 00:05:21,400 2 აპირებს მოყოლებული, რომ გზა. 140 00:05:21,400 --> 00:05:25,790 ვინმეს სურს მე პირდაპირ გავლა მაგალითი ორობითი? 141 00:05:25,790 --> 00:05:26,840 142 00:05:26,840 --> 00:05:28,140 OK, ზემოთ. 143 00:05:28,140 --> 00:05:30,390 >> ათობითი რომ ორობითი ძალიან ჰგავს. 144 00:05:30,390 --> 00:05:31,550 145 00:05:31,550 --> 00:05:33,630 მე, როგორც წესი წერენ, უფლებამოსილება 2. 146 00:05:33,630 --> 00:05:38,660 იწყება ერთი, რომ ყველაზე დიდი, მაგრამ არ წავიდეთ წარსულში ათობითი 147 00:05:38,660 --> 00:05:39,710 რომ თქვენ ეძებს. 148 00:05:39,710 --> 00:05:42,870 და შემდეგ სახის მუშაობა თქვენი გზა უკან დასძინა რამ, როგორც საჭიროა. 149 00:05:42,870 --> 00:05:45,200 >> და შემდეგ ამისა, ის ისევე, როგორც ნორმალური გარდა. 150 00:05:45,200 --> 00:05:51,110 თუ ოდესმე იმ შემთხვევაში, თუ თქვენ დამატებით ორი 1s, აშკარად ხდება 2. 151 00:05:51,110 --> 00:05:56,875 2 ორობითი არის 1 0 ასე რომ თქვენ უნდა განახორციელოს თქვენი 1 მომდევნო სვეტი. 152 00:05:56,875 --> 00:05:57,375 ზემოთ. 153 00:05:57,375 --> 00:05:59,220 154 00:05:59,220 --> 00:06:03,240 >> თექვსმეტობითი, ეს შეიძლება იყოს რაღაც რომ ოდნავ ნაკლებად იცნობს. 155 00:06:03,240 --> 00:06:06,600 ისე, რობ უბრალოდ მეუბნებოდა წინასწარ მისი ხრიკი ამ 156 00:06:06,600 --> 00:06:10,210 უბრალოდ გაყოფილი up ოთხი ბაიტი მოცულობით, OK? 157 00:06:10,210 --> 00:06:11,050 Bits, უკაცრავად. 158 00:06:11,050 --> 00:06:11,720 ვხედავ? 159 00:06:11,720 --> 00:06:12,220 მადლობა რობ. 160 00:06:12,220 --> 00:06:15,874 სწორედ ამიტომ, თქვენ აქ. [ხმაური] OK, ასე რომ ჩვენ უბრალოდ შესვენება ეს 161 00:06:15,874 --> 00:06:16,790 ოთხი ბიტი მოცულობით. 162 00:06:16,790 --> 00:06:21,570 ასე binaries თექვსმეტობითი, ჩვენ შევხედოთ პირველი 4, 163 00:06:21,570 --> 00:06:25,573 რომელიც, თუ ჩვენ გვაქვს ოთხი 1s in a row, თუ რა რაოდენობის ჯერ, რომ სიმბოლოს? 164 00:06:25,573 --> 00:06:26,540 >> სტუდენტი: F. 165 00:06:26,540 --> 00:06:32,751 >> ALLISON: ასე რომ, ამ შემთხვევაში, რა არის 11111111 or-- yes? 166 00:06:32,751 --> 00:06:33,250 სტუდენტი: FF. 167 00:06:33,250 --> 00:06:34,600 ALLISON: Perfect, FF. 168 00:06:34,600 --> 00:06:36,900 იმდენად დიდი, candy თქვენთვის. 169 00:06:36,900 --> 00:06:41,100 ახლა, როგორ თექვსმეტობითი ორობითი, ჩვენ უბრალოდ დაფიქრდით სახის საპირისპირო. 170 00:06:41,100 --> 00:06:46,420 თითოეული ნომერი ან წერილი, რომელიც ჩვენ გვაქვს ჩვენი თექვსმეტობითი, 171 00:06:46,420 --> 00:06:53,930 მხოლოდ გარდაქმნას იგი მისი ოთხი bit [იცინის] მისი ოთხი ცოტა კონვერტაციის. 172 00:06:53,930 --> 00:06:58,696 ასე რომ, 5, ამ შემთხვევაში, რა არის 5 თუ ჩვენ წარმოადგენს, ოთხი ბიტი? 173 00:06:58,696 --> 00:06:59,608 >> სტუდენტი: 010? 174 00:06:59,608 --> 00:07:00,520 მმ-hm. 175 00:07:00,520 --> 00:07:03,605 და შემდეგ, რაც რეალურად, 10 იქნება? 176 00:07:03,605 --> 00:07:06,230 177 00:07:06,230 --> 00:07:08,040 1010. 178 00:07:08,040 --> 00:07:09,670 ასე რომ, ჩვენ, რომ აქ. 179 00:07:09,670 --> 00:07:13,990 ასე კონვერტაცია შორის თექვსმეტობითი ორობითი რეალურად არ არის, რომ ცუდი. 180 00:07:13,990 --> 00:07:16,565 თუ თქვენ შეხედეთ მას ოთხი bit მოცულობით, იქნება ოქროს. 181 00:07:16,565 --> 00:07:18,330 182 00:07:18,330 --> 00:07:19,300 Everyone-- yes? 183 00:07:19,300 --> 00:07:21,903 >> ROB: ეს არის სულელური, მაგრამ მე ყოველთვის გვახსოვს, 184 00:07:21,903 --> 00:07:23,500 მას შემდეგ, რაც ის უნდა იყოს 10. 185 00:07:23,500 --> 00:07:26,230 ორობითი უბრალოდ 10 10, so-- 186 00:07:26,230 --> 00:07:27,310 >> ALLISON: Ah, იქ ჩვენ წავიდეთ. 187 00:07:27,310 --> 00:07:28,615 >> ROB: Hey. 188 00:07:28,615 --> 00:07:30,020 >> ALLISON: Hey, კანფეტი Rob. 189 00:07:30,020 --> 00:07:31,707 190 00:07:31,707 --> 00:07:33,290 არსებობს არასამთავრობო შოკოლადის პერსონალი იქ. 191 00:07:33,290 --> 00:07:34,180 ასე, რომ თქვენ შეიძლება ჰქონდეს. 192 00:07:34,180 --> 00:07:35,790 193 00:07:35,790 --> 00:07:36,760 ასე ASCII მათემატიკის. 194 00:07:36,760 --> 00:07:38,206 195 00:07:38,206 --> 00:07:38,705 მოიქცეს. 196 00:07:38,705 --> 00:07:40,630 197 00:07:40,630 --> 00:07:44,720 ასე ASCII მათემატიკის, როგორც თქვენ ბიჭები ალბათ კარგად გახსოვთ, 198 00:07:44,720 --> 00:07:48,480 p მითითებული 2 Visioneer და Caesar, თქვენ ბევრი რამ ამ. 199 00:07:48,480 --> 00:07:49,610 200 00:07:49,610 --> 00:07:51,980 მახსოვს, სიმბოლოები ფუნდამენტურად მხოლოდ ციფრები. 201 00:07:51,980 --> 00:07:54,780 ამიტომ ჩვენ შეგვიძლია გავაკეთოთ math მათ, ისევე, როგორც ჩვენ ვაკეთებთ მათემატიკის ints. 202 00:07:54,780 --> 00:07:58,090 >> ასე რომ, ჩვენ უბრალოდ პატარა მარტივი რამ აქ. 203 00:07:58,090 --> 00:08:00,940 ჩვენ გვაქვს ზოგიერთი, რომ ეს ინიციალიზაცია 65. 204 00:08:00,940 --> 00:08:07,440 და B ტოლია ASCII ღირებულება პლუს 1, char C ტოლი D მინუს 1, 205 00:08:07,440 --> 00:08:09,060 და char D ტოლი 68. 206 00:08:09,060 --> 00:08:13,130 ასე რომ მაშინ ჩვენ ვაპირებთ ბეჭდვა ყველა მათგანი, როგორც ვხედავთ აქ. 207 00:08:13,130 --> 00:08:15,650 და შეიძლება ვინმეს მითხრათ ის, რაც ამ ამობეჭდოთ? 208 00:08:15,650 --> 00:08:17,335 209 00:08:17,335 --> 00:08:18,210 სტუდენტი: [INAUDIBLE]. 210 00:08:18,210 --> 00:08:20,540 ALLISON: სწორედ ასე ერთი რამ შეამჩნია, 211 00:08:20,540 --> 00:08:22,900 რომ ჩვენ ბეჭდვა პერსონაჟების ყოველ დროს, აქ. 212 00:08:22,900 --> 00:08:28,290 ჩვენ აღმნიშვნელი მიუხედავად იმისა, რომ A და B არის ints როდესაც ჩვენ განაცხადა, მათ ზემოთ. 213 00:08:28,290 --> 00:08:32,870 ჩვენ ვბეჭდავთ მათ, როგორც გმირები პროცენტი C და ჩვენი printf განცხადება, 214 00:08:32,870 --> 00:08:34,610 ასე რომ, ისინი ყველა ბეჭდვა სიმბოლო. 215 00:08:34,610 --> 00:08:40,730 და რა თქმა უნდა, ASCII ღირებულების 65 ბეჭდვა ა ASCII ღირებულება პლუს 1 216 00:08:40,730 --> 00:08:43,669 იქნება 66, რომლების ვამაყობ, რომ B. ასე რომ, ფაქტობრივად, ჩვენ 217 00:08:43,669 --> 00:08:49,107 მიიღეთ A B C დ ყველას კარგი არსებობს? 218 00:08:49,107 --> 00:08:49,690 ნებისმიერი კითხვები? 219 00:08:49,690 --> 00:08:50,721 220 00:08:50,721 --> 00:08:51,220 გასაოცარია. 221 00:08:51,220 --> 00:08:52,500 222 00:08:52,500 --> 00:08:53,455 >> OK, ფარგლებს. 223 00:08:53,455 --> 00:08:55,090 224 00:08:55,090 --> 00:08:59,950 ასე ფარგლებს აშკარად ძალიან მთავარია გვესმოდეს, აქ. 225 00:08:59,950 --> 00:09:03,250 ბევრი თქვენგანი, თუ აქვს შედგენის შეცდომები, 226 00:09:03,250 --> 00:09:06,085 და ამბობს, თქვენ არ გაქვთ ხელმისაწვდომობა რამდენიმე ცვლადი, 227 00:09:06,085 --> 00:09:08,540 ეს, ალბათ, იმიტომ, რომ თქვენ განსაზღვრა განმავლობაში ციკლი 228 00:09:08,540 --> 00:09:12,210 და შემდეგ შევეცადეთ ვებგვერდზე გარეთ, ან პირიქით. 229 00:09:12,210 --> 00:09:16,410 >> ასე ფარგლებს მისი ძირითადი, ის მხოლოდ განსაზღვრავს, სადაც 230 00:09:16,410 --> 00:09:20,800 ჩვენ ვამბობთ, ცვლადი არსებობს, სადაც ჩვენ შეუძლია შეცვალოს ის, სადაც ჩვენ შეუძლია ეს. 231 00:09:20,800 --> 00:09:24,550 ეს მხოლოდ სახის განაცხადა, რომ ეს არის მხოლოდ ის ადგილები, სადაც თქვენ გაქვთ 232 00:09:24,550 --> 00:09:26,060 ამ ცვლადში. 233 00:09:26,060 --> 00:09:30,080 >> ასე რომ, ორი ფარგლები, რომ ჩვენ ვსაუბრობთ დროს კლასი გლობალური და ადგილობრივი. 234 00:09:30,080 --> 00:09:35,080 ასე გლობალური ცვლადები ვსაუბრობთ როდესაც თქვენ განსაზღვრის მათ ზემოთ ძირითადი. 235 00:09:35,080 --> 00:09:38,390 ეს ნიშნავს, რომ თქვენი პროგრამას აქვს დაშვება, 236 00:09:38,390 --> 00:09:42,090 და ის არსებობს, სანამ როგორც პროგრამა ეშვება, OK? 237 00:09:42,090 --> 00:09:45,100 ადგილობრივი ნიშნავს, რომ ის უფრო შემოიფარგლება რეგიონში. 238 00:09:45,100 --> 00:09:50,520 ასე რომ, როდესაც თქვენ გაქვთ კონკრეტული ფუნქციები როგორიცაა სვოპი, ჩვენ ყოველთვის ვსაუბრობთ. 239 00:09:50,520 --> 00:09:54,380 ჩვენ ყოველთვის საუბრობენ გამოცვლას და B. A და B არსებობა, რომ ფუნქცია. 240 00:09:54,380 --> 00:09:55,690 არ არსებობს არსად. 241 00:09:55,690 --> 00:09:56,860 242 00:09:56,860 --> 00:10:00,610 >> ასევე, როდესაც თქვენ გაქვთ თუ განცხადებები და მარყუჟების. 243 00:10:00,610 --> 00:10:04,670 როცა კი გვაქვს, მაგალითად, ამისთვის მარყუჟის, ჩვენ გვაქვს int i უდრის 0. 244 00:10:04,670 --> 00:10:06,630 ჩვენ გვაქვს გარკვეული მდგომარეობა და განახლება. 245 00:10:06,630 --> 00:10:10,270 მე მხოლოდ არსებობს ფარგლებში braces რომ loop. 246 00:10:10,270 --> 00:10:13,270 თუ თქვენ ცდილობენ, რათა შეამოწმონ იგი სხვაგან, თქვენი შემდგენელი რომ დაწეროთ თქვენ. 247 00:10:13,270 --> 00:10:14,560 ეს მინდა იყოს, რას ცდილობთ? 248 00:10:14,560 --> 00:10:15,400 ეს არ არსებობს. 249 00:10:15,400 --> 00:10:16,644 250 00:10:16,644 --> 00:10:18,435 ასე რომ, ეს ორი სხვადასხვა სახის ფარგლებს. 251 00:10:18,435 --> 00:10:19,486 252 00:10:19,486 --> 00:10:20,860 ამჯამად რომ აზრი ყველას? 253 00:10:20,860 --> 00:10:23,870 254 00:10:23,870 --> 00:10:27,890 >> ასე მაგალითად, აქ, ამ არის რამოდენიმე მარტივი პროგრამა. 255 00:10:27,890 --> 00:10:29,120 256 00:10:29,120 --> 00:10:32,890 რა ბიჭები ვფიქრობ, რომ მოხდება თითოეული წერტილი 257 00:10:32,890 --> 00:10:34,210 რომ ჩვენ ვცდილობთ ბეჭდვა? 258 00:10:34,210 --> 00:10:40,150 ასე რომ, ეს ერთი აქ, რა მოხდება? 259 00:10:40,150 --> 00:10:43,047 260 00:10:43,047 --> 00:10:44,255 სტუდენტი: ეს იქნება ბეჭდვა სამ. 261 00:10:44,255 --> 00:10:44,880 ALLISON: Right. 262 00:10:44,880 --> 00:10:45,930 ეს კიდე ბეჭდვა სამ. 263 00:10:45,930 --> 00:10:47,272 რაც შეეხება აქ? 264 00:10:47,272 --> 00:10:48,230 სტუდენტი: ეს არ იმუშავებს. 265 00:10:48,230 --> 00:10:48,910 ALLISON: ეს არ იმუშავებს. 266 00:10:48,910 --> 00:10:50,290 თქვენ ფარგლებს, არა? 267 00:10:50,290 --> 00:10:55,160 ადგილობრივი ცვლადი არ არსებობს გარეთ ამ braces, ყველა უფლება? 268 00:10:55,160 --> 00:10:56,462 და მერე რა აქ? 269 00:10:56,462 --> 00:10:57,850 >> სტუდენტი: [INAUDIBLE]. 270 00:10:57,850 --> 00:10:59,210 >> ALLISON რა? 271 00:10:59,210 --> 00:10:59,900 ძარცვა, წავიდეთ. 272 00:10:59,900 --> 00:11:00,854 >> ROB: მე უბრალოდ განაცხადა. 273 00:11:00,854 --> 00:11:04,200 გლობალური ცვლადები უნდა იყოს გლობალური ხაზს ცვლადი. 274 00:11:04,200 --> 00:11:05,660 >> ALLISON: Ah, დიახ, უკაცრავად. 275 00:11:05,660 --> 00:11:06,200 მადლობა, Rob. 276 00:11:06,200 --> 00:11:07,480 277 00:11:07,480 --> 00:11:10,170 რობ, როგორიცაა ჩვენი რეზიდენტი შემდგენელი. 278 00:11:10,170 --> 00:11:12,684 ის უბრალოდ დაწეროთ, როდესაც ჩვენ სჭირდება. [იცინის] დიახ, 279 00:11:12,684 --> 00:11:14,225 უნდა იყოს გლობალური ხაზს ცვლადი. 280 00:11:14,225 --> 00:11:15,760 281 00:11:15,760 --> 00:11:18,430 ასე ვთქვათ, რომ გლობალურ ხაზგასმა 282 00:11:18,430 --> 00:11:20,260 ცვლადი, რა მოხდება აქ? 283 00:11:20,260 --> 00:11:21,260 სტუდენტი: ეს იმუშავებს. 284 00:11:21,260 --> 00:11:22,093 ALLISON: ეს ვიმუშავებთ. 285 00:11:22,093 --> 00:11:24,655 ასე რომ თქვენ ბეჭდვა, ისე უბრალოდ ძალიან მარტივი მაგალითი. 286 00:11:24,655 --> 00:11:27,650 287 00:11:27,650 --> 00:11:29,870 OK, პროტოტიპები. 288 00:11:29,870 --> 00:11:33,680 ამიტომ ცხადია, რომ ჩვენ მართლაც ხაზს ვუსვამთ, თქვენ ბიჭები 289 00:11:33,680 --> 00:11:36,460 რათა ფუნქციები, თუ იგი აზრი თქვენს პროგრამებში. 290 00:11:36,460 --> 00:11:38,460 რა თქმა უნდა, როდესაც თქვენ რათა საკუთარი ფუნქციები, 291 00:11:38,460 --> 00:11:40,930 როგორც წესი, თქვენ განსაზღვროს მათ შემდეგ რჩება. 292 00:11:40,930 --> 00:11:42,430 და თქვენ ცდილობენ მოვუწოდებთ მათ მთავარ. 293 00:11:42,430 --> 00:11:46,030 და თუ თქვენ არ იყენებთ პროტოტიპი, თქვენი კომპილატორი დაწეროთ თქვენ. 294 00:11:46,030 --> 00:11:49,590 >> Prototype ძირითადად უბრალოდ ვეუბნებოდი თქვენი შემდგენელი 295 00:11:49,590 --> 00:11:52,400 რომ მაქვს ეს ფუნქცია ქვემოთ ძირითადი. 296 00:11:52,400 --> 00:11:54,970 მე ვაპირებ მოვუწოდო, რომ სანამ მე განსაზღვრავს მას. 297 00:11:54,970 --> 00:11:56,360 მხოლოდ გაიმართება. 298 00:11:56,360 --> 00:12:00,660 მე გპირდებით, რომ ეს არ არის განსაზღვრული, და თქვენ გექნებათ ყველაფერი, რაც გჭირდებათ. 299 00:12:00,660 --> 00:12:05,900 >> ასე ვაკეთებთ, რომ ეს მხოლოდ თქვენი დაბრუნება ტიპის, თქვენი ფუნქციის სახელი, თქვენი წვლილი 300 00:12:05,900 --> 00:12:06,400 სიაში. 301 00:12:06,400 --> 00:12:09,760 ეს, ძირითადად, პირველი ხაზი თქვენი ფუნქცია დეკლარაცია. 302 00:12:09,760 --> 00:12:11,510 ეს მართლაც ყველა ეს. 303 00:12:11,510 --> 00:12:14,440 მაგრამ ეს მხოლოდ ზოგადი სახის ფორმატში. 304 00:12:14,440 --> 00:12:17,220 >> ასე, რომ ჩვენს მაგალითში, რომელიც თქვენ ბიჭები უნდა 305 00:12:17,220 --> 00:12:19,700 არ მინახავს ნაწილში რაღაც მომენტში, ჩვენ გვაქვს 306 00:12:19,700 --> 00:12:23,220 ზოგიერთი int cube, რომ სჭირდება გარკვეული int შეყვანის. 307 00:12:23,220 --> 00:12:25,870 და ჩვენ გვაქვს ჩვენი მთავარი ფუნქცია, რომელიც მოუწოდებს კუბი. 308 00:12:25,870 --> 00:12:28,670 და კუბი განისაზღვრება შემდეგ ფაქტი. 309 00:12:28,670 --> 00:12:34,450 >> ასე რომ, თუ ჩვენ არ გვაქვს int cube input ზედა, როდესაც ჩვენ მოუწოდა კუბი 310 00:12:34,450 --> 00:12:36,620 ფარგლებში ძირითადი, ჩვენი შემდგენელი დაიჭერს შეშლილი us. 311 00:12:36,620 --> 00:12:38,890 ეს მინდა იყოს, რა ვსაუბრობთ? 312 00:12:38,890 --> 00:12:40,360 Cube არ არსებობს. 313 00:12:40,360 --> 00:12:41,910 მე არ ვიცი, რა თქვენ ითხოვს. 314 00:12:41,910 --> 00:12:43,490 და მე უბრალოდ აპირებს გაჩერება. 315 00:12:43,490 --> 00:12:47,330 >> არამედ იმიტომ, რომ ჩვენ გავაკეთეთ ჩვენი პროტოტიპი ზედა, ჩვენ ვთქვით, 316 00:12:47,330 --> 00:12:49,800 თქვენ იცით, როდესაც თქვენ ხედავთ, cube, არ აღელვებს ეს. 317 00:12:49,800 --> 00:12:51,990 მე გპირდებით, რომ განსაზღვრული მოგვიანებით. 318 00:12:51,990 --> 00:12:53,750 და ეს თქვენ მოგცემთ, რაც თქვენ გჭირდებათ. 319 00:12:53,750 --> 00:12:57,750 ასე რომ, თუ თქვენ ოდესმე ფუნქცია რომ განაცხადა, მას შემდეგ, რაც თქვენ ეძახით 320 00:12:57,750 --> 00:13:00,570 პირველად, თქვენ უნდა აქვს მას prototyped ზედა. 321 00:13:00,570 --> 00:13:01,640 322 00:13:01,640 --> 00:13:02,720 >> დიახ? 323 00:13:02,720 --> 00:13:04,412 >> ROB: ეს კვადრატი, არ cubing. 324 00:13:04,412 --> 00:13:05,855 >> ALLISON: Oh ღმერთი ჩემი. 325 00:13:05,855 --> 00:13:09,435 მე არ ჰქონდეს Gabe, ვფიქრობდი, თქვენ იყავით ჩვენი proofreader. 326 00:13:09,435 --> 00:13:10,740 327 00:13:10,740 --> 00:13:12,760 OK ბიჭები, ეკისრება ჩემთან, აქ. 328 00:13:12,760 --> 00:13:14,440 იმედი მაქვს, ყველას მიღების იდეა. 329 00:13:14,440 --> 00:13:15,560 330 00:13:15,560 --> 00:13:20,380 OK, ასე რომ, ეს უნდა ჰქონდეს უკვე კვადრატში, არა cubed. 331 00:13:20,380 --> 00:13:22,700 მაგრამ იდეა იგივე რჩება. 332 00:13:22,700 --> 00:13:23,702 333 00:13:23,702 --> 00:13:26,660 ნებისმიერი ფუნქცია, რომ ჩვენ მოუწოდებდა შემდეგ ის ფაქტი, უნდა ჰქონდეს პროტოტიპი. 334 00:13:26,660 --> 00:13:27,730 335 00:13:27,730 --> 00:13:28,970 ყველას კარგი რომ? 336 00:13:28,970 --> 00:13:30,730 337 00:13:30,730 --> 00:13:32,310 ნებისმიერი სხვა typos? 338 00:13:32,310 --> 00:13:32,810 OK. 339 00:13:32,810 --> 00:13:34,730 340 00:13:34,730 --> 00:13:36,230 ნებისმიერი typos აქ სანამ ჩვენ ვიწყებთ, რობ? 341 00:13:36,230 --> 00:13:37,356 342 00:13:37,356 --> 00:13:42,380 [იცინის] OK, ასე რომ structs. 343 00:13:42,380 --> 00:13:45,040 ძირითადად, structs საშუალებას გაძლევთ შექმნათ თქვენი საკუთარი მონაცემები ტიპის. 344 00:13:45,040 --> 00:13:49,264 იმდენად მოსწონს int ან char ან float, ეს არის კიდევ ერთი ტიპის. 345 00:13:49,264 --> 00:13:51,680 მე მიყვარს ვფიქრობ, რომ ეს, ისევე, შექმნათ თქვენი საკუთარი მონაცემები ტიპის. 346 00:13:51,680 --> 00:13:53,740 ასე რომ, ეს საშუალებას გაძლევთ ამის გაკეთება. 347 00:13:53,740 --> 00:13:56,160 და მას აქვს სხვადასხვა ტიპის მონაცემები. 348 00:13:56,160 --> 00:14:01,030 >> ასე რომ, თუ გახსოვთ, მასივი, ჩვენ შეიძლება მხოლოდ გამართავს რამ მსგავსი ტიპის. 349 00:14:01,030 --> 00:14:04,660 Structs საშუალებას გვაძლევს გამართავს მრავალჯერადი რამ სხვადასხვა სახის. 350 00:14:04,660 --> 00:14:08,944 ასე რომ, ამ შემთხვევაში აქ, ჩვენ აქვს struct მოუწოდა სტუდენტი 351 00:14:08,944 --> 00:14:10,650 სახელად აქ ბოლოში. 352 00:14:10,650 --> 00:14:13,540 და ჩვენ გვაქვს int id და ზოგიერთი სიმებიანი სახელი. 353 00:14:13,540 --> 00:14:14,620 354 00:14:14,620 --> 00:14:17,300 ასე რომ, ეს არის კიდევ ერთი მონაცემები ტიპის. 355 00:14:17,300 --> 00:14:18,950 ახლა ჩვენ გვაქვს მონაცემები ტიპის მოუწოდა სტუდენტი. 356 00:14:18,950 --> 00:14:20,330 357 00:14:20,330 --> 00:14:24,750 >> ასე რომ, რადგან ჩვენ შეგვიძლია ვიფიქროთ, როგორც მხოლოდ სხვა მონაცემები ტიპის, 358 00:14:24,750 --> 00:14:27,760 ჩვენ შეგვიძლია განაცხადოს ცვლადები როგორც ჩვენ გვინდა სხვა. 359 00:14:27,760 --> 00:14:32,680 ასე რომ ნაცვლად მხოლოდ მქონე, ისევე, int აბიტურიენტი, ჩვენ უბრალოდ სტუდენტი, 360 00:14:32,680 --> 00:14:33,390 სტუდენტი 1. 361 00:14:33,390 --> 00:14:33,560 Oh, შეხედეთ. 362 00:14:33,560 --> 00:14:34,059 ეს Rob. 363 00:14:34,059 --> 00:14:35,750 364 00:14:35,750 --> 00:14:38,880 ასე რომ, აქ ჩვენ ვაცხადებთ struct, და ცვლადი 365 00:14:38,880 --> 00:14:40,940 ე.წ. სტუდენტი 1 ტიპის სტუდენტი. 366 00:14:40,940 --> 00:14:45,370 ასე რომ, ეს აპირებს id და სახელი ასოცირდება იგი. 367 00:14:45,370 --> 00:14:48,430 >> და გზა ჩვენ შედიხართ ამ ელემენტების ფარგლებში ჩვენი struct 368 00:14:48,430 --> 00:14:50,100 ერთად dot ოპერატორი, აქ. 369 00:14:50,100 --> 00:14:51,910 370 00:14:51,910 --> 00:14:54,660 ასე რომ, ამ შემთხვევაში, ჩვენ განაცხადა ზოგიერთი სტუდენტი 1. 371 00:14:54,660 --> 00:14:57,080 ჩვენ დაავალა ID, 1. 372 00:14:57,080 --> 00:14:58,840 და ჩვენ დაავალა სახელი უნდა იყოს Rob. 373 00:14:58,840 --> 00:15:03,010 374 00:15:03,010 --> 00:15:04,960 OK, ყველას კარგი რომ? 375 00:15:04,960 --> 00:15:06,787 გამოიყენეთ მხოლოდ მოსწონს yes? 376 00:15:06,787 --> 00:15:09,530 >> სტუდენტი: Yeah, typedef-- როდესაც ჩვენ უნდა გამოვიყენოთ typedef? 377 00:15:09,530 --> 00:15:13,190 >> ALLISON: So typedef მხოლოდ ამბობს that-- რობ, თქვენ 378 00:15:13,190 --> 00:15:16,990 შეუძლია შეასწოროს ჩემთვის, თუ მე wrong-- მაგრამ typedef, უბრალოდ რეალურად გამოცხადების 379 00:15:16,990 --> 00:15:19,330 მას, როგორც ტიპის, რომ თქვენ შეგიძლიათ გამოიყენოთ, არა? 380 00:15:19,330 --> 00:15:22,550 >> ROB: ჰო, ის, ძირითადად, ასე რომ, ეს უბრალოდ ქმნის 381 00:15:22,550 --> 00:15:24,215 იგივე, და მეტსახელი ტიპის. 382 00:15:24,215 --> 00:15:25,590 ასე, რომ თქვენ შეგიძლიათ მიუთითოთ, რომ [INAUDIBLE]. 383 00:15:25,590 --> 00:15:27,140 384 00:15:27,140 --> 00:15:30,350 ასე რომ, [INAUDIBLE] არსებობს, და ახლა ჩვენ უბრალოდ უნდა 385 00:15:30,350 --> 00:15:32,090 [INAUDIBLE] საშუალება ზუსტად იგივე. 386 00:15:32,090 --> 00:15:37,210 ასე რომ, აქ, ჩვენ აკრეფილი, ვფიქრობ, ზოგიერთი struct ტიპის 2 [INAUDIBLE]. 387 00:15:37,210 --> 00:15:40,680 ისე უბრალოდ მეტსახელი მოცემული ტიპის. 388 00:15:40,680 --> 00:15:44,344 >> სტუდენტი: String [INAUDIBLE] ბიბლიოთეკა იყო აკრეფილი, როგორიცაა char ვარსკვლავი. 389 00:15:44,344 --> 00:15:51,380 390 00:15:51,380 --> 00:15:54,390 >> ALLISON: ჩვენი მიზნებისთვის აქ თუ თქვენ გამოცხადების struct, 391 00:15:54,390 --> 00:15:55,600 მხოლოდ ამის typedef struct. 392 00:15:55,600 --> 00:15:57,680 393 00:15:57,680 --> 00:16:04,490 OK, ასე რომ, წინასწარ, რომ ეს არის უბრალოდ ნორმალური ცვლადი აქ. 394 00:16:04,490 --> 00:16:06,390 ჩვენ ვებგვერდზე dot. 395 00:16:06,390 --> 00:16:08,580 თუ ჩვენ გვაქვს მომცეთ struct, ჩვენ შეგვიძლია რეალურად 396 00:16:08,580 --> 00:16:10,700 გამოყენება arrow, რომელიც არის საკმაოდ გრილი. 397 00:16:10,700 --> 00:16:17,130 >> ასე რომ, ამ შემთხვევაში, ჩვენ უნდა მომცეთ სტუდენტი 1, რომელიც ტიპის სტუდენტი. 398 00:16:17,130 --> 00:16:19,020 გახსოვდეთ, თქვენი მაჩვენებელი მშენებლობა, 399 00:16:19,020 --> 00:16:23,710 გსურთ რასაც აკრიფოთ თქვენი მაჩვენებელი მიუთითებს, რომ იყოს დასაწყისში. 400 00:16:23,710 --> 00:16:25,960 ასე რომ, ჩვენ გვაქვს რამდენიმე სტუდენტი 1, აქ. 401 00:16:25,960 --> 00:16:27,370 402 00:16:27,370 --> 00:16:31,050 და რადგან ეს სტუდენტი 1 არის აღნიშნა, 403 00:16:31,050 --> 00:16:36,520 ჩვენ შეგვიძლია რეალურად წასვლა სტუდენტი 1 arrow სახელი ნაცვლად dot, იმიტომ, რომ ეს მაჩვენებელი, 404 00:16:36,520 --> 00:16:37,640 და მივანიჭოთ Rob. 405 00:16:37,640 --> 00:16:40,720 და ახლა, თუ გვინდა, შეცვლა რობ Davin, 406 00:16:40,720 --> 00:16:43,570 ეს უბრალოდ გვიჩვენებს, თუ სხვაგვარად ამის გაკეთება. 407 00:16:43,570 --> 00:16:48,850 >> ასე რომ, ნაცვლად გამოყენებით arrow, შეიძლება also-- I დასრულდება და შემდეგ 408 00:16:48,850 --> 00:16:52,860 მიიღოს, რომ კითხვა, რომ თქვენ შეიძლება ასევე გავაკეთოთ მითითებით სტუდენტი 1. 409 00:16:52,860 --> 00:16:56,170 რომ ვამბობ, როგორიცაა წასვლა რაც არ არის სტუდენტი 1, 410 00:16:56,170 --> 00:16:58,840 იქნება ჩვენი სტუდენტი struct. 411 00:16:58,840 --> 00:17:03,910 ვებგვერდზე dot და ელემენტი გსურთ, და შემდეგ reassign ის. 412 00:17:03,910 --> 00:17:05,326 იყო შეკითხვა. 413 00:17:05,326 --> 00:17:08,034 სტუდენტი: დიახ, ასე როგორ, შენ უნდა გამოიყენოთ [INAUDIBLE] როდესაც თქვენ 414 00:17:08,034 --> 00:17:10,367 სტუდენტი ვარსკვლავი გარეშე [INAUDIBLE] სტუდენტი? 415 00:17:10,367 --> 00:17:12,200 ALLISON: იმიტომ, რომ ეს ქმნის მაჩვენებელი. 416 00:17:12,200 --> 00:17:13,616 ROB: ჩვენ ვაპირებთ საუბარს. 417 00:17:13,616 --> 00:17:16,119 ALLISON: ჩვენ ვაპირებთ, რომ გაიგო რომ მოგვიანებით მიმოხილვა. 418 00:17:16,119 --> 00:17:17,660 ასე რომ, უბრალოდ გამართავს გადატანა, რომ ეგონა. 419 00:17:17,660 --> 00:17:20,560 თუ ეს მაინც აწუხებს ზე ბოლოს, მოვა გაიგო ჩვენგანი. 420 00:17:20,560 --> 00:17:23,380 >> ასე რომ, ეს გააკეთოს ზუსტად იგივე რამ. 421 00:17:23,380 --> 00:17:25,579 ჩვენ უბრალოდ გვიჩვენებს, თუ ორი სხვადასხვა გზა ამის გაკეთება. 422 00:17:25,579 --> 00:17:29,470 სტუდენტი 1 არის მაჩვენებელი, ამიტომ თქვენ შეგიძლიათ თქვათ სახელი ელემენტს 423 00:17:29,470 --> 00:17:30,960 ფარგლებში struct ისარი. 424 00:17:30,960 --> 00:17:36,440 ან შეგიძლიათ dereference თქვენი მაჩვენებელი და შემდეგ შედიხართ, როგორც თქვენ ჩვეულებრივ აკეთებთ. 425 00:17:36,440 --> 00:17:38,430 ამჯამად რომ აზრი ყველა ერთი? 426 00:17:38,430 --> 00:17:39,480 427 00:17:39,480 --> 00:17:43,890 თუ მთელი მაჩვენებელი რამ ცოტა გაუგებარია, Gabe ისაუბრებენ, რომ, 428 00:17:43,890 --> 00:17:45,740 და მაშინ იქნებ ეს გახდის უფრო გრძნობა. 429 00:17:45,740 --> 00:17:46,240 დიახ? 430 00:17:46,240 --> 00:17:48,387 >> სტუდენტი: დიახ, ასე როგორ არის ეს განსხვავდება? 431 00:17:48,387 --> 00:17:49,470 ALLISON: წინა? 432 00:17:49,470 --> 00:17:52,330 ასე რომ, სტუდენტი 1 ამ საქმე არ არის მაჩვენებელი. 433 00:17:52,330 --> 00:17:54,380 ეს მხოლოდ თქვენი ფაქტობრივი struct. 434 00:17:54,380 --> 00:17:55,400 >> სტუდენტი: OK. 435 00:17:55,400 --> 00:17:57,645 >> ALLISON: ვინაიდან ეს ერთი მომცეთ struct. 436 00:17:57,645 --> 00:17:58,910 437 00:17:58,910 --> 00:18:02,060 >> სტუდენტი: OK, მაგრამ ეს ერთგვარი დასრულდება მუშაობა იმავე [INAUDIBLE]. 438 00:18:02,060 --> 00:18:03,310 >> ALLISON: ეს ეფექტურად მუშაობს იგივე. 439 00:18:03,310 --> 00:18:04,560 თქვენი სინტაქსი არის უბრალოდ სხვადასხვა. 440 00:18:04,560 --> 00:18:05,185 სტუდენტი: OK. 441 00:18:05,185 --> 00:18:07,600 >> ALLISON: Yeah, ისინი ეფექტურად იგივე. 442 00:18:07,600 --> 00:18:11,321 უბრალოდ დამოკიდებულია კონტექსტში, შეგიძლიათ ერთი მეტი სხვა. 443 00:18:11,321 --> 00:18:11,820 დიახ? 444 00:18:11,820 --> 00:18:13,956 >> სტუდენტი: როცა მითითება 1-- 445 00:18:13,956 --> 00:18:14,580 ALLISON: Mm-hm? 446 00:18:14,580 --> 00:18:16,880 სტუდენტი: რატომ ფრჩხილებში? 447 00:18:16,880 --> 00:18:19,575 ALLISON: იმის გამო, სტუდენტი 1 არის მაჩვენებელი. 448 00:18:19,575 --> 00:18:22,200 ასე, რომ თქვენ უნდა დავრწმუნდეთ, რომ თქვენ მხოლოდ dereferencing მაჩვენებელი. 449 00:18:22,200 --> 00:18:23,380 >> სტუდენტი: OK. 450 00:18:23,380 --> 00:18:26,700 >> ALLISON: ასე რომ, ამ შემთხვევაში აქ, ფრჩხილებში გარშემო 451 00:18:26,700 --> 00:18:29,875 იმას ნიშნავს, თქვენ dereferencing სტუდენტი 1. 452 00:18:29,875 --> 00:18:35,390 ასე რომ, თქვენ აპირებს, სადაც სტუდენტი 1 რაოდენობა, რომელიც არის თქვენი struct. 453 00:18:35,390 --> 00:18:38,010 ახლა თქვენ შეგიძლიათ ვფიქრობ, მას, როგორც, რომ struct, 454 00:18:38,010 --> 00:18:39,785 ამიტომ ჩვენ შეგვიძლია გამოვიყენოთ ჩვენი ნორმალური dot ოპერაცია. 455 00:18:39,785 --> 00:18:42,752 456 00:18:42,752 --> 00:18:43,585 ნებისმიერი სხვა კითხვები? 457 00:18:43,585 --> 00:18:45,840 458 00:18:45,840 --> 00:18:48,120 მაგარი, გასაოცარია. 459 00:18:48,120 --> 00:18:51,359 >> ასე რომ, ბოლო რამ, ვფიქრობ, ეს არის ჩემი ბოლო slide, woo! 460 00:18:51,359 --> 00:18:52,775 OK, ასე რომ მცურავი პუნქტიანი ორაზროვნება. 461 00:18:52,775 --> 00:18:54,090 462 00:18:54,090 --> 00:18:56,820 ჩვენ მოკლედ ვისაუბრეთ ამ დროს ლექციას. 463 00:18:56,820 --> 00:19:00,030 ძირითადად, ჩვენ გვაქვს უსასრულოდ ბევრი რეალური ციფრები. 464 00:19:00,030 --> 00:19:02,237 და თუ თქვენ ბიჭები მიყვარს მათემატიკის, არსებობს 465 00:19:02,237 --> 00:19:03,570 ყველა სახის cool პერსონალის ჩვენთან ერთად. 466 00:19:03,570 --> 00:19:05,010 467 00:19:05,010 --> 00:19:07,190 >> მაგრამ არსებობს უსასრულოდ მრავალი რეალური ნომრები. 468 00:19:07,190 --> 00:19:09,850 მაგრამ ისინი მხოლოდ სასრულ ბევრი ბიტი, რომ ჩვენ გვაქვს. 469 00:19:09,850 --> 00:19:13,240 ასე რომ თქვენ ყოველთვის აპირებს აქვს ორაზროვნება, არის ყველა. 470 00:19:13,240 --> 00:19:16,269 და ეს რომ მხოლოდ სახის რაღაც თქვენ უნდა იცოდეს. 471 00:19:16,269 --> 00:19:19,060 რომ ისევე, როგორც ჩვენ შეიძლება გთხოვოთ, რატომ მცურავი პუნქტიანი ორაზროვნება არსებობს? 472 00:19:19,060 --> 00:19:20,004 473 00:19:20,004 --> 00:19:21,420 ასე რომ მხოლოდ ის, რომ თქვენ უნდა იცოდეს. 474 00:19:21,420 --> 00:19:23,770 და რომ, მე გარდამტეხი მას მეტი პოინტერები. 475 00:19:23,770 --> 00:19:27,720 476 00:19:27,720 --> 00:19:28,520 >> Binky: Hello, ბიჭები. 477 00:19:28,520 --> 00:19:29,616 ჩემი სახელის Binky. 478 00:19:29,616 --> 00:19:30,990 მე ვაპირებ ვისაუბროთ პოინტერები. 479 00:19:30,990 --> 00:19:33,247 480 00:19:33,247 --> 00:19:35,830 ჰო, ისე, მითითებას, ფაქტობრივად, ჩემი საყვარელი ნაწილი ამ კურსს. 481 00:19:35,830 --> 00:19:39,740 ასე რომ მხოლოდ ნათელი, თუ რა Allison იყო საუბარი აქ, ასე რომ მიზეზი 482 00:19:39,740 --> 00:19:43,810 why-- ერთადერთი განსხვავება აქ, დიდი განსხვავება იყო გზა 483 00:19:43,810 --> 00:19:44,760 ჩვენ ვაცხადებთ რამ. 484 00:19:44,760 --> 00:19:47,560 ასე სტუდენტი ვარსკვლავი ნიშნავს ეს მომცეთ სტუდენტი. 485 00:19:47,560 --> 00:19:52,960 იმის გამო, რომ slide ადრე, სტუდენტი ფაქტობრივი struct, ფაქტობრივი სტუდენტი, 486 00:19:52,960 --> 00:19:54,400 შეიცავს იმ რამ. 487 00:19:54,400 --> 00:19:57,050 >> და მიზეზი, რის გამოც მინდა, რომელთა მიზანია: დიახ, Davin? 488 00:19:57,050 --> 00:19:58,630 >> Davin: რას arrow ნიშნავს? 489 00:19:58,630 --> 00:20:04,240 >> Binky: ისრიანი საშუალებით ზუსტად ისევე, როგორც ეს. 490 00:20:04,240 --> 00:20:06,150 ასე, რომ თქვენ ნამდვილად არ უნდა ისარი. 491 00:20:06,150 --> 00:20:11,060 როგორიცაა, თუ თქვენ მხოლოდ პროგრამა C, თქვენ შეგიძლიათ გამოიყენოთ ეს. 492 00:20:11,060 --> 00:20:12,850 უკაცრავად, მე არ რა, რომ არის. 493 00:20:12,850 --> 00:20:14,920 თქვენ შეგიძლიათ გამოიყენოთ ეს სინტაქსი. 494 00:20:14,920 --> 00:20:17,430 >> მაგრამ ზოგიერთი ადამიანი, როდესაც ისინი შექმნასა C, 495 00:20:17,430 --> 00:20:19,870 მათ figured, რომ ადამიანი გამოიყენება, რომ სინტაქსი იმდენად, 496 00:20:19,870 --> 00:20:23,970 რომ მიყვარს მხოლოდ ამუშავება ერთად სინტაქსის სტრუქტურა იგი. 497 00:20:23,970 --> 00:20:26,820 და ეს მოხდა სახით ამ arrow. 498 00:20:26,820 --> 00:20:29,210 და ეს მართლაც კარგია, რადგან ის განასახიერებს რაიმე 499 00:20:29,210 --> 00:20:33,670 როგორც ჩვენ რეალურად შემდეგ ეს ისარი, ეს მაჩვენებელი, 500 00:20:33,670 --> 00:20:35,300 მიმართ გარკვეული სივრცეში მეხსიერებაში. 501 00:20:35,300 --> 00:20:40,410 და როდესაც ჩვენ იქ, ჩვენ გვინდა გამოიყურება სახელი, რომ სტუდენტი, 502 00:20:40,410 --> 00:20:42,150 თუ ეს აზრი. 503 00:20:42,150 --> 00:20:43,000 OK? 504 00:20:43,000 --> 00:20:44,290 >> ასე რომ, ეს არის ზუსტად იგივე. 505 00:20:44,290 --> 00:20:46,310 ეს არის ზუსტად იგივე, როგორც ეს. 506 00:20:46,310 --> 00:20:48,130 ისინი შედგენილი ზუსტად იგივე, OK? 507 00:20:48,130 --> 00:20:50,100 508 00:20:50,100 --> 00:20:55,580 და მიზეზი აქ რატომ ჩვენ malloc რაღაც, იმიტომ რომ ამ შემთხვევაში, 509 00:20:55,580 --> 00:20:59,120 ჩვენი ცვლადი რეალურად მხოლოდ კურსორი ცვლადი. 510 00:20:59,120 --> 00:21:02,900 ასე რომ, ჩვენ მხოლოდ გარკვეული სივრცე მეხსიერება, რომელიც მართავს მაჩვენებელი. 511 00:21:02,900 --> 00:21:06,570 ჩვენ ნამდვილად არ აქვს რაიმე სივრცე რომელიც ფლობს რეალურ struct. 512 00:21:06,570 --> 00:21:08,660 >> ასე რომ, ეს უნდა გაკეთდეს ორ ეტაპად. 513 00:21:08,660 --> 00:21:11,545 ჩვენ უნდა შევქმნათ მეხსიერების დააყენოს struct in. 514 00:21:11,545 --> 00:21:14,445 და ჩვენ უნდა შევქმნათ მეხსიერების დააყენოს კურსორი. 515 00:21:14,445 --> 00:21:16,570 ასე რომ, ისინი ძირითადად ორი სხვადასხვა ცვლადები, აქ. 516 00:21:16,570 --> 00:21:19,730 ერთ-ერთი მათგანი ტიპის სტუდენტი, გარდა ამისა, ეს ნამდვილად არ აქვს სახელი. 517 00:21:19,730 --> 00:21:21,900 და მეორე არის ტიპის სტუდენტი ვარსკვლავი. 518 00:21:21,900 --> 00:21:24,900 და მაშინ სტუდენტი 1 რაოდენობა არსებობს, თუ ეს აზრი. 519 00:21:24,900 --> 00:21:25,871 520 00:21:25,871 --> 00:21:26,370 OK? 521 00:21:26,370 --> 00:21:28,160 522 00:21:28,160 --> 00:21:31,860 >> ასე რომ, მიზეზი, რის გამოც ჩვენ ვიყენებთ მითითებები არის, რადგან ყველაფერი 523 00:21:31,860 --> 00:21:35,510 კომპიუტერი, ყველა ცვლადის კომპიუტერი აქვს ორი რამ. 524 00:21:35,510 --> 00:21:36,580 მას აქვს თავისი ღირებულება. 525 00:21:36,580 --> 00:21:38,420 და მას აქვს მისამართზე. 526 00:21:38,420 --> 00:21:41,390 და კარგი გზა კონცეფცია, რომ ეს არ არსებობს 527 00:21:41,390 --> 00:21:44,230 ბევრი პრობლემა, როდესაც თქვენ ცდილობენ გამოიყენონ ფუნქციები. 528 00:21:44,230 --> 00:21:47,200 და ჩვენ ვაპირებთ ცდილობენ შეისწავლის იმ. 529 00:21:47,200 --> 00:21:50,370 კერძოდ, ის აპირებს ვფიქრობ, მეხსიერებაში, ყუთები. 530 00:21:50,370 --> 00:21:52,810 >> თქვენ ყოველთვის ვფიქრობდი, რომ ცვლადები როცა ამბობენ, რომ na შეადგენს 5. 531 00:21:52,810 --> 00:21:54,430 თქვენ ვფიქრობ აყენებს 5 შევიდა ყუთი. 532 00:21:54,430 --> 00:21:55,520 533 00:21:55,520 --> 00:22:00,030 მერე რა, რომ გსურთ გაივლის რომ int შევიდა ფუნქცია? 534 00:22:00,030 --> 00:22:03,230 უბრალოდ გაივლის მე არ იცით x შევიდა ფუნქცია. 535 00:22:03,230 --> 00:22:06,090 მაგრამ რა ხდება, ჩვეულებრივ, როგორც ადამიანები, თქვენ 536 00:22:06,090 --> 00:22:09,050 ვფიქრობ, რომ მსგავსი რამ მე ვარ გავლის ყუთი პირი. 537 00:22:09,050 --> 00:22:12,070 და ეს ნამდვილად არ მოხდეს კომპიუტერები. 538 00:22:12,070 --> 00:22:17,770 რა ხდება არის ის ასლი ღირებულება ყუთი პირის ყუთში. 539 00:22:17,770 --> 00:22:22,440 >> ასე რომ, რა ვცდილობ ვთქვა, რომ თუ თქვენ გაქვთ ფუნქცია ბოდიში აქ 540 00:22:22,440 --> 00:22:27,700 თუ ჩვენ გვაქვს ფუნქცია, როგორიცაა ხუთ up არსებობს, თუ თქვენ ცდილობენ გაივლის ცვლადი, 541 00:22:27,700 --> 00:22:29,450 ეს მხოლოდ აპირებს. 542 00:22:29,450 --> 00:22:35,771 თუ ინიციალიზაცია nx უდრის 3-ის აპირებს კოპირება ამ ღირებულების მდე ცვლადი 543 00:22:35,771 --> 00:22:36,270 იქ. 544 00:22:36,270 --> 00:22:37,005 545 00:22:37,005 --> 00:22:39,630 OK, და ეს არის ერთგვარი მიზეზი ამიტომ, ჩვენ გვინდა გამოვიყენოთ პოინტერები. 546 00:22:39,630 --> 00:22:42,550 ნაცვლად იმისა, რომ რაც მხოლოდ ღირებულება, 547 00:22:42,550 --> 00:22:44,850 ნაცვლად მხოლოდ გავლით მხოლოდ ღირებულება ფუნქცია, 548 00:22:44,850 --> 00:22:46,530 ჩვენ გვინდა, რომ გაივლის მიერ მინიშნება. 549 00:22:46,530 --> 00:22:50,630 რაც ჩვენ მოვუწოდებთ გაივლით მიერ მინიშნება არის სახის გაცემის ყუთი ფუნქცია, 550 00:22:50,630 --> 00:22:53,890 ასე რომ ფუნქცია შეიძლება ასევე შეცვლა ღირებულებების ყუთში. 551 00:22:53,890 --> 00:22:57,280 >> OK, ასე რომ მხოლოდ რამდენიმე ძირითადი მაჩვენებელი პერსონალის შექმნა მითითებას, 552 00:22:57,280 --> 00:23:00,300 უბრალოდ განაცხადოს ის ტიპი და თქვენ დააყენა ვარსკვლავს უფლება მას შემდეგ. 553 00:23:00,300 --> 00:23:02,307 და ტიპის მხოლოდ რა თქვენ მიუთითებს. 554 00:23:02,307 --> 00:23:04,390 ასე რომ, თუ ეს int ვარსკვლავი, თქვენ მიუთითებს int. 555 00:23:04,390 --> 00:23:05,940 თუ ეს char ვარსკვლავი, თქვენ მიუთითებს სქემა. 556 00:23:05,940 --> 00:23:07,790 და თუ ეს სტუდენტი ვარსკვლავი, თქვენ მიუთითებს სტუდენტი. 557 00:23:07,790 --> 00:23:08,770 OK? 558 00:23:08,770 --> 00:23:10,510 >> და ისინი ყველა 4 ბაიტი ხანგრძლივი. 559 00:23:10,510 --> 00:23:13,010 იმიტომ, რომ ეს ცვლადი ის ფაქტობრივად არ 560 00:23:13,010 --> 00:23:15,380 უნდა გამართოს char, int, ან სტუდენტი. 561 00:23:15,380 --> 00:23:16,890 ეს მხოლოდ სჭირდება გამართავს მისამართზე. 562 00:23:16,890 --> 00:23:21,390 სწორედ ამიტომ, ისინი ყველა 4 ბაიტი ხანგრძლივი ნორმალური 32-bit მანქანა. 563 00:23:21,390 --> 00:23:21,890 OK? 564 00:23:21,890 --> 00:23:25,600 ასე რომ, აქ, x არის ცვლადი, რომელიც მიუთითებს int. y რაოდენობა char. z რაოდენობა 565 00:23:25,600 --> 00:23:26,580 float. 566 00:23:26,580 --> 00:23:27,480 რაიმე შეკითხვები აქ? 567 00:23:27,480 --> 00:23:29,841 568 00:23:29,841 --> 00:23:30,340 ზემოთ. 569 00:23:30,340 --> 00:23:32,550 არსებობს ორი სხვადასხვა სიმბოლოები აქვთ 570 00:23:32,550 --> 00:23:34,341 უნდა გვახსოვდეს, როდესაც მოდის მაჩვენებელი. 571 00:23:34,341 --> 00:23:36,540 ასე მითითება და dereferencing არის დიდი მიიჩნიეს. 572 00:23:36,540 --> 00:23:38,100 573 00:23:38,100 --> 00:23:41,602 ამიტომ ampersand საქართველოს ცვლადის სახელი გაძლევთ? 574 00:23:41,602 --> 00:23:42,310 სტუდენტი: მისამართი. 575 00:23:42,310 --> 00:23:43,380 Binky მისამართი. 576 00:23:43,380 --> 00:23:47,330 ასე რომ, თუ თქვენ განაცხადოს int უდრის 5, მაშინ ampersand 577 00:23:47,330 --> 00:23:49,214 ერთი აპირებს მოგცემთ მისამართზე. 578 00:23:49,214 --> 00:23:51,130 და თქვენ შეგიძლიათ რეალურად ცდილობენ ბეჭდვა და ვნახოთ 579 00:23:51,130 --> 00:23:54,640 რა მისამართზე მეხსიერება თქვენი ცვლადის აქვს. 580 00:23:54,640 --> 00:23:57,380 და შემდეგ dereferencing-- ისე, რომ მითითება, 581 00:23:57,380 --> 00:24:00,380 მიღების address-- dereferencing ზუსტი საპირისპირო. 582 00:24:00,380 --> 00:24:04,120 OK, ისევე, როგორც ჯერ არის საპირისპირო განყოფილება, 583 00:24:04,120 --> 00:24:06,060 ვარსკვლავი საპირისპირო ampersand. 584 00:24:06,060 --> 00:24:09,710 ამიტომ dereferencing ნიშნავს წავალთ. 585 00:24:09,710 --> 00:24:14,280 ასე რომ, თუ თქვენ მისცეს star-- I არ ვიცი 50, რომ 586 00:24:14,280 --> 00:24:20,320 ვაპირებ ცდილობენ წასვლა მისამართი ნომერი 50 შიგნით თქვენი კომპიუტერი. 587 00:24:20,320 --> 00:24:22,840 OK, და რატომ ვხედავთ რომ ისინი განსხვავდებიან? 588 00:24:22,840 --> 00:24:27,320 იმის გამო, რა მოხდება, თუ თქვენ აკეთებთ რაღაც მსგავსი ვარსკვლავი ampersand? 589 00:24:27,320 --> 00:24:28,470 590 00:24:28,470 --> 00:24:33,460 ასევე, ampersand გაძლევთ მისამართი ცვლადი, მისამართი. 591 00:24:33,460 --> 00:24:35,830 მაგრამ ვარსკვლავი ნიშნავს იქ. 592 00:24:35,830 --> 00:24:38,930 >> რა მოხდება, თუ თქვენ წასვლა მისამართი? 593 00:24:38,930 --> 00:24:40,400 თქვენ უბრალოდ უნდა, არა? 594 00:24:40,400 --> 00:24:41,410 595 00:24:41,410 --> 00:24:43,600 ასე აპირებს მისამართი არის იგივე როგორც. 596 00:24:43,600 --> 00:24:47,580 სწორედ ამიტომ, ისინი, როგორც წესი, მოხსენიებული იგივე ეს 597 00:24:47,580 --> 00:24:50,480 და ეს არის მოხსენიებული, საპირისპირო ოპერატორები. 598 00:24:50,480 --> 00:24:50,980 OK? 599 00:24:50,980 --> 00:24:52,780 600 00:24:52,780 --> 00:24:53,790 ისე მაგარი. 601 00:24:53,790 --> 00:24:57,240 >> ქვეშ Hood, მაგალითად, თუ ჩვენ ვაცხადებთ int x უდრის 5, 602 00:24:57,240 --> 00:24:58,040 ჩვენ გვაქვს ცვლადი. 603 00:24:58,040 --> 00:25:00,790 და მახსოვს, რომ მე ვთქვი ყველა ცვლადი და ეს კარგია 604 00:25:00,790 --> 00:25:03,820 შენარჩუნება mind-- მას აქვს ორი სხვადასხვა რამ უკავშირდება. 605 00:25:03,820 --> 00:25:06,460 მას აქვს მიმართა და მნიშვნელობა. 606 00:25:06,460 --> 00:25:07,140 OK? 607 00:25:07,140 --> 00:25:09,180 >> ასე რომ, არც ამ შემთხვევაში არის 5. 608 00:25:09,180 --> 00:25:12,140 და მისამართი is-- ვთქვათ, მე ვარ მიღების რაღაც up-- ეს 0x04. 609 00:25:12,140 --> 00:25:13,180 610 00:25:13,180 --> 00:25:17,200 და ერთადერთი მიზეზი, რის გამოც ჩვენ, როგორც წესი, წარმოადგენს მისამართები თექვსმეტობითი 611 00:25:17,200 --> 00:25:19,770 არის ერთი, რადგან ეს როგორც კარგი. 612 00:25:19,770 --> 00:25:21,600 ეს კარგად ორობითი. 613 00:25:21,600 --> 00:25:23,500 ეს ადვილი დააკონვერტიროთ და ორობითი. 614 00:25:23,500 --> 00:25:26,890 და ეს არ მიიღოთ ძალიან დიდი თუ თქვენ გაქვთ ძალიან დიდი რაოდენობით. 615 00:25:26,890 --> 00:25:29,990 ასე რომ, ჩვენ გვსურს გამოვიყენოთ თექვსმეტობითი ბეჭდვის მისამართები. 616 00:25:29,990 --> 00:25:31,890 მაგრამ მე ვერ წარმოადგენს როგორც მთელი რიცხვი. 617 00:25:31,890 --> 00:25:32,750 ეს ჯარიმა. 618 00:25:32,750 --> 00:25:35,450 >> და ასე აქვს მისამართი 4 და ღირებულება 5. 619 00:25:35,450 --> 00:25:38,080 და მე ვთქვი მაშინ int ვარსკვლავი მაჩვენებელი. 620 00:25:38,080 --> 00:25:40,070 ასე რომ, ეს არის სხვადასხვა ტიპის, ცნობა. 621 00:25:40,070 --> 00:25:43,220 Int ვარსკვლავი მაჩვენებელი შეადგენს მისამართი x. 622 00:25:43,220 --> 00:25:46,425 ასე რომ, რა იქნება ღირებულება ptr? 623 00:25:46,425 --> 00:25:47,710 624 00:25:47,710 --> 00:25:51,600 ეს იქნება მისამართი x, ქვემოთ აქ. 625 00:25:51,600 --> 00:25:54,190 OK, ასე რომ, არც აპირებს იყოს იგივე, რაც მისამართზე. 626 00:25:54,190 --> 00:25:56,130 ეს არის ის დავალება მოქმედებს ვაკეთებ. 627 00:25:56,130 --> 00:25:59,380 და შემდეგ ptr აპირებს საკუთარი მისამართი, რომელიც თურმე, 628 00:25:59,380 --> 00:26:02,050 ამ შემთხვევაში, მე -8, OK? 629 00:26:02,050 --> 00:26:03,850 630 00:26:03,850 --> 00:26:05,900 >> და მერე შექმნა ახალი რიცხვი ასლი. 631 00:26:05,900 --> 00:26:08,790 და ვამბობ, რომ int ასლი ტოლია წასასვლელად. 632 00:26:08,790 --> 00:26:11,140 ასე რომ, რა ptr მიუთითებს. 633 00:26:11,140 --> 00:26:13,940 ისე, რა ამ ptr აქვს? 634 00:26:13,940 --> 00:26:14,740 Ptr აქვს 0x04. 635 00:26:14,740 --> 00:26:16,060 636 00:26:16,060 --> 00:26:18,400 რა მოხდება, თუ მე ვცდილობ იქ? 637 00:26:18,400 --> 00:26:23,650 მე ნახავთ ბიჭი, რომელსაც აქვს მისამართი x და ვინ მისამართზე 4. 638 00:26:23,650 --> 00:26:25,970 და ვინ ოთხ არის x. 639 00:26:25,970 --> 00:26:26,950 ამჯამად რომ აზრი? 640 00:26:26,950 --> 00:26:28,295 641 00:26:28,295 --> 00:26:28,795 დიახ? 642 00:26:28,795 --> 00:26:32,060 >> სტუდენტი: In ამ შემთხვევაში, მაჩვენებელი დასტის? 643 00:26:32,060 --> 00:26:36,024 >> Binky: ამ შემთხვევაში, it's-- კარგი კითხვა. 644 00:26:36,024 --> 00:26:38,690 მე არ მგონია, რომ ამ როდესაც შედგენა ამ მისამართებზე. 645 00:26:38,690 --> 00:26:42,570 მაგრამ თუ ეს, ისევე, როგორც, ყველა ეს არის ადგილობრივი ცვლადები, 646 00:26:42,570 --> 00:26:46,372 მაშინ x აპირებს ცხოვრობენ in-- ყველაფერი აპირებს ცხოვრობენ Stack. 647 00:26:46,372 --> 00:26:48,330 ასე რომ ყველაფერი ხდება მიუთითებს დააწყობს. 648 00:26:48,330 --> 00:26:49,360 649 00:26:49,360 --> 00:26:52,700 თქვენ მხოლოდ უნდა ბევრი, როდესაც თქვენ დაიწყება გამოიყენოს malloc, არა? 650 00:26:52,700 --> 00:26:59,430 >> ასე რომ, თუ გახსოვთ, დასტის არის ყველა დროის რეკავთ ფუნქცია თქვენს პროგრამაში, 651 00:26:59,430 --> 00:27:02,800 ისევე, როგორც, მთავარ მაგალითად, ან ნებისმიერი სხვა ფუნქცია, როგორიცაა printf. 652 00:27:02,800 --> 00:27:06,334 ყველა ადგილობრივი ცვლადები აპირებს დააყენოს დასტის ჩარჩო. 653 00:27:06,334 --> 00:27:08,500 და ისინი აპირებენ მიიღონ როგორიცაა დაგროვილი Stack. 654 00:27:08,500 --> 00:27:09,930 ეს არის ის, რასაც Stack. 655 00:27:09,930 --> 00:27:12,200 და ყველა იმ ადგილობრივი ცვლადები ვაპირებთ, რომ არსებობს. 656 00:27:12,200 --> 00:27:14,940 და heap-- და ჩვენ ვაპირებთ გაიგო მეტი ამ later-- 657 00:27:14,940 --> 00:27:19,050 ბევრი არის, სადაც ყველა დინამიურად გამოყოფილი მეხსიერება ცხოვრებაში. 658 00:27:19,050 --> 00:27:20,270 მაგარი? 659 00:27:20,270 --> 00:27:21,680 >> ჩვენ მივდივართ ამ slide. 660 00:27:21,680 --> 00:27:22,800 დიახ? 661 00:27:22,800 --> 00:27:25,490 >> სტუდენტი: რატომ არ არის int გადაწერეთ დაბრუნების 0x04? 662 00:27:25,490 --> 00:27:27,870 663 00:27:27,870 --> 00:27:30,066 >> Binky: რატომ არ არის int გადაწერეთ დაბრუნების 0x04? 664 00:27:30,066 --> 00:27:32,450 >> სტუდენტი: რატომ არ არის, რომ [INAUDIBLE]? 665 00:27:32,450 --> 00:27:35,530 >> Binky: იმის გამო, თუ რა არის ღირებულება ptr? 666 00:27:35,530 --> 00:27:37,394 667 00:27:37,394 --> 00:27:38,370 >> სტუდენტი: 0x04. 668 00:27:38,370 --> 00:27:38,960 >> Binky: 0x04. 669 00:27:38,960 --> 00:27:40,910 რა მოხდება, თუ თქვენ გადასვლა 0x04? 670 00:27:40,910 --> 00:27:41,620 რას იღებთ? 671 00:27:41,620 --> 00:27:42,371 >> სტუდენტი: Oh, OK. 672 00:27:42,371 --> 00:27:42,995 Binky ხედავთ? 673 00:27:42,995 --> 00:27:43,536 სტუდენტი: დიახ. 674 00:27:43,536 --> 00:27:44,890 Binky: ასე რომ თქვენ 5. 675 00:27:44,890 --> 00:27:49,170 ასე ასლი აპირებს 5, თუ ეს აზრი. 676 00:27:49,170 --> 00:27:49,809 დიახ? 677 00:27:49,809 --> 00:27:52,803 >> სტუდენტი: იქნებ ჩვენ მიღებული 5 ღირებულება ყუთი [INAUDIBLE] 678 00:27:52,803 --> 00:27:55,300 თუ ჩვენ int ასლი [INAUDIBLE]. 679 00:27:55,300 --> 00:27:56,710 >> Binky: გაკეთება int ჩვენ გვინდა, yeah. 680 00:27:56,710 --> 00:27:59,080 რომ არ კეთდება საკმაოდ ბევრი იგივე. 681 00:27:59,080 --> 00:28:02,080 მაგრამ ეს გზა, ჩვენ შეგვიძლია გაივლის მიმართოს ფუნქციები. 682 00:28:02,080 --> 00:28:05,050 და ეს მაგარი რამ ჩვენ ვაპირებთ, რომ ახლა. 683 00:28:05,050 --> 00:28:06,770 684 00:28:06,770 --> 00:28:13,090 >> ასე რომ, ეს სახის სწავლება ყოველთვის მოდის მდე on-- ძალიან ჩვეულებრივ ჩნდება შესახებ ვიქტორინებში. 685 00:28:13,090 --> 00:28:15,870 ასე რომ ეს ნამდვილად კარგი ცდილობენ გავაკეთოთ, რომ მსგავსი რამ თავს. 686 00:28:15,870 --> 00:28:21,210 ამიტომ ცდილობენ შენარჩუნება სიმღერა, თუ რა მისამართი და მინდა, რომ ღირებულებებს ცვლადები 687 00:28:21,210 --> 00:28:22,620 ყოველ ეტაპზე. 688 00:28:22,620 --> 00:28:24,370 ასე რომ, ეს არის ზუსტად ის, ის, რასაც ჩვენ ვაპირებთ, რომ გავაკეთოთ. 689 00:28:24,370 --> 00:28:26,988 აქ, ჩვენ გვაქვს ნაბიჯები, ერთი, ორი, სამი, ოთხი, ხუთი. 690 00:28:26,988 --> 00:28:30,530 ერთი, ორი, სამი, ოთხი, ხუთი. 691 00:28:30,530 --> 00:28:33,330 და ჩვენ ვაპირებთ, რომ შევინარჩუნოთ სიმღერა ღირებულებები x და. 692 00:28:33,330 --> 00:28:34,650 693 00:28:34,650 --> 00:28:40,530 >> ასე, თუ რას აკეთებს, თუ ეს buggy კოდი, ჩვენ ვცდილობთ გავაკეთოთ ხუთ. 694 00:28:40,530 --> 00:28:43,610 ამიტომ, ჩვენ ვცდილობთ მიიღონ ცვლადი და შეცვალოს მისი ღირებულება 5. 695 00:28:43,610 --> 00:28:44,630 696 00:28:44,630 --> 00:28:49,900 და მახსოვს ჩემი ანალოგია, რომელსაც ყუთი და გადაცემის ყუთი ვინმე? 697 00:28:49,900 --> 00:28:51,515 ასე რომ მთავარ აქვს ამ ყუთში მოუწოდა x. 698 00:28:51,515 --> 00:28:52,570 699 00:28:52,570 --> 00:28:54,170 და შეიცავს ღირებულება 3. 700 00:28:54,170 --> 00:28:55,230 701 00:28:55,230 --> 00:28:57,455 და ვცდილობ გადასცემს ეს ყუთი ხუთ. 702 00:28:57,455 --> 00:28:58,560 703 00:28:58,560 --> 00:29:01,510 >> და მინდა ხუთი შეცვალოს ღირებულება ამ ყუთში 5. 704 00:29:01,510 --> 00:29:03,080 705 00:29:03,080 --> 00:29:05,120 და მაშინ მე უბრალოდ ბეჭდვა ღირებულება x. 706 00:29:05,120 --> 00:29:06,475 707 00:29:06,475 --> 00:29:08,850 ეს არის ის, რაც ჩემი ფუნქცია ეს არის ის, რაც მე ცდილობს. 708 00:29:08,850 --> 00:29:12,450 მე უბრალოდ ცდილობს განაახლოს ღირებულება x 5. 709 00:29:12,450 --> 00:29:13,512 710 00:29:13,512 --> 00:29:14,970 ეს არის ნათელი, თუ რა ფუნქცია აქვს? 711 00:29:14,970 --> 00:29:16,210 712 00:29:16,210 --> 00:29:21,440 >> OK, ასე რომ, რას აპირებს იყოს ღირებულებებს x და სწორედ აქ, 713 00:29:21,440 --> 00:29:27,734 პირველ ზოლში, უფლება ადრე პირველი ხაზი მინდა ვთქვა პროგრამა? 714 00:29:27,734 --> 00:29:28,940 >> STUDENT ალბათ ნაგავი. 715 00:29:28,940 --> 00:29:30,023 >> Binky: Just ნაგვის პერსონალი. 716 00:29:30,023 --> 00:29:32,590 ამიტომ მე მხოლოდ დააყენა N / A. ასე ჩვენ ნამდვილად არ ვიცი. 717 00:29:32,590 --> 00:29:37,400 მინდა, კი არ არსებობს, იმიტომ, რომ ჩვენ არ მოუწოდა ხუთ. 718 00:29:37,400 --> 00:29:38,980 Int არ გამოცხადდა. 719 00:29:38,980 --> 00:29:40,030 720 00:29:40,030 --> 00:29:42,920 და x აპირებს არსებობს აქ, მაგრამ ჩვენ ნამდვილად არ 721 00:29:42,920 --> 00:29:45,370 დანიშნული რაიმე ღირებულება, ასე რომ OK? 722 00:29:45,370 --> 00:29:46,570 723 00:29:46,570 --> 00:29:52,340 >> და მაშინ, რა იქნება ღირებულებებს x და ნომერი ორი? 724 00:29:52,340 --> 00:29:54,530 725 00:29:54,530 --> 00:29:55,410 >> სტუდენტი: [INAUDIBLE]. 726 00:29:55,410 --> 00:29:57,540 >> Binky: So x იქნება 3. 727 00:29:57,540 --> 00:29:59,650 რომ ადვილი, რადგან ჩვენ მინიჭების 3 მას. 728 00:29:59,650 --> 00:30:03,500 და კიდევ არ არსებობს იმიტომ, რომ უბრალოდ ცხოვრობს ხუთ. 729 00:30:03,500 --> 00:30:05,800 ამიტომ, მე ვაპირებ, რომ 3 და არაფერი. 730 00:30:05,800 --> 00:30:08,590 ან, როგორც ნაგვის, რასაც, ნამდვილად არ არის განსაზღვრული. 731 00:30:08,590 --> 00:30:11,640 732 00:30:11,640 --> 00:30:13,140 და ახლა, ეს არის მნიშვნელოვანი ხაზი. 733 00:30:13,140 --> 00:30:14,931 აქ, ჩვენ ვაპირებთ სინამდვილეში ხუთ. 734 00:30:14,931 --> 00:30:17,140 735 00:30:17,140 --> 00:30:18,680 და მახსოვს რა ვთქვი. 736 00:30:18,680 --> 00:30:20,240 ჩვენ არასდროს გაივლის ყუთში. 737 00:30:20,240 --> 00:30:23,110 ჩვენ უბრალოდ ასლი ღირებულება ყუთი ერთ ყუთში. 738 00:30:23,110 --> 00:30:27,000 რომ ყველა კომპიუტერი, ასლი ნივთები ერთი ადგილიდან მეორეზე. 739 00:30:27,000 --> 00:30:33,550 >> ასე რომ, ხუთი, რასაც ის რეალურად აკეთებს ეს არის ასლი ღირებულება x, რათა. 740 00:30:33,550 --> 00:30:35,130 ასე რომ, რა ხდება აქ? 741 00:30:35,130 --> 00:30:36,210 ღირებულებები x და. 742 00:30:36,210 --> 00:30:38,670 743 00:30:38,670 --> 00:30:43,360 3 და 3, ჩვენ უბრალოდ ასლი ეს მეტი x to a. 744 00:30:43,360 --> 00:30:44,710 745 00:30:44,710 --> 00:30:45,320 ზემოთ. 746 00:30:45,320 --> 00:30:46,140 >> ახლა ჩვენ აქ. 747 00:30:46,140 --> 00:30:47,610 748 00:30:47,610 --> 00:30:49,430 და ახლა ჩვენ ვაპირებთ განახლება შეადგენს 5. 749 00:30:49,430 --> 00:30:50,900 750 00:30:50,900 --> 00:30:53,070 რა მოხდება ხაზის ოთხი? 751 00:30:53,070 --> 00:30:55,120 752 00:30:55,120 --> 00:30:56,010 >> სტუდენტი: [INAUDIBLE]. 753 00:30:56,010 --> 00:30:59,685 >> Binky: იღებს განახლება, მაგრამ x ვერ განახლდა. 754 00:30:59,685 --> 00:31:02,050 755 00:31:02,050 --> 00:31:05,250 იმის გამო, რომ x ცხოვრობს მთავარი, ის სრულიად განსხვავებული ბლოკი მეხსიერება. 756 00:31:05,250 --> 00:31:06,970 ეს სხვადასხვა ცვლადი. 757 00:31:06,970 --> 00:31:07,900 არის კიდევ ერთი ცვლადი. 758 00:31:07,900 --> 00:31:10,000 ისინი არ უნდა ჰქონდეს იგივე ღირებულება იმიტომ, რომ მე 759 00:31:10,000 --> 00:31:13,980 გადაწერა დასრულდა ღირებულება x, რათა. 760 00:31:13,980 --> 00:31:20,070 მაგრამ ახლა, როცა მე უდრის 5, ნამდვილად არ მოქმედებს x არანაირად. 761 00:31:20,070 --> 00:31:21,450 ეს არის უფრო რთული ნაწილი. 762 00:31:21,450 --> 00:31:23,380 ის აზრი, რომ ყველას? 763 00:31:23,380 --> 00:31:24,093 დიახ? 764 00:31:24,093 --> 00:31:25,717 სტუდენტი: კიდევ ერთი შეკითხვა, თქვენ გაქვთ 3. 765 00:31:25,717 --> 00:31:27,741 რატომ არის already-- ო, არა, ეს 3. 766 00:31:27,741 --> 00:31:28,490 უკაცრავად, არასდროს არ იბადება. 767 00:31:28,490 --> 00:31:29,310 წავიკითხე 5. 768 00:31:29,310 --> 00:31:30,415 >> Binky: Yeah, 3, 3. 769 00:31:30,415 --> 00:31:31,540 >> სტუდენტი: [INAUDIBLE], yeah. 770 00:31:31,540 --> 00:31:35,290 Binky: და მერე მივუთითოთ 5 , მაგრამ ნამდვილად არ შეცვლის x. 771 00:31:35,290 --> 00:31:36,369 კარგი? 772 00:31:36,369 --> 00:31:36,910 სტუდენტი: დიახ. 773 00:31:36,910 --> 00:31:37,410 Binky: Yes? 774 00:31:37,410 --> 00:31:42,330 ახსნით ერთხელ, თუ როგორ იღებს გადაწერა [INAUDIBLE]? 775 00:31:42,330 --> 00:31:48,480 >> Binky: OK, ასე რომ, როდესაც თქვენ მოვუწოდებთ ხუთ x, ამიტომ ეს ხაზი კოდი აქ. 776 00:31:48,480 --> 00:31:50,100 777 00:31:50,100 --> 00:31:52,340 ხუთ x, რა არის x? 778 00:31:52,340 --> 00:31:55,160 779 00:31:55,160 --> 00:31:58,340 x არის 3, ამ ეტაპზე, არა? 780 00:31:58,340 --> 00:32:03,320 ასე, რომ თქვენ შეიძლება უბრალოდ ვფიქრობ აყენებს 3 აქ და ივიწყებს x. 781 00:32:03,320 --> 00:32:04,410 უბრალოდ დააყენა 3 აქ. 782 00:32:04,410 --> 00:32:10,880 როგორიცაა, ჩვენ ვაპირებთ, რომ გადაწერეთ ღირებულება x, რომ int რომ იქ. 783 00:32:10,880 --> 00:32:12,310 784 00:32:12,310 --> 00:32:13,630 OK? 785 00:32:13,630 --> 00:32:14,780 >> ასე რომ, ღირებულება x 3. 786 00:32:14,780 --> 00:32:17,680 ჩვენ ვაპირებთ, რომ ასლი 3 გადასცა. 787 00:32:17,680 --> 00:32:20,040 და ყველა ეს სხვა ბლოკი მეხსიერება, ეს სხვა ცვლადი 788 00:32:20,040 --> 00:32:22,640 მოუწოდა მოგიწევთ 3, ასევე. 789 00:32:22,640 --> 00:32:23,580 ამჯამად რომ აზრი? 790 00:32:23,580 --> 00:32:24,780 791 00:32:24,780 --> 00:32:25,794 დიახ? 792 00:32:25,794 --> 00:32:31,008 >> სტუდენტი: თუ თქვენ მისცეს ხუთ როგორიცაა აქვს ის, რაც მთელი x ნაცვლად, 793 00:32:31,008 --> 00:32:32,910 მინდა, რომ დაფიქსირება ყველაფერი? 794 00:32:32,910 --> 00:32:36,290 >> Binky: თუ ეს integer-- არა, რომ არ დაფიქსირება ყველაფერი. 795 00:32:36,290 --> 00:32:37,590 ასე რომ, ეს ძალიან კარგი კითხვაა. 796 00:32:37,590 --> 00:32:40,480 ეს ნამდვილად არ აქვს მნიშვნელობა, რა რეკავთ ცვლადები. 797 00:32:40,480 --> 00:32:44,510 კიდევ ერთხელ, ეს იქნება საკითხი ფარგლებს, იმიტომ, რომ ისინი არ არის იგივე x. 798 00:32:44,510 --> 00:32:46,526 ისინი სრულიად სხვადასხვა ფართების მეხსიერებაში. 799 00:32:46,526 --> 00:32:47,400 სტუდენტი: [INAUDIBLE]. 800 00:32:47,400 --> 00:32:49,020 Binky ასე რომ, ეს ნამდვილად არ აქვს მნიშვნელობა, რას მოვუწოდებთ მათ. 801 00:32:49,020 --> 00:32:50,480 რომ არ დაფიქსირება რამ, OK? 802 00:32:50,480 --> 00:32:53,390 803 00:32:53,390 --> 00:32:54,430 კიდევ შეკითხვები? 804 00:32:54,430 --> 00:32:55,762 დიახ? 805 00:32:55,762 --> 00:32:58,498 >> სტუდენტი: როგორ არის ის უკან ხუთი ნომერი [INAUDIBLE]? 806 00:32:58,498 --> 00:32:59,661 807 00:32:59,661 --> 00:33:01,160 Binky: OK, ჩვენ არ კეთდება, რომ ამჟამად. 808 00:33:01,160 --> 00:33:03,432 მოდით, ხუთი ნომერი, მაშინ. 809 00:33:03,432 --> 00:33:04,650 >> სტუდენტი: [INAUDIBLE]? 810 00:33:04,650 --> 00:33:05,565 >> Binky რა? 811 00:33:05,565 --> 00:33:08,179 >> სტუდენტი: თქვენ გაქვთ დაბრუნების ყველა? 812 00:33:08,179 --> 00:33:09,970 Binky: ჩვენ არ გვაქვს სანაცვლოდ, არა ძირითადი. 813 00:33:09,970 --> 00:33:12,940 მაგრამ მთავარ ანაზღაურება 0 ავტომატურად თუ არ დაბრუნდება არაფერი. 814 00:33:12,940 --> 00:33:14,400 815 00:33:14,400 --> 00:33:15,188 დიახ? 816 00:33:15,188 --> 00:33:22,658 >> სტუდენტი: იქნებ მიიღოს main-- ან შეიძლება თუ არა მიიღოს ხუთ სანაცვლოდ? 817 00:33:22,658 --> 00:33:24,170 818 00:33:24,170 --> 00:33:27,990 >> Binky: ჩვენ შეგვეძლო ხუთ დაბრუნდება, დიახ. 819 00:33:27,990 --> 00:33:32,527 მაგრამ მაშინ ჩვენ უნდა მივანიჭოთ x უდრის დაბრუნების ღირებულება ხუთ, 820 00:33:32,527 --> 00:33:34,360 რომელიც იქნება ოდნავ სხვადასხვა პროგრამა. 821 00:33:34,360 --> 00:33:35,440 ეს იმუშავებს. 822 00:33:35,440 --> 00:33:38,730 მაგრამ რაც ჩვენ გვინდა, რომ გავაკეთოთ, რა არის მოუწოდა ცვლილება რაღაც ადგილზე. 823 00:33:38,730 --> 00:33:41,690 ასე რომ, ჩვენ გვინდა, რომ რეალურად შეიცვალოს, რომ ყუთი და არ აღელვებს 824 00:33:41,690 --> 00:33:44,390 იმის გამო, დაბრუნდნენ ღირებულებები ან არაფერი. 825 00:33:44,390 --> 00:33:44,890 OK? 826 00:33:44,890 --> 00:33:46,490 827 00:33:46,490 --> 00:33:50,150 >> ეს ისევე, როგორც swap ფუნქცია დავით აჩვენა ლექცია, გარდა მე ვარ 828 00:33:50,150 --> 00:33:51,740 მხოლოდ საქმე ერთი ცვლადი. 829 00:33:51,740 --> 00:33:55,960 და მან გამოიყენა ორი, ასე int და ბ და მაშინ დროებითი ცვლადი და whatnot. 830 00:33:55,960 --> 00:33:57,020 OK? 831 00:33:57,020 --> 00:33:58,070 რა არის ბოლო ხაზი? 832 00:33:58,070 --> 00:34:04,400 მას შემდეგ, რაც ხუთ ბრუნდება, ის უბრალოდ აპირებს წავიდეს. 833 00:34:04,400 --> 00:34:06,120 834 00:34:06,120 --> 00:34:10,179 ჩვენ არ გვაქვს აღარ, და მხოლოდ x მაინც ცხოვრობს. 835 00:34:10,179 --> 00:34:12,130 >> და გამოიცანით რა? x არ შეცვლილა მისი ღირებულება, 836 00:34:12,130 --> 00:34:15,520 მას შემდეგ, რაც ყველა, რადგან ჩვენ მხოლოდ შეცვლის ღირებულება. 837 00:34:15,520 --> 00:34:17,370 სწორედ ამიტომ, x 3 იყო მთელი. 838 00:34:17,370 --> 00:34:17,870 OK? 839 00:34:17,870 --> 00:34:20,195 840 00:34:20,195 --> 00:34:21,130 კარგი. 841 00:34:21,130 --> 00:34:23,560 ასე რომ ეს პროგრამა არ მივაღწევთ იმას, რაც გვინდოდა. 842 00:34:23,560 --> 00:34:24,760 ახლა მოდით გაასწორონ ის. 843 00:34:24,760 --> 00:34:27,440 >> და გადავწყვიტოთ პროგრამა გამოყენებით პოინტერები. 844 00:34:27,440 --> 00:34:32,300 რას ვაკეთებთ ჩვენ გვაქვს სამი ხაზები, რომლებიც სხვადასხვა. 845 00:34:32,300 --> 00:34:34,020 პირველი, ვინც ეს ჩვენ არ გადადის x. 846 00:34:34,020 --> 00:34:35,535 ჩვენ გავლის მისამართი x. 847 00:34:35,535 --> 00:34:37,330 848 00:34:37,330 --> 00:34:40,876 ასე რომ, ნაცვლად გადაწერა მეტი ღირებულება ყუთი, 849 00:34:40,876 --> 00:34:42,500 მე მაინც აპირებს მეტი რაღაც. 850 00:34:42,500 --> 00:34:45,380 მაგრამ მე გადაწერა მეტი მისამართი ყუთში. 851 00:34:45,380 --> 00:34:48,780 >> ასე რომ, თუ მე გაივლის მისამართი ყუთი, რათა ხუთი, მაშინ ხუთ 852 00:34:48,780 --> 00:34:51,560 შეძლებს იპოვოს, რომ მეხსიერება და შეცვალოს მისი ღირებულება. 853 00:34:51,560 --> 00:34:53,980 854 00:34:53,980 --> 00:34:59,580 >> ისე და მერე იქ, მე მაქვს რომ ეს არ არის int უქმნით. 855 00:34:59,580 --> 00:35:00,882 არის int ვარსკვლავი. 856 00:35:00,882 --> 00:35:02,090 ეს მაჩვენებელი რიცხვი. 857 00:35:02,090 --> 00:35:03,790 858 00:35:03,790 --> 00:35:07,310 შემდეგ კი, რადგან მე ჩაბარების მივმართო აქ, და შემდეგ რა გავაკეთო 859 00:35:07,310 --> 00:35:10,530 არ არის შეადგენს 5, რადგან მართავს მისამართზე. 860 00:35:10,530 --> 00:35:16,710 ასე რომ, რა გსურთ არის იქ და განახლება შინაარსი ამ მისამართზე 861 00:35:16,710 --> 00:35:18,305 5. 862 00:35:18,305 --> 00:35:21,130 >> OK, ასე რომ, მოდით გავლა ყველა ხაზები ერთი. 863 00:35:21,130 --> 00:35:22,410 864 00:35:22,410 --> 00:35:26,024 ასე რომ, როდესაც მე აქ იწყება I ჯერ კიდევ გვაქვს N / A, N / A, N / A 865 00:35:26,024 --> 00:35:28,440 რადგან ყველაფერი პირველი ხაზი, იმიტომ, რომ მე ნამდვილად არ 866 00:35:28,440 --> 00:35:29,390 განაცხადა პერსონალი ამჟამად. 867 00:35:29,390 --> 00:35:30,980 868 00:35:30,980 --> 00:35:35,110 და შემდეგ ხაზი ორი, მე მაქვს x უდრის 3. 869 00:35:35,110 --> 00:35:38,020 Int ვარსკვლავი არ არსებობს, იგივე როგორც ადრე. 870 00:35:38,020 --> 00:35:39,160 871 00:35:39,160 --> 00:35:40,640 >> ახლა იგი იღებს საინტერესო. 872 00:35:40,640 --> 00:35:42,300 ამიტომ, მე ვაპირებ გაკეთებას. 873 00:35:42,300 --> 00:35:45,720 და მოდით დავუშვათ, რომ მისამართი x არის 12 თექვსმეტობითი. 874 00:35:45,720 --> 00:35:46,880 875 00:35:46,880 --> 00:35:48,420 მოდით უბრალოდ ვივარაუდოთ, რომ ეს. 876 00:35:48,420 --> 00:35:49,221 მე მივიღე ეს. 877 00:35:49,221 --> 00:35:51,680 878 00:35:51,680 --> 00:35:53,500 რა ვარ მე გავლით აქ არის ხუთ. 879 00:35:53,500 --> 00:35:54,460 მე გავლით 12. 880 00:35:54,460 --> 00:35:56,390 881 00:35:56,390 --> 00:35:58,610 >> ასე რომ მნიშვნელობა არ აქვს? 882 00:35:58,610 --> 00:36:04,785 883 00:36:04,785 --> 00:36:06,210 >> სტუდენტი: [INAUDIBLE]. 884 00:36:06,210 --> 00:36:06,950 >> Binky: უკაცრავად? 885 00:36:06,950 --> 00:36:08,145 >> სტუდენტი: [INAUDIBLE]. 886 00:36:08,145 --> 00:36:10,520 Binky: ჰო, როგორც, რომ, მოდით ვივარაუდოთ, რომ ჩვენ ვართ აქ, ახლა. 887 00:36:10,520 --> 00:36:11,540 888 00:36:11,540 --> 00:36:12,040 მე გეკითხებით. 889 00:36:12,040 --> 00:36:12,915 >> სტუდენტი: [INAUDIBLE]. 890 00:36:12,915 --> 00:36:13,590 891 00:36:13,590 --> 00:36:14,890 >> Binky: უკვე დაიწყო. 892 00:36:14,890 --> 00:36:15,860 >> სტუდენტი: [INAUDIBLE]. 893 00:36:15,860 --> 00:36:17,985 Binky: იმის გამო, რომ ჩვენ გავიდა რაღაც ფუნქცია. 894 00:36:17,985 --> 00:36:19,431 895 00:36:19,431 --> 00:36:19,930 დიახ? 896 00:36:19,930 --> 00:36:20,899 >> სტუდენტი: მისამართი x. 897 00:36:20,899 --> 00:36:22,690 Binky: იგი აპირებს აქვს მისამართი x. 898 00:36:22,690 --> 00:36:25,800 და მისამართი x 12, კარგი. 899 00:36:25,800 --> 00:36:30,990 ასე რომ, x იქნება 3, რადგან ჩვენ ნამდვილად არ შეიცვალა x ამჟამად. 900 00:36:30,990 --> 00:36:36,700 და მაშინ იქნება 0x12, ასე მისამართი x, იმიტომ, რომ 901 00:36:36,700 --> 00:36:38,840 ის, რაც ჩვენ გავიდა ხუთ. 902 00:36:38,840 --> 00:36:40,940 >> და მერე რა მოხდება თუ ჩვენ ვცდილობთ იქ? 903 00:36:40,940 --> 00:36:42,145 რასაც ჩვენ ვაპირებთ, რათა იპოვოს? 904 00:36:42,145 --> 00:36:47,120 ასე რომ, თუ თქვენ ცდილობენ ბეჭდვა ვარსკვლავი, ჩვენ ვაპირებთ ამ მისამართზე 905 00:36:47,120 --> 00:36:48,620 და მიიღეთ ღირებულება შიგნით. 906 00:36:48,620 --> 00:36:50,470 და არც მხოლოდ იგივე ღირებულება, რომელიც x 907 00:36:50,470 --> 00:36:53,980 აქვს, რადგან ეს არის მისამართი x, რომელიც იქნება 3. 908 00:36:53,980 --> 00:36:55,440 909 00:36:55,440 --> 00:36:56,930 ჩვენ კარგი? 910 00:36:56,930 --> 00:36:59,990 >> OK, მაშინ ახლა, ჩვენ ნამდვილად წასასვლელად. 911 00:36:59,990 --> 00:37:05,510 და ჩვენ განახლება, რასაც ამ მისამართზე 12. 912 00:37:05,510 --> 00:37:07,390 ჩვენ ეს 5. 913 00:37:07,390 --> 00:37:10,560 ასე რომ, ახლა, როგორც x და ვარსკვლავი არის 5. 914 00:37:10,560 --> 00:37:13,170 915 00:37:13,170 --> 00:37:13,680 >> რატომ არის, რომ? 916 00:37:13,680 --> 00:37:17,070 იმის გამო, რომ მისამართი x 12. 917 00:37:17,070 --> 00:37:20,920 და ასევე 12 მისი ღირებულება. 918 00:37:20,920 --> 00:37:23,780 ასე რომ, თუ ჩვენ დაიცვას 12 ჩვენ უბრალოდ აპირებს იპოვოს x. 919 00:37:23,780 --> 00:37:27,400 ასე რომ, რასაც ჩვენ ვაკეთებთ ვარსკვლავი მოხდება 920 00:37:27,400 --> 00:37:30,790 x, რადგან შეიცავს მისამართი x. 921 00:37:30,790 --> 00:37:31,918 922 00:37:31,918 --> 00:37:32,418 OK? 923 00:37:32,418 --> 00:37:34,090 924 00:37:34,090 --> 00:37:37,750 >> და ეს არის, როგორც არსი, სარემონტო. 925 00:37:37,750 --> 00:37:41,500 ასე რომ, ახლა ჩვენ შეუძლია, საწყისი ხუთ, რეალურად 926 00:37:41,500 --> 00:37:43,840 მეხსიერება, რომელიც ცხოვრობდა მთავარი. 927 00:37:43,840 --> 00:37:47,980 ასე რომ, ეს მეხსიერება არ ცხოვრობს, რომ ხუთი, ისევე, როგორც ადრე, ამ მისამართზე 12. 928 00:37:47,980 --> 00:37:50,980 ჩვენ შევძელით, რომ იქ და შეცვალოს მისი ღირებულება 5. 929 00:37:50,980 --> 00:37:53,990 >> და მაშინ, როცა ჩვენ დავბრუნდებით, ჩვენ დაივიწყოს. 930 00:37:53,990 --> 00:37:55,720 ჩვენ დაივიწყოს ვარსკვლავი. 931 00:37:55,720 --> 00:37:57,020 და x კვლავ ხუთ. 932 00:37:57,020 --> 00:37:58,327 933 00:37:58,327 --> 00:38:00,160 ასე რომ, თუ გსურთ განახორციელოს swap ფუნქცია, 934 00:38:00,160 --> 00:38:05,010 თქვენ უბრალოდ გააკეთოს ზუსტად იგივე, გარდა თქვენ უნდა int ვარსკვლავი აქ, 935 00:38:05,010 --> 00:38:06,140 და ასე შემდეგ და ასე შემდეგ. 936 00:38:06,140 --> 00:38:06,976 OK? 937 00:38:06,976 --> 00:38:07,475 ჩვენ კარგი? 938 00:38:07,475 --> 00:38:09,860 939 00:38:09,860 --> 00:38:10,610 ზემოთ. 940 00:38:10,610 --> 00:38:12,410 >> ამიტომ კურსორი არითმეტიკული. 941 00:38:12,410 --> 00:38:13,960 ეს არის ოდნავ სახიფათო თემაზე. 942 00:38:13,960 --> 00:38:16,554 გამოდის, რომ მითითებები მხოლოდ რიცხვებით. 943 00:38:16,554 --> 00:38:17,970 თქვენ შეგიძლიათ ვფიქრობ, რომ მათ რიცხვები. 944 00:38:17,970 --> 00:38:21,080 იმის გამო, რომ მეხსიერება, თქვენ გაქვთ, როგორიცაა მეხსიერების მისამართი ნულოვანი, ერთი, ორი, სამი, 945 00:38:21,080 --> 00:38:21,900 ოთხი, ხუთი. 946 00:38:21,900 --> 00:38:23,900 ასე შეგვიძლია შევაჯამოთ მეხსიერების მისამართები. 947 00:38:23,900 --> 00:38:27,230 >> და ეს, როგორც წესი, თუ რას აკეთებთ თქვენ და მასივი, მაგალითად. 948 00:38:27,230 --> 00:38:30,540 მასივი, ისევე, როგორც მომიჯნავე ბლოკი მეხსიერება, უამრავი სიმბოლო, 949 00:38:30,540 --> 00:38:31,840 მაგალითად, უამრავი ints. 950 00:38:31,840 --> 00:38:34,420 ასე რომ, თუ გსურთ წასვლა მეორე int ან იმ მესამე int, 951 00:38:34,420 --> 00:38:37,830 შეგიძლიათ უბრალოდ მთლიანობაში რაღაც პირველი მისამართი, და თქვენ ვაპირებთ იქ. 952 00:38:37,830 --> 00:38:39,620 ასე რომ, ეს ნამდვილად სასარგებლოა, რომ. 953 00:38:39,620 --> 00:38:41,850 >> და ის, რომ შევინარჩუნოთ გათვალისწინებით, თუმცა, 954 00:38:41,850 --> 00:38:45,140 რომ ეს არ არის მხოლოდ, ნორმალური არითმეტიკული გრძნობა 955 00:38:45,140 --> 00:38:50,304 იმ შემთხვევაში, თუ თქვენ საქმე, ვთქვათ, int ვარსკვლავი, და თქვენ დაამატოთ 1 მას, 956 00:38:50,304 --> 00:38:52,220 მაშინ, თქვენ არ აპირებს დაამატოთ 1, მისამართი, 957 00:38:52,220 --> 00:38:53,950 თქვენ ვაპირებთ დაამატოთ -4 მისამართზე. 958 00:38:53,950 --> 00:38:55,030 959 00:38:55,030 --> 00:38:56,670 იმიტომ, რომ int არის 4 ბაიტი. 960 00:38:56,670 --> 00:38:57,720 961 00:38:57,720 --> 00:38:59,540 >> ასე რომ, ეს არის, ისევე, ფეხით მასივი. 962 00:38:59,540 --> 00:39:05,260 თუ ჩვენ გვაქვს მასივი უამრავი ints და მაშინ ჩვენ ვცდილობთ, გადადით მეორე, 963 00:39:05,260 --> 00:39:08,790 არსებითად ის შემაჯამებელი მისამართი პირველი plus 1. 964 00:39:08,790 --> 00:39:10,040 965 00:39:10,040 --> 00:39:13,425 მაგრამ, რომ არ be-- უბრალოდ ვთქვათ, რომ მისამართს პირველი, 4. 966 00:39:13,425 --> 00:39:14,560 967 00:39:14,560 --> 00:39:16,250 აქ, ამ შემთხვევაში. 968 00:39:16,250 --> 00:39:19,780 969 00:39:19,780 --> 00:39:22,850 და თუ ჩვენ მთლიანობაში, ასე რომ ეს არის ის, რაც ხდება. 970 00:39:22,850 --> 00:39:23,530 ჩვენ გვაქვს int. 971 00:39:23,530 --> 00:39:25,640 Int x უდრის 5. 972 00:39:25,640 --> 00:39:26,950 X აქვს მნიშვნელობა 5. 973 00:39:26,950 --> 00:39:31,240 და ჩვენ ინიციალიზაცია ეს მაჩვენებელი, int y int ვარსკვლავი y ტოლია მისამართი x. 974 00:39:31,240 --> 00:39:33,660 >> მოდით ვივარაუდოთ, მისამართი x 4. 975 00:39:33,660 --> 00:39:36,960 რა მოხდება ახლა, თუ თანხა დაამატოთ 1 y? 976 00:39:36,960 --> 00:39:39,110 977 00:39:39,110 --> 00:39:44,790 ის აპირებს რეალურად თანხა 4 ნაცვლად მხოლოდ 1. 978 00:39:44,790 --> 00:39:50,920 ასე რომ, მე დაამატოთ 1, მაგრამ რეალურად დამატებული 4, რადგან კომპიუტერის ჭკვიანი. 979 00:39:50,920 --> 00:39:55,275 ასე რომ, ის აპირებს რეალურად დაამატოთ i-ჯერ ზომა ტიპის მაჩვენებელი. 980 00:39:55,275 --> 00:39:56,340 981 00:39:56,340 --> 00:39:56,840 OK? 982 00:39:56,840 --> 00:39:58,030 983 00:39:58,030 --> 00:40:02,440 >> ასე რომ, თუ ეს იყო char, მაგალითად, თუ ეს იყო char ვარსკვლავი y, 984 00:40:02,440 --> 00:40:07,141 და თუ ჩვენ კიდევ 1 მაშინ ეს 5, რადგან char არის 1 ბაიტი ხანგრძლივი. 985 00:40:07,141 --> 00:40:07,640 კარგი? 986 00:40:07,640 --> 00:40:10,560 987 00:40:10,560 --> 00:40:13,190 >> და ბოლოს, ჩვენ მივიღეთ პოინტერები და მასივები. 988 00:40:13,190 --> 00:40:16,451 გამოდის, რომ ყველა დროის თქვენ საქმე მასივი, 989 00:40:16,451 --> 00:40:18,075 თქვენ რეალურად საქმე მაჩვენებელი. 990 00:40:18,075 --> 00:40:19,720 991 00:40:19,720 --> 00:40:24,777 ძალიან ლამაზი კონცეპტუალური მიზეზი ეს არის ის, რომ კოლექტორები ძალიან დიდი. 992 00:40:24,777 --> 00:40:27,360 ასე მახსოვს, რომ მე ვთქვი, რომ ყოველ დროს, თქვენ გაივლის პერსონალის გარშემო, 993 00:40:27,360 --> 00:40:29,097 ასლი ყველაფერი. 994 00:40:29,097 --> 00:40:31,180 ასე რომ, თუ თქვენ გაქვთ მასივი ეს მართლაც, მართლაც დიდი, 995 00:40:31,180 --> 00:40:32,990 თქვენ ნამდვილად არ მინდა, რომ ასლი ყველაფერი ყველა დროის 996 00:40:32,990 --> 00:40:35,710 თქვენ უნდა გაიაროს ეს გარშემო სხვა ფუნქცია, რადგან ეს მხოლოდ 997 00:40:35,710 --> 00:40:37,190 მასიური რაოდენობით მუშაობა. 998 00:40:37,190 --> 00:40:39,710 ასე რომ, რა უნდა გავაკეთოთ არის მხოლოდ წარსული მისამართი პირველი byte. 999 00:40:39,710 --> 00:40:40,969 1000 00:40:40,969 --> 00:40:44,010 და შემდეგ ფუნქცია ექნება დაშვება ყველა ელემენტები, რომ მასივი. 1001 00:40:44,010 --> 00:40:48,670 ასე გავიდა მასივი, მისი მისამართი, ასე რომ, მისამართი პირველი byte. 1002 00:40:48,670 --> 00:40:53,010 >> ასე რომ, თუ ჩვენ ვაცხადებთ int მასივი 3, აქ, ჩვენ ვიცით, 1003 00:40:53,010 --> 00:40:57,470 როგორ შედიხართ პირველ ელემენტს გამოყენებით ფრჩხილი ნოტაცია. 1004 00:40:57,470 --> 00:41:02,410 თუ გახსოვთ bracket notation, array bracket 0 უდრის 1. 1005 00:41:02,410 --> 00:41:06,330 ასევე, ეს იქნება ზუსტად ისევე, როგორც უბრალოდ იქ და ბოლო 1. 1006 00:41:06,330 --> 00:41:07,370 1007 00:41:07,370 --> 00:41:09,110 OK, არის ზუსტად იგივე. 1008 00:41:09,110 --> 00:41:13,010 ასე ფრჩხილი ნოტაცია აქ იგივე იქნება, როგორც ეს ონლაინ. 1009 00:41:13,010 --> 00:41:18,600 >> და გამოიცანით რა ფრჩხილი ნოტაცია მასივი bracket 1 იქნება? 1010 00:41:18,600 --> 00:41:20,440 ეს იქნება მხოლოდ იგივე, როგორც ეს. 1011 00:41:20,440 --> 00:41:22,500 ასე რომ დაამატოთ ერთი მასივი. 1012 00:41:22,500 --> 00:41:24,370 გადაადგილება ერთი ერთად მეხსიერებაში. 1013 00:41:24,370 --> 00:41:26,310 იქ, და 2. 1014 00:41:26,310 --> 00:41:28,050 1015 00:41:28,050 --> 00:41:28,579 OK? 1016 00:41:28,579 --> 00:41:29,870 და ეს ხაზი არის იგივე. 1017 00:41:29,870 --> 00:41:34,860 ჩვენ გვინდა წასვლა, მესამე ყუთი, რათა მასივი plus 2. 1018 00:41:34,860 --> 00:41:37,465 იქ, და 3. 1019 00:41:37,465 --> 00:41:39,340 ასე რომ მეხსიერება, რა მოხდება არის ჩვენ 1020 00:41:39,340 --> 00:41:44,400 გვექნება 1, 2 და 3, სამი ელემენტები ამ მასივი. 1021 00:41:44,400 --> 00:41:46,970 >> შეგვეძლო გავაკეთეთ ამ გამოყენებით ჩვენი ნაცნობი ფრჩხილი ნოტაცია. 1022 00:41:46,970 --> 00:41:49,410 მე მხოლოდ მინდა, შენ რომ ვიცით, რომ ისინი იგივე. 1023 00:41:49,410 --> 00:41:50,530 1024 00:41:50,530 --> 00:41:53,010 OK, კითხვები შესახებ? 1025 00:41:53,010 --> 00:41:56,115 1026 00:41:56,115 --> 00:41:56,615 ლამაზი. 1027 00:41:56,615 --> 00:41:57,990 1028 00:41:57,990 --> 00:41:59,880 ახლა, მე ვაპირებ, რომ გადასცემს მას მეტი Hannah, 1029 00:41:59,880 --> 00:42:00,330 >> HANNAH: Yay, Yee-Haw. 1030 00:42:00,330 --> 00:42:02,246 >> Binky: საუბარი მეხსიერება და მე პერსონალი. 1031 00:42:02,246 --> 00:42:06,554 [ტაში] 1032 00:42:06,554 --> 00:42:10,150 >> HANNAH: Hi, cool, ამიტომ ჩვენ მიმდინარეობს გაიგო ცოტა მეტი 1033 00:42:10,150 --> 00:42:13,090 მეხსიერება, რომელიც ჩვენ მხოლოდ მიმართა გამოყენებით პოინტერები. 1034 00:42:13,090 --> 00:42:16,060 ასე რომ, არსებობს ორი ძირითადი ნაწილისგან მეხსიერება, რომ ჩვენ შეშფოთებული. 1035 00:42:16,060 --> 00:42:18,830 ჩვენ გვაქვს დასტის, რომელიც იზრდება მდე ქვედა, და ბევრი, რომელიც 1036 00:42:18,830 --> 00:42:20,600 მიდის ქვემოთ ზემოდან. 1037 00:42:20,600 --> 00:42:24,690 და დასტის აპირებს გამართავს ყველა ეგზემპლარის ცვლადებს. 1038 00:42:24,690 --> 00:42:28,860 ასე რომ, თითოეული მოუწოდებს ფუნქცია იღებს საკუთარი პატარა ჩარჩო დასტის. 1039 00:42:28,860 --> 00:42:32,160 ისე, Gabe ზემოთ აღინიშნა, თუ ჩვენ მოვუწოდებთ ფუნქცია ისევ და ისევ, 1040 00:42:32,160 --> 00:42:34,180 ჩვენ ვაპირებთ, რომ დააწყობს რამ Stack. 1041 00:42:34,180 --> 00:42:35,220 1042 00:42:35,220 --> 00:42:38,570 >> და ანალოგიურად, ბევრი, რომელიც იწყება ზედა 1043 00:42:38,570 --> 00:42:42,660 აწყობს ყველა მეხსიერება ჩვენ დინამიურად გამოყოფს. 1044 00:42:42,660 --> 00:42:45,110 ასე რომ, როგორც ჩვენ დინამიურად გამოყოს მეხსიერება, 1045 00:42:45,110 --> 00:42:47,580 ეს მოვა ქვემოთ ბოლოში. 1046 00:42:47,580 --> 00:42:51,340 რამდენიმე რამ უნდა იცოდეს, როდესაც ჩვენ გამოყენებით დასტის და ბევრი, 1047 00:42:51,340 --> 00:42:55,200 დასტის, თუ ჩვენ გვაქვს ძალიან many-- ვთქვათ რეკურსიული მოუწოდებს, 1048 00:42:55,200 --> 00:42:58,392 და ჩვენ მოუწოდებდა ფუნქციის ერთხელ, და ისევ და ისევ და ისევ, 1049 00:42:58,392 --> 00:43:00,350 და ეს დაწყობა up, დაწყობა up, დაწყობა up. 1050 00:43:00,350 --> 00:43:01,570 და ის აპირებს ავარიული შევიდა ბევრი. 1051 00:43:01,570 --> 00:43:03,040 ჩვენ ვაპირებთ, რომ ამოიწურა მეხსიერება. 1052 00:43:03,040 --> 00:43:05,100 რომ აპირებს იწვევს პრობლემა კომპიუტერი. 1053 00:43:05,100 --> 00:43:06,770 და ეს მოუწოდა დასტის overflow. 1054 00:43:06,770 --> 00:43:09,728 ასე რომ, ეს ნამდვილად რაღაც უნდა იცოდეს და ცდილობენ, რათა თავიდან ავიცილოთ. 1055 00:43:09,728 --> 00:43:10,228 1056 00:43:10,228 --> 00:43:14,050 და ბევრი, უნდა გვახსოვდეს, არ შემთხვევით გაჟონვა მეხსიერება. 1057 00:43:14,050 --> 00:43:17,950 ნებისმიერ დროს გამოყენება malloc, არ დაგავიწყდებათ გასათავისუფლებლად, რომ მეხსიერებაში. 1058 00:43:17,950 --> 00:43:20,040 წინააღმდეგ შემთხვევაში, ეს უბრალოდ იქნება ბევრი შეეწირა, 1059 00:43:20,040 --> 00:43:23,230 და კომპიუტერი არ იცის, რომ ეს არის უფასო გამოიყენოს, რომ მეხსიერებაში. 1060 00:43:23,230 --> 00:43:25,810 ასე რომ, ეს არის რამდენიმე რამ უნდა იყოს ძალიან ფრთხილად, როდესაც 1061 00:43:25,810 --> 00:43:28,580 თქვენ საქმე დასტის და ბევრი. 1062 00:43:28,580 --> 00:43:30,412 რაიმე შეკითხვები ამ საკითხთან დაკავშირებით? 1063 00:43:30,412 --> 00:43:31,304 გასაოცარია. 1064 00:43:31,304 --> 00:43:31,900 >> OK, ზემოთ. 1065 00:43:31,900 --> 00:43:32,940 1066 00:43:32,940 --> 00:43:36,810 აი, ეს აქვს იგივე იდეა, როგორც დასტის overflow, სადაც 1067 00:43:36,810 --> 00:43:39,850 ჩვენ ვაპირებთ მიღმა ფარგლებში, რაც მეხსიერება 1068 00:43:39,850 --> 00:43:41,960 არის ჩვენ უნდა შეეძლოს გამოიყენოს. 1069 00:43:41,960 --> 00:43:45,077 ასე რომ მიიღოს, მაგალითად, ბუფერული, ან შეიძლება მხოლოდ ვფიქრობ, რომ ეს მასივი. 1070 00:43:45,077 --> 00:43:47,660 და ვთქვით, OK, ჩვენ ვაპირებთ შექმნა ამ ლამაზი პატარა მასივი. 1071 00:43:47,660 --> 00:43:49,140 ეს იქნება სიმებიანი. 1072 00:43:49,140 --> 00:43:50,630 ან ის აპირებს შესანახად სიმბოლო. 1073 00:43:50,630 --> 00:43:51,720 და ეს მხოლოდ აპირებს მიესალმები. 1074 00:43:51,720 --> 00:43:52,678 და ეს გაურკვეველი. 1075 00:43:52,678 --> 00:43:53,990 ეს არის ის. 1076 00:43:53,990 --> 00:43:58,240 >> მაგრამ თუ მე ვინმე ბოროტი და უნდოდა რაღაც ცუდი ამ მასივი, რა 1077 00:43:58,240 --> 00:44:02,310 შეიძლება გავაკეთოთ ცდილობენ წერენ წარსულში ბოლოს სიმებიანი. 1078 00:44:02,310 --> 00:44:04,490 და როგორც დაინახავთ, თუ ვწერ შორს, 1079 00:44:04,490 --> 00:44:06,980 მე შემიძლია რეალურად იმოქმედებს დაბრუნების მისამართზე. 1080 00:44:06,980 --> 00:44:09,530 და თუ დავიწყებ, რომ მოახდენს დაბრუნების მისამართი, 1081 00:44:09,530 --> 00:44:11,730 მე გავლენა იქონიოს პროგრამის რეალურად მართავს. 1082 00:44:11,730 --> 00:44:15,900 და დაბრუნების ნაცვლად, თქვენ იცით, ბედნიერი სიმებიანი მოსწონს hello, I 1083 00:44:15,900 --> 00:44:19,460 შეიძლება რაღაც ცუდი, ისევე წასვლა სხვაგან თქვენს კომპიუტერში, ჯერ კიდევ 1084 00:44:19,460 --> 00:44:22,146 მეხსიერება, შეცვლის, რაც მე მინდა ამის გაკეთება. 1085 00:44:22,146 --> 00:44:25,020 ასე რომ, რაც გამოიყურება ასე თუ მე მხოლოდ სახის ამოავსო 1086 00:44:25,020 --> 00:44:27,400 შემთხვევითი ნაგვის ღირებულება, ამ შემთხვევაში, უბრალოდ. 1087 00:44:27,400 --> 00:44:30,490 და მაშინ, როდესაც მე რეალურად მიიღო მეხსიერების მისამართი, 1088 00:44:30,490 --> 00:44:33,740 დავიწყე შევსება, რაღაც რომ გააკეთა ის, რაც მინდოდა, რომ ეს გააკეთოს. 1089 00:44:33,740 --> 00:44:34,952 1090 00:44:34,952 --> 00:44:36,410 ნებისმიერი კითხვები ბუფერული overflow? 1091 00:44:36,410 --> 00:44:38,450 1092 00:44:38,450 --> 00:44:40,730 გასაოცარია, საფრენი მარჯვენა ამ პერსონალის. 1093 00:44:40,730 --> 00:44:43,530 >> OK, ასე რომ ჩვენ ვისაუბრეთ ბევრი შესახებ კურსორი ერთად Gabe. 1094 00:44:43,530 --> 00:44:45,790 როგორ ჩვენ რეალურად მომცეთ? 1095 00:44:45,790 --> 00:44:48,070 როგორ მივიღოთ მისამართი მეხსიერებაში? 1096 00:44:48,070 --> 00:44:51,040 ასევე, ჩვენ შეგვიძლია გამოვიყენოთ ეს ლამაზი ფუნქცია ზარი malloc, რომელიც 1097 00:44:51,040 --> 00:44:53,370 აპირებს პატარა ნაჭერი მეხსიერება, 1098 00:44:53,370 --> 00:44:55,480 კერძოდ, ბევრი, როგორც ჩვენ განვიხილეთ, 1099 00:44:55,480 --> 00:44:59,780 და ის აპირებს მოგცემთ უკან კურსორის მისამართი მეხსიერებაში. 1100 00:44:59,780 --> 00:45:01,950 და არგუმენტი, რომ ჩვენ უნდა მისცეს malloc 1101 00:45:01,950 --> 00:45:04,280 ის, თუ რამდენად სივრცეში მეხსიერებაში გვინდა. 1102 00:45:04,280 --> 00:45:06,100 >> ასე რომ თქვენ ხედავთ ზომა byte. 1103 00:45:06,100 --> 00:45:08,670 ვთქვათ, მაგალითად, ან რეალურად, ამ მაგალითად, 1104 00:45:08,670 --> 00:45:12,040 ჩვენ გამოყოფს საკმარისი ფართი 10 რიცხვებით. 1105 00:45:12,040 --> 00:45:15,640 ასე რომ, ალბათ, რასაც ჩვენ ვაპირებთ, რომ გსურთ იმისათვის, რომ აქ არის მასივი 10 რიცხვებით. 1106 00:45:15,640 --> 00:45:19,641 ასე ვაძლევთ მას ზომა ints, რომელიც შევიტყვეთ, ის იყო, თუ რამდენი ბაიტი? 1107 00:45:19,641 --> 00:45:20,140 სტუდენტი: 4. 1108 00:45:20,140 --> 00:45:22,920 HANNAH: 4, ლამაზი და ჩვენ მინდა 10 იმ ზედიზედ, 1109 00:45:22,920 --> 00:45:28,050 ასე რომ ჩვენ გვაქვს საკმარისი სივრცე შესანახად ყველა 10 რიცხვებით, ამ შემთხვევაში. 1110 00:45:28,050 --> 00:45:31,290 რაღაც სუპერ მნიშვნელოვანია, ნებისმიერ დროს რეკავთ malloc, 1111 00:45:31,290 --> 00:45:32,880 თქვენ უნდა შეამოწმოთ for null. 1112 00:45:32,880 --> 00:45:37,310 თუ არ შევამოწმოთ null, ასევე, malloc თუ იგი გადის out სივრცეში 1113 00:45:37,310 --> 00:45:40,400 და აღარ გაძლევთ ნებისმიერი მეტი მეხსიერება, მაშინ ის დააბრუნებს null. 1114 00:45:40,400 --> 00:45:42,060 1115 00:45:42,060 --> 00:45:45,630 ასე რომ, თუ თქვენ არ შეამოწმოთ, malloc დაბრუნება null. 1116 00:45:45,630 --> 00:45:51,265 და თუ ჩვენ ვცდილობთ dereference null მაჩვენებელი, 1117 00:45:51,265 --> 00:45:54,960 ჩვენ ვაპირებთ, რომ მიიღოთ სეგმენტაცია ბრალია, რომელიც ჩვენ ვსაუბრობთ ახლა. 1118 00:45:54,960 --> 00:45:56,150 1119 00:45:56,150 --> 00:45:56,650 გასაოცარია. 1120 00:45:56,650 --> 00:45:58,300 >> OK, კითხვები malloc? 1121 00:45:58,300 --> 00:46:00,044 1122 00:46:00,044 --> 00:46:00,544 დიახ? 1123 00:46:00,544 --> 00:46:05,460 >> სტუდენტი: თუ არა შემოწმების null [INAUDIBLE] არ გავაკეთებთ ვიქტორინა? 1124 00:46:05,460 --> 00:46:08,100 >> HANNAH: რა თქმა უნდა, კითხვა იყო ჯერ ეს matter-- ინტელექტუალური, 1125 00:46:08,100 --> 00:46:10,420 თქვენ მიიღებთ რაოდენობა იქნება, თუ თქვენ არ შევამოწმოთ null? 1126 00:46:10,420 --> 00:46:12,794 დიახ, თქვენ მიიღებთ რაოდენობა off თუ არ შევამოწმოთ null. 1127 00:46:12,794 --> 00:46:16,030 ნებისმიერ დროს რეკავთ malloc, როგორც ინტელექტუალური და თქვენი psets და რეალურ ცხოვრებაში, 1128 00:46:16,030 --> 00:46:17,155 თქვენ უნდა შეამოწმოთ for null. 1129 00:46:17,155 --> 00:46:18,330 კარგი კითხვაა. 1130 00:46:18,330 --> 00:46:19,689 >> GABE: რა მოხდება, თუ არ არის თავისუფალი? 1131 00:46:19,689 --> 00:46:21,730 HANNAH: Gabe უნდა იცოდეს, რა, თუ არ არის თავისუფალი. 1132 00:46:21,730 --> 00:46:25,030 მაშინ გვექნება მეხსიერების გაჟონვის ჩვენი ბევრი. 1133 00:46:25,030 --> 00:46:26,140 ნებისმიერი სხვა კითხვები? 1134 00:46:26,140 --> 00:46:27,550 დიახ? 1135 00:46:27,550 --> 00:46:30,120 >> სტუდენტი: შეიძლება you-- წავიდეთ მეტი ბუფერული overflow რეალური სწრაფი ისევ? 1136 00:46:30,120 --> 00:46:30,530 >> HANNAH: რა თქმა უნდა. 1137 00:46:30,530 --> 00:46:33,071 შეკითხვა ჩვენ წავიდეთ მეტი ბუფერული overflow მართლაც სწრაფი. 1138 00:46:33,071 --> 00:46:35,050 მოდით დავუბრუნდეთ იმ სლაიდები. 1139 00:46:35,050 --> 00:46:37,430 ასე ბუფერული, შეგიძლიათ მხოლოდ ვფიქრობ, რომ ეს მასივი, არა? 1140 00:46:37,430 --> 00:46:39,360 თქვენ გაქვთ გარკვეული სივრცეში მეხსიერებაში. 1141 00:46:39,360 --> 00:46:43,580 და როდესაც ჩვენ პირველად შექმნა ჩვენი მასივი, ჩვენ ვიცით, კოლექტორები აქვს ფიქსირებული ზომა, 1142 00:46:43,580 --> 00:46:45,470 ან ჩვენი ბუფერული აქვს ფიქსირებული ზომა. 1143 00:46:45,470 --> 00:46:51,360 >> ასე ვთქვათ, ამ შემთხვევაში, ჩვენ გვაქვს მხოლოდ საკმარისი სივრცე დაწერა სიმებიანი hello. 1144 00:46:51,360 --> 00:46:57,340 თუ ჩვენ წასვლა წარსულში რომ შეკრული, თუ ჩვენ წასვლა წარსულში რა არის ჩვენი array ჩვენ ვთქვით, რომ ეს შეიძლება გამართავს, 1145 00:46:57,340 --> 00:46:59,780 ჩვენ შეგვიძლია რეალურად დაიწყოს წერის მეხსიერება 1146 00:46:59,780 --> 00:47:01,780 რომ კომპიუტერი არ მინდა, რომ დაწეროს. 1147 00:47:01,780 --> 00:47:02,810 1148 00:47:02,810 --> 00:47:05,580 კერძოდ, თუ ჩვენ მოხვდა რაღაც დაბრუნების 1149 00:47:05,580 --> 00:47:08,700 მისამართი ფუნქცია, რომელიც, როგორც ნებისმიერი სხვა ნაჭერი მეხსიერება, 1150 00:47:08,700 --> 00:47:11,420 არის მხოლოდ სადღაც თქვენი კომპიუტერი, თქვენ შეგიძლიათ რეალურად 1151 00:47:11,420 --> 00:47:14,080 შეიცვალოს, რომ და დაიწყოს ბოროტი. 1152 00:47:14,080 --> 00:47:15,272 პასუხი თქვენს კითხვაზე? 1153 00:47:15,272 --> 00:47:16,230 გასაოცარია, არაფერი? 1154 00:47:16,230 --> 00:47:17,466 დიახ? 1155 00:47:17,466 --> 00:47:21,948 >> სტუდენტი: ასე დასტის [INAUDIBLE], თქვენ განაცხადა გადასვლა ბოლოში იზრდებოდა. 1156 00:47:21,948 --> 00:47:25,434 ფარგლებში დასტის სპექტრი, აკეთებს მეხსიერების გადასვლა, ისევე, 1157 00:47:25,434 --> 00:47:27,230 ზემოდან ქვემოთ დაკავშირებული თითოეული შესვენების? 1158 00:47:27,230 --> 00:47:28,646 1159 00:47:28,646 --> 00:47:32,100 >> HANNAH: როგორ you-- თვლიან, Rob ეს ერთი. 1160 00:47:32,100 --> 00:47:35,370 1161 00:47:35,370 --> 00:47:38,213 >> ROB: ეს გაიზრდება იმავე მიმართულებით დასტის იზრდება. 1162 00:47:38,213 --> 00:47:38,712 HANNAH: OK. 1163 00:47:38,712 --> 00:47:40,967 ROB: ასე რომ, მე დაბნეული. 1164 00:47:40,967 --> 00:47:42,331 ეს იქნება აბსტრაქცია. 1165 00:47:42,331 --> 00:47:42,831 HANNAH: OK. 1166 00:47:42,831 --> 00:47:44,000 ROB: ეს არის სწორი. 1167 00:47:44,000 --> 00:47:49,420 ასე რომ, თუ დასტის იზრდება მდე, შემდეგ ზოგადად ეს 1168 00:47:49,420 --> 00:47:52,380 არ უნდა იყოს. მაგრამ შეგიძლიათ განაცხადოს int x. 1169 00:47:52,380 --> 00:47:54,120 მერე განაცხადოს int y. 1170 00:47:54,120 --> 00:47:57,300 მაშინ int x, ზოგადად, ქვედა დასტის, ვიდრე int y. 1171 00:47:57,300 --> 00:47:59,300 მაგრამ ეს მხოლოდ ფაქტია. 1172 00:47:59,300 --> 00:48:02,410 რომ არ მომწონს მნიშვნელოვანი სათესლე რამ. 1173 00:48:02,410 --> 00:48:06,800 >> ROB: ასე რომ, კიდევ ერთხელ იყო მხოლოდ რა ხდება, ყოველი ფარგლებში აშენებს. 1174 00:48:06,800 --> 00:48:08,960 ასე რომ, თითოეული ფუნქციის იღებს პატარა ნაჭერი Stack. 1175 00:48:08,960 --> 00:48:13,030 და როგორც თქვენ გადასვლა up, შიგნით რომ პატარა ნაჭერი, შიგნით რომ ჩარჩო, 1176 00:48:13,030 --> 00:48:16,710 ჩვენ ვიტყვით, რომ ცვლადები ფარგლებში, რომ ჩარჩო ასევე გადავიდა. 1177 00:48:16,710 --> 00:48:17,473 კითხვა? 1178 00:48:17,473 --> 00:48:18,688 >> ROB: Just იყოს mic. 1179 00:48:18,688 --> 00:48:19,396 HANNAH: Oh, yeah. 1180 00:48:19,396 --> 00:48:20,440 ROB: მე საუბარი უყვარხარ. 1181 00:48:20,440 --> 00:48:21,410 HANNAH: Oh, yeah, OK. 1182 00:48:21,410 --> 00:48:24,150 ROB: გამონაკლისია ამისთვის კოლექტორები და structs, 1183 00:48:24,150 --> 00:48:27,470 სად კოლექტორები, ქვედა ინდექსი მასივი, 1184 00:48:27,470 --> 00:48:29,930 და structs უმაღლესი სფეროში structs 1185 00:48:29,930 --> 00:48:35,040 გარანტირებული უნდა იყოს დაბალ მისამართები ვიდრე შემდეგ არც მასივი. 1186 00:48:35,040 --> 00:48:36,720 ასე რომ, ეს გარანტირებულია. 1187 00:48:36,720 --> 00:48:40,310 მაგრამ რაიმე განსაკუთრებული ცვლადები შიგნით, როგორიცაა int x და int y ფარგლებში ფუნქცია, 1188 00:48:40,310 --> 00:48:43,030 არ არსებობს საჭირო ურთიერთობისათვის შორის მათი მისამართები. 1189 00:48:43,030 --> 00:48:44,882 1190 00:48:44,882 --> 00:48:46,340 HANNAH: სხვა კითხვა აქ? 1191 00:48:46,340 --> 00:48:51,620 სტუდენტი: ასე რომ ბუფერულ ნაკადი, მხოლოდ ბუფერული overflow 1192 00:48:51,620 --> 00:48:54,980 მხოლოდ მაშინ მოხდა, როდესაც თქვენ აქვს, ისევე, დანიშნული 1193 00:48:54,980 --> 00:49:01,056 თანხის მასივი რომ არის მაშინ უფრო? 1194 00:49:01,056 --> 00:49:03,230 როგორიცაა, შეგიძლიათ? 1195 00:49:03,230 --> 00:49:05,435 ასე რომ, თუ თქვენ ითხოვს რაღაც user-- 1196 00:49:05,435 --> 00:49:06,018 >> HANNAH: Mm-hm. 1197 00:49:06,018 --> 00:49:08,600 სტუდენტი: Can ისინი იძულებით მოგაწვდით რაღაც უკან 1198 00:49:08,600 --> 00:49:11,777 რომ აღემატება, რასაც თქვენ მათთვის გამოყოფილი? 1199 00:49:11,777 --> 00:49:13,610 HANNAH: რა თქმა უნდა, ასე რომ კითხვა იყო, ძირითადად, 1200 00:49:13,610 --> 00:49:16,217 შეიძლება პროფაილი მოგცემთ მეტი, ვიდრე თქვენ ვთხოვო? 1201 00:49:16,217 --> 00:49:16,800 სტუდენტი: Yeah. 1202 00:49:16,800 --> 00:49:18,480 HANNAH ისე, თქვენ ვერ შეუშლის ხელს მომხმარებელს აკეთებს, რომ. 1203 00:49:18,480 --> 00:49:21,350 თქვენ შეიძლება კონკრეტულად არ მომეცი ზე მეტი x ნომერი bytes 1204 00:49:21,350 --> 00:49:24,330 მე მხოლოდ თქვენ გეძლევათ ოთახი x ნომერი ბაიტი, X რაოდენობის სიმბოლოებს. 1205 00:49:24,330 --> 00:49:25,700 ისე, რომ რაღაც გსურთ თავიდან ასაცილებლად. 1206 00:49:25,700 --> 00:49:26,199 დიახ? 1207 00:49:26,199 --> 00:49:30,270 რა განსხვავებაა დასტის overflow და ბუფერული overflow? 1208 00:49:30,270 --> 00:49:32,140 >> HANNAH: OK, ასე დასტის overflow-- მე, რა 1209 00:49:32,140 --> 00:49:34,790 არის განსხვავება დასტის overflow და ბუფერული overflow? 1210 00:49:34,790 --> 00:49:37,581 ასე რომ ჩვენ გვინდა, ვფიქრობ დასტის overflow მაშინ, როცა ჩვენ, ფაქტობრივად, 1211 00:49:37,581 --> 00:49:39,530 დაწყობა up ამ ფუნქციის მოუწოდებს. 1212 00:49:39,530 --> 00:49:42,991 ვთქვათ თქვენ გაქვთ რეკურსიული ფუნქცია, რადგან ჩვენ ვიცით, რომ ყველა დროის 1213 00:49:42,991 --> 00:49:45,240 მოვუწოდებთ ფუნქცია, ეს იღებს საკუთარი ჩარჩო დასტის. 1214 00:49:45,240 --> 00:49:47,950 >> ასე რომ, ჩვენ დააწყობს up ძალიან მაღალია, და მაშინ ჩვენ დავიწყებთ overflow. 1215 00:49:47,950 --> 00:49:50,530 და ვიყენებთ ძალიან ბევრი მეხსიერება, და ჩვენ არ გვაქვს არსად დარჩა. 1216 00:49:50,530 --> 00:49:51,590 მივიღებთ, რომ შეცდომა. 1217 00:49:51,590 --> 00:49:53,930 >> ბუფერული overflow ფარგლებში პროგრამა. 1218 00:49:53,930 --> 00:49:57,180 ჩვენ გვინდა, შეიძლება სულაც არ აქვს ამოიწურა მეხსიერება იგივე გზა 1219 00:49:57,180 --> 00:50:00,080 რომ ჩვენ შეიძლება, თუ ჩვენ დაწყობა ამდენ ფუნქცია მოუწოდებს, 1220 00:50:00,080 --> 00:50:04,540 მაგრამ ჩვენ წერენ წარსულის მეხსიერება რომ ჩვენ ვიცით, ჩვენ შეგვიძლია გამოვიყენოთ. 1221 00:50:04,540 --> 00:50:06,170 და რომ საშუალებას გვაძლევს გავაკეთოთ ბოროტი. 1222 00:50:06,170 --> 00:50:08,060 1223 00:50:08,060 --> 00:50:08,560 ჰო? 1224 00:50:08,560 --> 00:50:10,950 >> ROB: დიახ, დაგვჭირდება უბრალოდ ვიმეორებ, ეს, 1225 00:50:10,950 --> 00:50:12,699 მაგრამ ასევე შეგიძლიათ ვფიქრობ, დასტის overflow 1226 00:50:12,699 --> 00:50:15,374 როგორც მინდა, კონკრეტული ტიპის ბუფერული overflow. 1227 00:50:15,374 --> 00:50:17,665 ან უბრალოდ ვფიქრობ, თქვენი დასტის როგორც ძალიან დიდი ბუფერული. 1228 00:50:17,665 --> 00:50:20,724 მაშინ, როდესაც თქვენ overflow დააწყობს, ეს არის სახის მოსწონს ბუფერული overflow. 1229 00:50:20,724 --> 00:50:23,390 მაგრამ დასტის overflow არის მხოლოდ კონკრეტული ტერმინი გამოიყენება, როდესაც დასტის 1230 00:50:23,390 --> 00:50:24,310 თავად overflows. 1231 00:50:24,310 --> 00:50:27,500 >> HANNAH: მარჯვენა, ასე ვიმეორებ, ვიდეო, 1232 00:50:27,500 --> 00:50:31,756 ეს შეგიძლიათ წარმოიდგინოთ, რომ დასტის overflow რადგან კონკრეტული ტიპის ბუფერული overflow. 1233 00:50:31,756 --> 00:50:33,040 მაგარი? 1234 00:50:33,040 --> 00:50:34,562 ნებისმიერი უფრო მეტი შეკითხვა, სანამ ჩვენ? 1235 00:50:34,562 --> 00:50:35,380 1236 00:50:35,380 --> 00:50:35,880 გასაოცარია. 1237 00:50:35,880 --> 00:50:37,130 1238 00:50:37,130 --> 00:50:39,727 >> OK, მაგარი, ასე რომ მოდით ვისაუბროთ ზოგიერთი საერთო შეცდომა შეტყობინებები. 1239 00:50:39,727 --> 00:50:42,060 ეს არის ის, რაც აქვს ნაჩვენები სხვადასხვა ვიქტორინებში, 1240 00:50:42,060 --> 00:50:44,740 ასე რომ რაღაც ღირს აღების მეორე შევხედოთ. 1241 00:50:44,740 --> 00:50:46,860 დარწმუნებული ვარ, რომ თქვენ შეექმნა მაინც ეს 1242 00:50:46,860 --> 00:50:48,690 როგორც თქვენ აკეთებთ თქვენი პრობლემა კომპლექტი. 1243 00:50:48,690 --> 00:50:50,980 ასე რომ დარწმუნდით, რომ თქვენ შეგიძლიათ გაიგო მათ ვიქტორინა. 1244 00:50:50,980 --> 00:50:52,990 >> ასე რომ, პირველი არის სეგმენტაცია ბრალია. 1245 00:50:52,990 --> 00:50:55,250 და ეს ნებისმიერ დროს ჩვენ ცდილობენ, რათა შეამოწმონ მეხსიერება 1246 00:50:55,250 --> 00:50:57,130 რომ ჩვენ არ ეძლევათ. 1247 00:50:57,130 --> 00:51:00,280 ასე რომ თქვენ migh არ მინახავს, მაგალითად, წარმოუდგენელი. 1248 00:51:00,280 --> 00:51:03,390 თუ აღმოაჩინოს კოლიზია დაბრუნების null, და მაშინ 1249 00:51:03,390 --> 00:51:05,500 შევეცადე, რომ რამე რომ null მნიშვნელობას, 1250 00:51:05,500 --> 00:51:08,147 კომპიუტერული მისცემს თქვენ სეგმენტაცია ბრალია. 1251 00:51:08,147 --> 00:51:10,730 ასე რომ, ერთი მნიშვნელოვანი რამ გავაკეთოთ იმისათვის, რათა თავიდან იქნას აცილებული ამ 1252 00:51:10,730 --> 00:51:12,000 ყოველთვის შემოწმება null. 1253 00:51:12,000 --> 00:51:13,300 1254 00:51:13,300 --> 00:51:16,180 >> თქვენ შეიძლება არ ჩანს დაფარული დეკლარაცია ფუნქცია. 1255 00:51:16,180 --> 00:51:18,370 ასე რომ, ეს არის ის, რაც ხდება, როდესაც Allison აჩვენა, თუ 1256 00:51:18,370 --> 00:51:20,150 როგორ ჩვენ პროტოტიპი, არა? 1257 00:51:20,150 --> 00:51:23,440 ასე ვთქვათ, ჩვენ გვაქვს ფუნქცია, რომ ჩვენ განსაზღვრავს. 1258 00:51:23,440 --> 00:51:24,440 მოდით ვთქვათ, კუბი. 1259 00:51:24,440 --> 00:51:27,120 და რომ მიდის ბოლოში ჩვენი ფუნქცია, რომლის მთავარი. 1260 00:51:27,120 --> 00:51:35,205 >> თუ ჩვენ დაგავიწყდებათ ვუთხრა კომპიუტერის შესახებ cube, როდესაც მთავარ ცდილობს მოვუწოდებთ cube, 1261 00:51:35,205 --> 00:51:36,830 კომპიუტერი იქნება, ისევე, როგორც, რა ჩემი gosh. 1262 00:51:36,830 --> 00:51:38,300 მე არ ვიცი, ეს რას ნიშნავს. 1263 00:51:38,300 --> 00:51:39,760 მე არ ვიცი, რა უნდა გავაკეთოთ, აქ. 1264 00:51:39,760 --> 00:51:41,594 ასე პროტოტიპი ამბობს არ ინერვიულოთ. 1265 00:51:41,594 --> 00:51:42,510 მე ვაპირებ გითხრათ. 1266 00:51:42,510 --> 00:51:43,132 >> ის მოვა. 1267 00:51:43,132 --> 00:51:43,840 არ დაწეროთ at me. 1268 00:51:43,840 --> 00:51:46,697 არ მაძლევს დაფარული დეკლარაციას ფუნქცია. 1269 00:51:46,697 --> 00:51:49,280 ასე რომ, თუ ეს შეცდომა, ერთი რაც თქვენ ვაპირებთ, რომ გსურთ 1270 00:51:49,280 --> 00:51:50,821 დარწმუნდით, რომ თქვენ გაქვთ თქვენი პროტოტიპი. 1271 00:51:50,821 --> 00:51:52,320 1272 00:51:52,320 --> 00:51:53,230 OK? 1273 00:51:53,230 --> 00:51:55,680 >> და ბოლო, მაგრამ არანაკლებ, გამოუცხადებელ იდენტიფიკატორი 1274 00:51:55,680 --> 00:52:00,570 არსებითად, როდესაც თქვენ ეცდება გამოიყენოს ცვლადი, რომ თქვენ არ გამოცხადდა. 1275 00:52:00,570 --> 00:52:03,449 ასე უეცრად თქვენ დაიწყოს გამოთქმა n plus plus. 1276 00:52:03,449 --> 00:52:04,740 კომპიუტერი და ამბობს, რა არის N? 1277 00:52:04,740 --> 00:52:06,660 თქვენ არ მითხრა n იყო რამ. 1278 00:52:06,660 --> 00:52:10,930 >> ასე რომ ერთი რამ, რომ თქვენ უნდა დავრწმუნდეთ, რომ თქვენ საერთოდ არ არის ვუთხრა კომპიუტერი რა N არის. 1279 00:52:10,930 --> 00:52:13,320 ასე მაგალითად, n შეიძლება იყოს მთელი რიცხვი. 1280 00:52:13,320 --> 00:52:14,999 და მაშინ თქვენ არ შეცდომა. 1281 00:52:14,999 --> 00:52:16,290 ნებისმიერი კითხვები გავრცელებული შეცდომები? 1282 00:52:16,290 --> 00:52:17,260 დიახ? 1283 00:52:17,260 --> 00:52:19,344 >> სტუდენტი: For დაფარული დეკლარაცია ფუნქციის, 1284 00:52:19,344 --> 00:52:22,343 შეიძლება ეს იყოს, რომ თქვენ გამოტოვებული ერთი ბიბლიოთეკების თქვენ უნდა 1285 00:52:22,343 --> 00:52:24,400 მოიცავს, ვიდრე პროტოტიპი? 1286 00:52:24,400 --> 00:52:26,359 >> HANNAH: მარჯვენა, კითხვა იყო, იქნებ 1287 00:52:26,359 --> 00:52:28,650 ასევე ეს შეცდომა, თუ თქვენ დაავიწყდა მოიცავს ბიბლიოთეკა. 1288 00:52:28,650 --> 00:52:29,085 >> სტუდენტი: დიახ. 1289 00:52:29,085 --> 00:52:30,876 >> HANNAH: რა თქმა უნდა, იმიტომ, რომ იგივე გზა 1290 00:52:30,876 --> 00:52:33,540 რომ ჩვენ გვინდა, რომ ჩვენი პროტოტიპები ადრე მთავარი ფუნქცია, 1291 00:52:33,540 --> 00:52:37,717 თუ ჩვენ გვაქვს ბიბლიოთეკა, იმ ვაპირებთ არსებითად მოიცავს პროტოტიპები, 1292 00:52:37,717 --> 00:52:39,425 მოიცავს განმარტებები ფუნქციები. 1293 00:52:39,425 --> 00:52:40,585 დიდი კითხვა. 1294 00:52:40,585 --> 00:52:43,230 >> სტუდენტი: For სეგმენტაცია ბრალია, რომ, რომელიც ასევე 1295 00:52:43,230 --> 00:52:47,350 მოხდება, თუ ჩვენ, ისევე, ცდილობდა წვდომის ცვლადი, 1296 00:52:47,350 --> 00:52:51,947 როგორიცაა, სხვადასხვა [INAUDIBLE] ვიდრე ეს გამოცხადდა? 1297 00:52:51,947 --> 00:52:54,030 HANNAH: რა თქმა უნდა, ისე, რომ ჩვენ მიიღოთ სეგმენტაცია ბრალია 1298 00:52:54,030 --> 00:52:56,270 თუ ჩვენ შევეცადეთ, რათა შეამოწმონ ცვლადი ფარგლებს? 1299 00:52:56,270 --> 00:52:57,104 ის იყო, რომ ამ საკითხთან დაკავშირებით? 1300 00:52:57,104 --> 00:52:57,645 სტუდენტი: დიახ. 1301 00:52:57,645 --> 00:52:58,430 HANNAH ლამაზი. 1302 00:52:58,430 --> 00:53:01,840 ასე რომ, ალბათ, თქვენ აპირებს მიიღოს გამოუცხადებელ იდენტიფიკატორი შეცდომა ნაცვლად. 1303 00:53:01,840 --> 00:53:04,006 ასე რომ, ეს მხოლოდ თქმას მე არ ვიცი, რა არის. 1304 00:53:04,006 --> 00:53:04,920 1305 00:53:04,920 --> 00:53:05,920 ზემოთ, არაფერი? 1306 00:53:05,920 --> 00:53:07,744 1307 00:53:07,744 --> 00:53:08,980 ჰო, კარგი, ლამაზი. 1308 00:53:08,980 --> 00:53:10,330 1309 00:53:10,330 --> 00:53:12,400 >> ყველა righty, ამიტომ უკან. 1310 00:53:12,400 --> 00:53:15,160 ამიტომ ვთქვი, რამდენიმე ჯერ რომ ჩვენ შეიძლება დასტის overflow 1311 00:53:15,160 --> 00:53:17,919 იმიტომ, რომ ჩვენ მოვუწოდებთ ჩვენს რეკურსიული ფუნქცია ასე ბევრჯერ. 1312 00:53:17,919 --> 00:53:20,210 ჩვენ ვიღებთ ყველა ამ დასტის ფარგლებში, blah, blah, blah. 1313 00:53:20,210 --> 00:53:22,420 რაც კი არის რეკურსიული ფუნქცია? 1314 00:53:22,420 --> 00:53:25,680 ასევე, რეკურსიული ფუნქცია ნებისმიერი ფუნქცია, რომელიც მოუწოდებს თავად. 1315 00:53:25,680 --> 00:53:26,820 1316 00:53:26,820 --> 00:53:30,160 >> ზოგი რამ უნდა იცოდეს, როდესაც თქვენ ახორციელებს რეკურსიული ფუნქცია, 1317 00:53:30,160 --> 00:53:31,940 არ უნდა დაგვავიწყდეს, რომ მოიცავს ბაზის შემთხვევაში. 1318 00:53:31,940 --> 00:53:34,010 ბაზის საქმე პუნქტი, რომელიც დასრულდება. 1319 00:53:34,010 --> 00:53:38,740 ასე, მაგალითად, თუ ჩვენ კოდირების, , ვთქვათ, Fibonacci რეკურსიული, 1320 00:53:38,740 --> 00:53:43,210 ჩვენ გვინდა დავრწმუნდეთ, რომ როდესაც მივიღებთ 0-ან პირველ Fibonacci ნომერი, 1321 00:53:43,210 --> 00:53:46,220 იმ ორი ნომერი, რომ ამ შემთხვევაში, იმიტომ, რომ ეს არ არის დამოკიდებული 1322 00:53:46,220 --> 00:53:47,700 რამ, რაც ადრე მოვიდა. 1323 00:53:47,700 --> 00:53:48,990 მათ აქვთ საკუთარი ღირებულებები. 1324 00:53:48,990 --> 00:53:51,270 1325 00:53:51,270 --> 00:53:55,320 >> რაღაც დადებითი, რათა უკან, რომელიც კითხვა, რომელიც ჩვენ ვნახეთ წარსულში ტესტებში. 1326 00:53:55,320 --> 00:53:57,930 ისინი შეიძლება გამოიწვიოს მოკლე, ელეგანტური კოდი. 1327 00:53:57,930 --> 00:54:00,510 და ბევრი ფუნქციები, ბევრი სხვადასხვა ალგორითმები, 1328 00:54:00,510 --> 00:54:02,350 რეალურად lend საკუთარ თავს უკან. 1329 00:54:02,350 --> 00:54:05,510 მათი განმარტება შეიძლება იყოს რეკურსიული და თავისთავად. 1330 00:54:05,510 --> 00:54:06,980 ასე Fibonacci არის. 1331 00:54:06,980 --> 00:54:07,860 ფაქტორიალი არის. 1332 00:54:07,860 --> 00:54:10,480 შერწყმა დალაგების არის one-- ყველა რამ, რომ თქვენ შეიძლება შევხედოთ. 1333 00:54:10,480 --> 00:54:12,650 1334 00:54:12,650 --> 00:54:13,460 OK, შეკითხვები? 1335 00:54:13,460 --> 00:54:13,960 დიახ? 1336 00:54:13,960 --> 00:54:15,644 1337 00:54:15,644 --> 00:54:19,612 >> სტუდენტი: არის კუთხეში შემთხვევაში მსგავსი ბაზის შემთხვევაში? 1338 00:54:19,612 --> 00:54:22,590 ან არის, რომ ზოგიერთი სხვა სახის [INAUDIBLE]? 1339 00:54:22,590 --> 00:54:25,170 >> HANNAH: რა თქმა უნდა, ასე რომ კუთხეში შემთხვევაში არის any-- ასე 1340 00:54:25,170 --> 00:54:27,580 არის კუთხეში შემთხვევაში იგივე როგორც ბაზის შემთხვევაში? 1341 00:54:27,580 --> 00:54:32,825 კუთხეში შემთხვევაში რამე რომ თქვენი კოდი შეიძლება მოიქცეს ცოტა განსხვავებულად. 1342 00:54:32,825 --> 00:54:34,450 1343 00:54:34,450 --> 00:54:38,610 ბაზის შემთხვევაში არის ერთგვარი დაკავშირებული, in რომ ისინი, როგორც განსაკუთრებული შემთხვევა 1344 00:54:38,610 --> 00:54:40,240 რომ თქვენ გვინდა შევხედოთ. 1345 00:54:40,240 --> 00:54:43,240 მაგრამ იდეა ბაზის შემთხვევაში არის ის, რომ გსურთ თქვენი რეკურსიული ფუნქცია 1346 00:54:43,240 --> 00:54:44,870 შეჩერება რაღაც მომენტში. 1347 00:54:44,870 --> 00:54:46,490 მას არ შეუძლია შეინარჩუნოს მოუწოდებდა თავად სამუდამოდ. 1348 00:54:46,490 --> 00:54:47,781 ეს უნდა შეწყდეს რაღაც მომენტში. 1349 00:54:47,781 --> 00:54:49,340 1350 00:54:49,340 --> 00:54:53,460 >> ROB: დიახ, ხშირად, თქვენი ბაზის შემთხვევებში შესაძლოა მაგალითები კუთხეში ბაზები. 1351 00:54:53,460 --> 00:54:55,876 >> HANNAH: მარჯვენა, cool, არაფერი? 1352 00:54:55,876 --> 00:54:58,732 >> სტუდენტი: იქნებ ახსნას ბაზების ცოტა მეტი? 1353 00:54:58,732 --> 00:55:01,600 მე არ მესმის [INAUDIBLE] ბაზის შემთხვევაში. 1354 00:55:01,600 --> 00:55:02,676 >> HANNAH: ბაზის შემთხვევაში? 1355 00:55:02,676 --> 00:55:03,140 >> სტუდენტი: Base შემთხვევაში, yeah. 1356 00:55:03,140 --> 00:55:03,770 >> HANNAH: Oh yeah, დარწმუნებული ვარ. 1357 00:55:03,770 --> 00:55:04,270 ვნახოთ. 1358 00:55:04,270 --> 00:55:05,480 ჩვენ არ ცარცით აქ? 1359 00:55:05,480 --> 00:55:06,690 1360 00:55:06,690 --> 00:55:07,320 დიახ, ჩვენ ვაკეთებთ. 1361 00:55:07,320 --> 00:55:09,530 OK, ასე რომ ძალიან სწრაფად, მე ცდილობენ წერენ დიდი საკმარისი 1362 00:55:09,530 --> 00:55:11,320 ასე რომ თქვენ ხედავთ ეკრანზე. 1363 00:55:11,320 --> 00:55:13,490 მოდით ვისაუბროთ, ნამდვილად სწრაფად, Fibonacci. 1364 00:55:13,490 --> 00:55:15,550 ასე რომ, მე გაძლევთ Fibonacci თანმიმდევრობა. 1365 00:55:15,550 --> 00:55:17,090 თქვენ შეგიძლიათ ეძებოთ განმარტება. 1366 00:55:17,090 --> 00:55:26,050 >> არსებითად, თითოეული ნომერი თანმიმდევრობა ეს არის თანხა, ორი წინა ნომრები. 1367 00:55:26,050 --> 00:55:29,720 OK, ასე რომ, ისე, რომ მე უბრალოდ აღწერილი Fibonacci, 1368 00:55:29,720 --> 00:55:31,530 თქვენ შეიძლება მოვისმინოთ უკან, არა? 1369 00:55:31,530 --> 00:55:35,280 როდესაც ვთქვი, თითოეული ნომერი არის თანხა წინა ორი ნომრები, 1370 00:55:35,280 --> 00:55:36,420 ჩვენ შეგვიძლია ვთქვათ, OK. 1371 00:55:36,420 --> 00:55:38,570 ასევე, nth Fibonacci number-- მოდით 1372 00:55:38,570 --> 00:55:42,260 ამბობენ, რომ ჩვენ ამ ფუნქციის მოუწოდა fib-- FIB ო 1373 00:55:42,260 --> 00:55:48,260 იქნება ტოლი FIB ო მინუს 1 plus-- უკაცრავად, 1374 00:55:48,260 --> 00:55:51,240 ჩვენ ვაპირებთ, რათა მომდევნო ხაზი მეტი აქ FIB of n მინუს 2. 1375 00:55:51,240 --> 00:55:52,790 1376 00:55:52,790 --> 00:55:56,790 >> OK, ასე რომ, ეს მუშაობს დიდი თუ თქვენ შევხედავთ, მაგალითად, ნულოვანი, ერთი, 1377 00:55:56,790 --> 00:55:59,410 ორი, სამი, ოთხი, მეხუთე Fibonacci ნომერი, 1378 00:55:59,410 --> 00:56:03,561 სადაც შეიძლება ითქვას, რომ 5 უდრის 2 + 3. 1379 00:56:03,561 --> 00:56:05,060 მაგრამ რა, თუ თქვენ დასაწყისში? 1380 00:56:05,060 --> 00:56:07,184 რა მოხდება, თუ თქვენ უბრალოდ hitting პირველი ორი ღირებულებები? 1381 00:56:07,184 --> 00:56:08,470 1382 00:56:08,470 --> 00:56:11,330 >> იმისათვის რომ ეს 1 თქვენ არ შეგიძლიათ ამბობენ რჩეულებში წინა ორი, 1383 00:56:11,330 --> 00:56:13,930 იმიტომ, რომ ნულოვანი and-- არ ვიცი. 1384 00:56:13,930 --> 00:56:15,390 ასე რომ რაღაც მომენტში, ჩვენ უნდა შეწყვიტოს. 1385 00:56:15,390 --> 00:56:21,250 რაღაც მომენტში, უნდა ითქვას, რომ ეს ორი უბრალოდ აქვს საკუთარი განმარტებები. 1386 00:56:21,250 --> 00:56:23,890 0 Fibonacci ნომერი 0. 1387 00:56:23,890 --> 00:56:26,115 და პირველი Fibonacci ნომერი 1. 1388 00:56:26,115 --> 00:56:34,120 >> ასე რომ გზა, მე შეიძლება კოდექსს, I ვიტყოდი, თუ n ნაკლებია, ვიდრე ორი, 1389 00:56:34,120 --> 00:56:35,130 შემდეგ დააბრუნებს n. 1390 00:56:35,130 --> 00:56:36,494 და ეს იქნება ჩემი ბაზის შემთხვევაში. 1391 00:56:36,494 --> 00:56:38,660 აი, როგორ მე ვიცი, რომ შეწყვიტოს რეკურსიული ფუნქცია. 1392 00:56:38,660 --> 00:56:40,640 1393 00:56:40,640 --> 00:56:41,410 ის არის, რომ ნათელი? 1394 00:56:41,410 --> 00:56:41,940 გასაოცარია. 1395 00:56:41,940 --> 00:56:43,260 არაფერი უკან? 1396 00:56:43,260 --> 00:56:44,890 1397 00:56:44,890 --> 00:56:45,930 ლამაზი. 1398 00:56:45,930 --> 00:56:48,750 >> მოდით სწრაფად საუბრობენ ძებნის და დალაგება აწარმოებს ჯერ. 1399 00:56:48,750 --> 00:56:52,660 და მერე მისცემს Davin ზოგიერთი დრო ვილაპარაკოთ კოდირების მაგალითები. 1400 00:56:52,660 --> 00:56:56,490 ასე რომ, აქ არის მთავარი ძიება და სახის, რომ თქვენ უნდა იცოდეს ამის შესახებ. 1401 00:56:56,490 --> 00:56:59,500 Guarantee-- მე ვერ უზრუნველყოფს, იმიტომ, რომ მე არ მინახავს quiz-- 1402 00:56:59,500 --> 00:57:01,940 მაგრამ ეს მოდის ვიქტორინა მას შემდეგ, რაც ვიქტორინა შემდეგ დატოვა. 1403 00:57:01,940 --> 00:57:04,050 ასე რომ, ნამდვილად გამოიყენოს ეს სქემა. 1404 00:57:04,050 --> 00:57:05,682 როგორიცაა, მიიღოს ეს სქემა. 1405 00:57:05,682 --> 00:57:06,890 დააყენოს ის თქვენს cheat ფურცელი. 1406 00:57:06,890 --> 00:57:07,931 თქვენ უნდა იყოს ბედნიერი. 1407 00:57:07,931 --> 00:57:09,010 1408 00:57:09,010 --> 00:57:12,590 >> ეს გვეუბნება, პერსპექტივაში ჯერ თითოეული ამ დალაგება და ძებნის ალგორითმები. 1409 00:57:12,590 --> 00:57:14,020 1410 00:57:14,020 --> 00:57:18,850 ასე ხაზოვანი ძებნა, ხედავთ პერსპექტივაში დრო, და იგივე ორობითი ძებნა. 1411 00:57:18,850 --> 00:57:21,490 წავიდეთ მეტი რა ეს ალგორითმები ამის გაკეთება, იდეა. 1412 00:57:21,490 --> 00:57:24,220 შევხედოთ ზოგიერთი pseudocode, თუ არ თავად კოდი. 1413 00:57:24,220 --> 00:57:25,610 1414 00:57:25,610 --> 00:57:30,380 >> თქვენ ნახავთ, რომ bubble sort აქვს ზედა შეკრული, უარეს შემთხვევაში n კვადრატში. 1415 00:57:30,380 --> 00:57:31,490 1416 00:57:31,490 --> 00:57:34,680 ასე რომ, თუ ჩვენი მასივი იყო სრულიად უკან ადრე გვინდოდა დასალაგებლად ის, 1417 00:57:34,680 --> 00:57:37,090 ჩვენ ვთქვათ, რომ ეს არის ის, აპირებს n კვადრატში ნაბიჯები. 1418 00:57:37,090 --> 00:57:38,160 1419 00:57:38,160 --> 00:57:41,730 მაგრამ საუკეთესო შემთხვევაში, ასე ქვედა შეკრული, საუკეთესო შემთხვევაში 1420 00:57:41,730 --> 00:57:44,300 იქნება, თუ ის უკვე კარგად გადანაწილებული. 1421 00:57:44,300 --> 00:57:46,671 მაშინ ყველა ჩვენ უნდა გავაკეთოთ არის შეამოწმეთ, რომ ეს დახარისხებული. 1422 00:57:46,671 --> 00:57:47,921 იქ არის საკითხი აქ? 1423 00:57:47,921 --> 00:57:49,805 >> სტუდენტი: როდესაც გვინდა გსურთ გამოიყენოთ დალაგება? 1424 00:57:49,805 --> 00:57:50,747 დალაგება. 1425 00:57:50,747 --> 00:57:52,160 მე უბრალოდ ცნობისმოყვარე. 1426 00:57:52,160 --> 00:57:53,510 >> HANNAH: როდესაც რომ თქვენ გსურთ გამოიყენოთ შერჩევის დალაგება? 1427 00:57:53,510 --> 00:57:54,010 ეს ერთი? 1428 00:57:54,010 --> 00:57:55,705 ერთი, რომ n კვადრატში ორივე შემთხვევაში? 1429 00:57:55,705 --> 00:57:56,860 >> სტუდენტი: [INAUDIBLE]. 1430 00:57:56,860 --> 00:57:58,151 >> HANNAH ასე რომ, ეს არის ძალიან განსხვავებული. 1431 00:57:58,151 --> 00:58:00,760 თუ თქვენ გაქვთ კონკრეტული მოთხოვნები თქვენს პროგრამაში, 1432 00:58:00,760 --> 00:58:04,887 მსგავსი რამ თუ ჩვენ უბრალოდ განაცხადა, განახორციელოს search-- ბოდიში 1433 00:58:04,887 --> 00:58:06,720 განახორციელოს ერთგვარი, თქვენ ალბათ მინდა წასვლა 1434 00:58:06,720 --> 00:58:09,950 ერთ-ერთი პირობა, რომ აქვს საუკეთესო შემთხვევაში n, 1435 00:58:09,950 --> 00:58:12,410 ან ქვედა ზღვარი, საუკეთესო შემთხვევაში, ო. 1436 00:58:12,410 --> 00:58:14,790 მაგრამ შეიძლება იყოს გარკვეული რამ, როგორიცაა, ვთქვათ, 1437 00:58:14,790 --> 00:58:16,767 გაცვლებს ხართ ნამდვილად ძვირადღირებული რატომღაც. 1438 00:58:16,767 --> 00:58:18,850 მაშინ მინდა ამის გაკეთება bubble sort, იმიტომ, რომ თქვენ 1439 00:58:18,850 --> 00:58:20,641 უნდა გავაკეთოთ ისე ბევრი გაცვლებს, რამ, როგორიცაა, რომ. 1440 00:58:20,641 --> 00:58:21,710 1441 00:58:21,710 --> 00:58:23,098 ნებისმიერი other-- yes? 1442 00:58:23,098 --> 00:58:25,488 >> სტუდენტი: თუ ეს იქნება [INAUDIBLE] ვთქვა, რომ [INAUDIBLE]? 1443 00:58:25,488 --> 00:58:30,077 1444 00:58:30,077 --> 00:58:31,910 HANNAH: ეს არის ერთ ერთი რამ რომ გითხრათ, 1445 00:58:31,910 --> 00:58:33,670 თუ თქვენ ეძებს განხორციელებას. 1446 00:58:33,670 --> 00:58:35,850 გზა მე რეალურად იმაზე, თუ რატომ ეს ო 1447 00:58:35,850 --> 00:58:40,840 კვადრატი არის, რომ ჩვენ უნდა აწარმოებს ჩვენი სიგრძის მასივი n, 1448 00:58:40,840 --> 00:58:42,765 ყოველი მიღების ყველაზე, n გაცვლებს. 1449 00:58:42,765 --> 00:58:43,980 1450 00:58:43,980 --> 00:58:46,220 და ჩვენ გვაქვს, რომ ეს პროცესი n დროს. 1451 00:58:46,220 --> 00:58:51,130 >> ასე რომ, როდესაც თქვენ უნდა მიიღოს ყველაზე, n გაცვლებს და n გადის მასივი, 1452 00:58:51,130 --> 00:58:52,380 იქ უნდა იყოს N კვადრატში. 1453 00:58:52,380 --> 00:58:55,480 მაგრამ დიახ, ეს იქნება გამოვლინდა ამ ორმაგი მარყუჟი, 1454 00:58:55,480 --> 00:58:59,428 კითხვაზე asked-- ან წყობილი ამისთვის მარყუჟის, მე უნდა ვთქვა. 1455 00:58:59,428 --> 00:59:00,890 OK? 1456 00:59:00,890 --> 00:59:03,375 >> შემდეგ შერწყმა ჯიშია, არის სწრაფი დალაგების ჩვენ ახლა 1457 00:59:03,375 --> 00:59:07,560 ან რომ ჩვენ დაფარული in CS50, ვიცით, რომ მთავარი ალგორითმი 1458 00:59:07,560 --> 00:59:10,150 ამ იდეას არღვევს დახარისხებული ცალი და შემდეგ 1459 00:59:10,150 --> 00:59:11,980 შერწყმის ერთად ამ დახარისხებული ბიტი. 1460 00:59:11,980 --> 00:59:14,170 და მიიღებს us შესვლა N შესვლა n. 1461 00:59:14,170 --> 00:59:17,110 რაიმე შეკითხვები ძიება და სახის სანამ მე გაიაროს ეს? 1462 00:59:17,110 --> 00:59:19,840 1463 00:59:19,840 --> 00:59:21,040 ვნახოთ. 1464 00:59:21,040 --> 00:59:21,800 >> Oh, დაკავშირებული სიები. 1465 00:59:21,800 --> 00:59:23,210 უკაცრავად, მაქვს კიდევ ერთი თემა. 1466 00:59:23,210 --> 00:59:25,000 OK, გასაოცარია, დაკავშირებული სიები. 1467 00:59:25,000 --> 00:59:27,900 პრობლემა მასივები, მათ აქვთ ფიქსირებული ზომა. 1468 00:59:27,900 --> 00:59:30,634 ასე რომ, თუ თქვენ არ იცით, თუ როგორ დიდი თქვენი შეყვანის იქნება, 1469 00:59:30,634 --> 00:59:32,050 თქვენ არ მინდა, რომ შევქმნათ მასივი. 1470 00:59:32,050 --> 00:59:34,080 იმიტომ, რომ თუ ჩვენ შევქმნით მასივი, რომელიც არის ძალიან პატარა, 1471 00:59:34,080 --> 00:59:35,930 ჩვენ შეიძლება აწარმოებს შევიდა ბუფერული overflow. 1472 00:59:35,930 --> 00:59:38,890 >> ამიტომ ჩვენ შეიძლება რაღაც უკავშირდება სიები, რომელიც 1473 00:59:38,890 --> 00:59:44,280 საშუალებას გვაძლევს დინამიურად ზომის მონაცემები სტრუქტურა 1474 00:59:44,280 --> 00:59:48,970 რომელიც საშუალებას მოგვცემს შესანახად უფრო მოქნილი რაოდენობით მონაცემები. 1475 00:59:48,970 --> 00:59:54,030 ასე რომ თითოეული კვანძის ჩვენს უკავშირდება სია, ჩვენ გვაქვს ორი ცალი. 1476 00:59:54,030 --> 00:59:56,820 გვაქვს ფაქტობრივი არც ის, რომ ინახავს. 1477 00:59:56,820 --> 00:59:59,530 ასე რომ მხოლოდ ის, რაც თქვენ, იხილეთ მასივი, მაგალითად. 1478 00:59:59,530 --> 01:00:04,600 და მაშინ ჩვენ ასევე ტრეკზე მომცეთ შემდეგი რამ მეხსიერებაში. 1479 01:00:04,600 --> 01:00:06,430 >> განსხვავებით მასივები, რომელიც ჩვენ ვიცით, ყველა აპირებს 1480 01:00:06,430 --> 01:00:10,890 to be-- მასივი ელემენტები არიან ერთი მიყოლებით მეხსიერება უკავშირდება 1481 01:00:10,890 --> 01:00:13,300 სიები შეიძლება იყოს სადმე მეხსიერება. 1482 01:00:13,300 --> 01:00:14,590 ისინი თვითნებური. 1483 01:00:14,590 --> 01:00:16,410 ასე რომ, თუ ჩვენ უნდა რეალურად წასვლა, ჩვენ 1484 01:00:16,410 --> 01:00:19,770 უნდა შევინარჩუნოთ სიმღერა შემდეგი რამ ჩვენს სიაში. 1485 01:00:19,770 --> 01:00:22,840 >> და მაშინ, იმისათვის, რომ ვიცი სადაც, რომ სიაში, როგორც მთელი, 1486 01:00:22,840 --> 01:00:26,276 ჩვენ უნდა შევინარჩუნოთ სიმღერა არის ძალიან პირველად ელემენტს უკავშირდება სიაში. 1487 01:00:26,276 --> 01:00:27,900 და რომ ყველაფერს საშუალებას გვაძლევს შეასრულა. 1488 01:00:27,900 --> 01:00:31,020 1489 01:00:31,020 --> 01:00:33,070 >> ასე რომ, ეს არის, თუ როგორ შეიძლება განისაზღვროს რეჟიმში. 1490 01:00:33,070 --> 01:00:36,160 ეს არის დიდი შესაძლებლობა ისარგებლოს structs. 1491 01:00:36,160 --> 01:00:39,660 იმის გამო, რომ თქვენ გაქვთ ეს იდეა, ისევე, მოცემული კვანძის, მაქვს ორი ცალი. 1492 01:00:39,660 --> 01:00:41,770 მაქვს ფაქტობრივი ღირებულება თავისთავად. 1493 01:00:41,770 --> 01:00:45,610 და მაშინ მე უნდა მომცეთ მომდევნო ელემენტს უკავშირდება სიაში. 1494 01:00:45,610 --> 01:00:49,150 ასე რომ, ხედავთ, ჩვენ გვაქვს მთელი რიცხვი n, რომელიც იქნება რეალური ღირებულება, 1495 01:00:49,150 --> 01:00:53,150 და მერე მომცეთ კვანძის მოუწოდა შემდეგი. 1496 01:00:53,150 --> 01:00:56,431 ასე რომ, ეს იქნება შემდეგი ელემენტს უკავშირდება სიაში. 1497 01:00:56,431 --> 01:00:56,972 სტუდენტი: დიახ? 1498 01:00:56,972 --> 01:01:01,920 ნუ თქვენ უნდა მიუთითოთ, რომ ვარსკვლავი, როგორც struct? 1499 01:01:01,920 --> 01:01:05,620 >> HANNAH: დიახ, ასე, რადგან ეს თითქმის ისევე, როგორც სახის, 1500 01:01:05,620 --> 01:01:07,980 როგორც ჩანს, რეკურსიული განმარტება, რომ ჩვენ 1501 01:01:07,980 --> 01:01:12,080 უნდა იცოდეს, რა კვანძის შიგნით მოძიებაში კვანძში. 1502 01:01:12,080 --> 01:01:14,450 მას შემდეგ, რაც ფაქტობრივად არ იცით, რა კვანძის სრულიად 1503 01:01:14,450 --> 01:01:17,283 სანამ არ მივიღებთ ბოლომდე ამას და ამის შემდეგ ჩვენ შეგვიძლია მხოლოდ მას 1504 01:01:17,283 --> 01:01:21,935 კვანძში შიგნით განმარტება, ჩვენ უნდა ეძახით struct კვანძში. 1505 01:01:21,935 --> 01:01:22,560 დიდი კითხვა. 1506 01:01:22,560 --> 01:01:23,580 1507 01:01:23,580 --> 01:01:25,214 არაფერი? 1508 01:01:25,214 --> 01:01:26,198 დიახ? 1509 01:01:26,198 --> 01:01:29,150 >> სტუდენტი: რატომ უნდა ვთქვა კვანძის ორჯერ? 1510 01:01:29,150 --> 01:01:33,578 იმიტომ, რომ როდესაც ჩვენ [INAUDIBLE] ჩვენ უბრალოდ უნდა გავაკეთოთ ეს მძიმით, 1511 01:01:33,578 --> 01:01:37,352 მაგრამ ახლა ჩვენ უნდა მოვძებნოთ რომ struct კვანძის? [INAUDIBLE]. 1512 01:01:37,352 --> 01:01:39,060 HANNAH: მე მჯერა, ბოლო მაგალითად, 1513 01:01:39,060 --> 01:01:42,110 ჩვენ უბრალოდ შექმნაში ნებისმიერ დროს გამოყენება სურდა სტუდენტი შემდეგ, თქვენ 1514 01:01:42,110 --> 01:01:46,430 უნდა გამოვიყენოთ struct კვანძში მე ბოდიში struct სტუდენტი. 1515 01:01:46,430 --> 01:01:51,575 ეს მოგვცა, მას შემდეგ, ფაქტობრივად, მხოლოდ გამოყენების კვანძის დაამატოთ ახალი ტიპის, არსებითად. 1516 01:01:51,575 --> 01:01:53,324 1517 01:01:53,324 --> 01:01:53,990 აზრი? 1518 01:01:53,990 --> 01:01:54,984 1519 01:01:54,984 --> 01:01:57,150 ასე რომ ჩვენ გვინდა უნდა დაბრუნდეს და შევხედოთ კოდი ადრე. 1520 01:01:57,150 --> 01:01:59,025 მაგრამ ვხვდები, რომ ჩვენ არ გამოიყენოს typedef. 1521 01:01:59,025 --> 01:02:02,050 და ჩვენს კითხვაზე, რატომ უნდა გამოვიყენოთ typedef? 1522 01:02:02,050 --> 01:02:05,540 Typedef საშუალებას გვაძლევს თავიდან ავიცილოთ სიტყვა struct დასაწყისში. 1523 01:02:05,540 --> 01:02:06,221 დიახ? 1524 01:02:06,221 --> 01:02:08,095 სტუდენტი: რა სახის კითხვები ამუშავება 1525 01:02:08,095 --> 01:02:10,400 თვალსაზრისით თვალსაზრისით კვანძების და უკავშირდება სიები? 1526 01:02:10,400 --> 01:02:15,110 >> HANNAH: ასე რომ ერთი რამ შეიძლება ითქვას, თუ როგორ შეიძლება თქვენ ძებნის საშუალებით უკავშირდება სიაში? 1527 01:02:15,110 --> 01:02:16,930 OK, იმიტომ, რომ ეს ცოტა უფრო რთული 1528 01:02:16,930 --> 01:02:18,520 მეტი თუ ჩვენ ეძებს მეშვეობით მასივი. 1529 01:02:18,520 --> 01:02:21,472 ჩვენ შეგვიძლია შევჩერდეთ ელემენტს ნულოვანი, ელემენტით ერთი ელემენტი, ორი, blah, blah, 1530 01:02:21,472 --> 01:02:21,972 blah. 1531 01:02:21,972 --> 01:02:22,629 1532 01:02:22,629 --> 01:02:24,420 თუ ჩვენ გვინდა, ძიება მეშვეობით უკავშირდება სიაში, 1533 01:02:24,420 --> 01:02:27,229 ჩვენ გვინდა რეალურად უნდა დაიცვას ამ პატარა maze მითითებას. 1534 01:02:27,229 --> 01:02:29,270 მოდით რეალურად წასვლა ამ მართლაც სწრაფად. 1535 01:02:29,270 --> 01:02:30,460 1536 01:02:30,460 --> 01:02:32,860 რისი გაკეთება შეგვიძლია ამ შეკვეთა რომელთა მიზანია ვთქვათ 1537 01:02:32,860 --> 01:02:35,430 მინდა უბრალოდ iterate მეშვეობით ჩვენი მთლიანად უკავშირდება სიაში. 1538 01:02:35,430 --> 01:02:37,450 ჩვენ დაიწყება ხელმძღვანელი. 1539 01:02:37,450 --> 01:02:39,890 და მაშინ, იმისათვის, გადატანა მომდევნო ელემენტს, 1540 01:02:39,890 --> 01:02:43,680 ნაცვლად მხოლოდ დამატება ერთი როგორც ჩვენ, შესაძლოა გადის მასივი, 1541 01:02:43,680 --> 01:02:45,720 ჩვენ რეალურად აპირებს დაიცვას შემდეგი მაჩვენებელი, 1542 01:02:45,720 --> 01:02:48,360 ასე რომ შეგიძლიათ სადაც მეხსიერება შემდეგი ელემენტი. 1543 01:02:48,360 --> 01:02:49,357 1544 01:02:49,357 --> 01:02:51,690 ასე რომ, მე ვიცი, რომ ეს არ არის საკმარისი მიიღოს ეს ყველაფერი ახლა, 1545 01:02:51,690 --> 01:02:52,650 მაგრამ თქვენ უნდა ეს სლაიდები. 1546 01:02:52,650 --> 01:02:54,730 ასე რომ თქვენ შეგიძლიათ გადის ეს ცოტა უფრო ნელა. 1547 01:02:54,730 --> 01:02:56,890 მაგრამ არსებითად, რაც ჩვენ გვინდა რომ გააკეთოთ, არის დაიცვას ამ მითითებას 1548 01:02:56,890 --> 01:02:58,550 მეშვეობით მთლიანად უკავშირდება სიაში. 1549 01:02:58,550 --> 01:03:00,258 ასე რომ, ეს არის საკითხი, თქვენ შეიძლება სთხოვა. 1550 01:03:00,258 --> 01:03:01,920 1551 01:03:01,920 --> 01:03:03,980 >> რაღაც შეამჩნია ერთად ჩასმა, ვთქვათ, 1552 01:03:03,980 --> 01:03:07,925 გვინდოდა ახალი ელემენტი წინ ჩვენი უკავშირდება სიაში. 1553 01:03:07,925 --> 01:03:10,800 ჩვენ უნდა ვიყოთ ძალიან ფრთხილად, შესახებ ბრძანება, რომელშიც ჩვენ 1554 01:03:10,800 --> 01:03:12,760 გადაიყვანა მითითებას. 1555 01:03:12,760 --> 01:03:15,230 იმის გამო, რომ ვთქვათ, მე მხოლოდ ის განაცხადა, OK. 1556 01:03:15,230 --> 01:03:18,930 რათა უფროსმა წერტილი ამ ახალ ელემენტს. 1557 01:03:18,930 --> 01:03:23,550 მხოლოდ ის აღვნიშნო, რომ 1 შემდეგ, ჩვენ არსებითად დაკარგა დანარჩენი ჩვენი სია, 1558 01:03:23,550 --> 01:03:25,860 იმიტომ, რომ მე არ მახსოვს, სადაც 2 სიცოცხლე. 1559 01:03:25,860 --> 01:03:27,730 >> ამიტომ, ჩვენ უნდა გავაკეთოთ ძალიან კონკრეტული მიზნით. 1560 01:03:27,730 --> 01:03:31,500 პირველი, ჩვენ ახალი ელემენტის წერტილი ხელმძღვანელი. 1561 01:03:31,500 --> 01:03:33,970 და მაშინ ჩვენ ხელმძღვანელი აღვნიშნო, რომ ახალ ელემენტს. 1562 01:03:33,970 --> 01:03:38,455 ასე რომ, ვნახოთ რა, რომ ჰგავს ერთად arrows-- ისევე, რომ. 1563 01:03:38,455 --> 01:03:42,080 ასე რომ თქვენ პირველი უნდა ახალი ელემენტის წერტილი ძველი ხელმძღვანელი. 1564 01:03:42,080 --> 01:03:45,990 და ახლა, ჩვენ გვაქვს ხელმძღვანელი აღვნიშნო, რომ პირველ ელემენტს. 1565 01:03:45,990 --> 01:03:47,187 რაიმე შეკითხვები ამ საკითხთან დაკავშირებით? 1566 01:03:47,187 --> 01:03:49,870 1567 01:03:49,870 --> 01:03:54,350 >> OK აქ არის რამდენიმე კოდი ერთხელ, რაღაც შევხედოთ ცოტა მოგვიანებით. 1568 01:03:54,350 --> 01:03:58,630 და ახლა აქციოს ეს მეტი Davin for GDB და ცოტა პრაქტიკა 1569 01:03:58,630 --> 01:03:59,480 კოდირების ქაღალდზე. 1570 01:03:59,480 --> 01:04:00,597 1571 01:04:00,597 --> 01:04:01,096 ლამაზი. 1572 01:04:01,096 --> 01:04:01,810 >> ROB: Rob. 1573 01:04:01,810 --> 01:04:02,360 >> HANNAH: Oh, Davin და Rob. 1574 01:04:02,360 --> 01:04:03,055 მე ბოდიში. 1575 01:04:03,055 --> 01:04:03,596 >> სტუდენტი: Woo! 1576 01:04:03,596 --> 01:04:08,140 1577 01:04:08,140 --> 01:04:09,110 >> ROB: მადლობა. 1578 01:04:09,110 --> 01:04:11,209 >> Davin: არ მინდა ვთქვა, ყველაფერი რეალური სწრაფი? 1579 01:04:11,209 --> 01:04:11,875 ROB: Yeah, yeah. 1580 01:04:11,875 --> 01:04:12,845 Davin: მას შემდეგ, რაც მე up. 1581 01:04:12,845 --> 01:04:16,240 1582 01:04:16,240 --> 01:04:19,520 OK, ხოლო Rob აყენებს მიკროფონი, ასე რომ GDB? 1583 01:04:19,520 --> 01:04:23,945 ყველას უნდა სცოდნოდა, GDB in კლასი და ასევე საათებში. 1584 01:04:23,945 --> 01:04:25,070 და თქვენ უნდა იყოს მისი გამოყენება. 1585 01:04:25,070 --> 01:04:25,750 რა არის GDB? 1586 01:04:25,750 --> 01:04:28,030 1587 01:04:28,030 --> 01:04:28,850 ვინმეს? 1588 01:04:28,850 --> 01:04:29,540 >> სტუდენტი: ეს debugger. 1589 01:04:29,540 --> 01:04:30,250 >> Davin: ეს debugger. 1590 01:04:30,250 --> 01:04:31,624 და რას ნიშნავს ეს საშუალებას გაძლევთ ამის გაკეთება? 1591 01:04:31,624 --> 01:04:33,064 როგორიცაა, რატომ მოსწონს GDB? 1592 01:04:33,064 --> 01:04:34,480 სტუდენტი: შეანელებს პროგრამა. 1593 01:04:34,480 --> 01:04:36,740 Davin: მარჯვენა, შეგიძლიათ ფეხით მეშვეობით, როგორიცაა ადამიანის ტემპებით. 1594 01:04:36,740 --> 01:04:38,490 ასე რომ, რა არის გარკვეული ბრძანებები შეგიძლიათ გააკეთოთ? 1595 01:04:38,490 --> 01:04:40,407 ასევე, შესვენების ალბათ თქვენი საყვარელი ბრძანება. 1596 01:04:40,407 --> 01:04:43,240 იმის გამო, რომ, რომელიც საშუალებას გაძლევთ შესვენება პროგრამა და რეალურად გავლა 1597 01:04:43,240 --> 01:04:44,280 ხაზს. 1598 01:04:44,280 --> 01:04:46,500 >> Run გაძლევთ საშუალებას აწარმოებს. 1599 01:04:46,500 --> 01:04:48,210 შემდეგი, როგორიცაა სტეპინგზე მეშვეობით. 1600 01:04:48,210 --> 01:04:49,820 რა არის შორის მომავალი და ნაბიჯი? 1601 01:04:49,820 --> 01:04:52,190 1602 01:04:52,190 --> 01:04:53,190 დაველოდოთ, ამბობენ, რომ ხმამაღლა. 1603 01:04:53,190 --> 01:04:54,060 ეს იყო სწორი. 1604 01:04:54,060 --> 01:04:55,280 >> სტუდენტი: [INAUDIBLE]. 1605 01:04:55,280 --> 01:04:56,190 >> Davin: დიახ, რა. 1606 01:04:56,190 --> 01:04:59,210 ამიტომ მინდა, მომავალი და ნაბიჯი, თუ you're-- ვთქვათ თქვენ გაქვთ ფუნქცია, თქვენ 1607 01:04:59,210 --> 01:04:59,950 განსაზღვრავს. 1608 01:04:59,950 --> 01:05:03,350 მოდით ამბობენ თქვენს მთავარ ფუნქციას, და თქვენ მხოლოდ დარტყმის შემდეგ, მომდევნო, 1609 01:05:03,350 --> 01:05:03,850 შემდეგი. 1610 01:05:03,850 --> 01:05:05,910 თქვენ რეალურად აპირებს შეასრულოს ეს ფუნქცია, 1611 01:05:05,910 --> 01:05:07,285 მაგრამ თქვენ ნახტომი მეტი იგი. 1612 01:05:07,285 --> 01:05:09,711 თუ თქვენ მოხვდა ნაბიჯი, ან ან რასაც, თქვენ 1613 01:05:09,711 --> 01:05:11,460 აპირებს რეალურად გადასვლა რომ ფუნქცია, 1614 01:05:11,460 --> 01:05:14,110 და მაშინ მოხვდა შემდეგი რომ სხვადასხვა ზარები 1615 01:05:14,110 --> 01:05:16,170 შიგნით რომ ფუნქცია. 1616 01:05:16,170 --> 01:05:16,670 ჰო? 1617 01:05:16,670 --> 01:05:18,670 >> სტუდენტი: არის გზა ხტომა, როგორიცაა, უკან out? 1618 01:05:18,670 --> 01:05:20,750 Davin: Finish, yeah, დასრულდება აირჩიე თქვენ out. 1619 01:05:20,750 --> 01:05:22,570 ასე რომ, ეს უნდა დაასრულოს ამ ფუნქცია, და შემდეგ თქვენ 1620 01:05:22,570 --> 01:05:24,153 იქნება უკან მთავარ მაგალითად. 1621 01:05:24,153 --> 01:05:25,250 1622 01:05:25,250 --> 01:05:27,370 Print ამობეჭდოთ ერთ დროს. 1623 01:05:27,370 --> 01:05:29,381 რაღაც მე ყოველთვის ვიყენებ, არის ჩვენება. 1624 01:05:29,381 --> 01:05:31,880 ჩვენება ამობეჭდოთ მუდმივად მთელი მთლიანად 1625 01:05:31,880 --> 01:05:32,470 თქვენი პროგრამა. 1626 01:05:32,470 --> 01:05:33,810 >> მაგალითად, თუ თქვენ ამისთვის მარყუჟის, და თქვენ 1627 01:05:33,810 --> 01:05:37,018 გვინდა, რომ რაღაც იცვლება, და თქვენ არ მინდა, მინდა, მუდმივად 1628 01:05:37,018 --> 01:05:38,940 უნდა აკეთებს როგორც ბეჭდვითი, ბეჭდვა, ბეჭდვა, ჩვენება 1629 01:05:38,940 --> 01:05:43,230 ცარიელია, რომ ცვლადი მუდმივად, ყოველ დროს, თქვენ მოხვდა შემდეგი. 1630 01:05:43,230 --> 01:05:44,310 და გაგრძელდება. 1631 01:05:44,310 --> 01:05:45,905 ასე GBD, რომ GDB. 1632 01:05:45,905 --> 01:05:47,160 1633 01:05:47,160 --> 01:05:49,180 >> სტუდენტი: რა არის ერთი სადაც თქვენ [INAUDIBLE]? 1634 01:05:49,180 --> 01:05:50,150 1635 01:05:50,150 --> 01:05:50,900 Davin: რა არის ეს? 1636 01:05:50,900 --> 01:05:52,310 1637 01:05:52,310 --> 01:05:54,390 >> სტუდენტი: რა არის the-- ადგილობრივი ცვლადები. 1638 01:05:54,390 --> 01:05:55,364 1639 01:05:55,364 --> 01:05:57,780 ROB: არსებობს რაღაც რეალურად როგორც ადგილობრივები ან რამე. 1640 01:05:57,780 --> 01:05:58,140 სისტემაში მე can not 1641 01:05:58,140 --> 01:05:59,930 >> Davin: ეს შეიძლება იყოს რაღაც რომ, yeah. 1642 01:05:59,930 --> 01:06:00,830 >> HANNAH: In ადგილობრივები? 1643 01:06:00,830 --> 01:06:01,510 >> Davin: ეს არის ის. 1644 01:06:01,510 --> 01:06:02,134 ეს ერთი. 1645 01:06:02,134 --> 01:06:03,040 ROB: Beautiful. 1646 01:06:03,040 --> 01:06:04,030 >> Davin: ჰო. 1647 01:06:04,030 --> 01:06:06,010 >> სტუდენტი: რას გაგრძელდება ამის გაკეთება? 1648 01:06:06,010 --> 01:06:08,010 >> Davin: ეს continues-- ისე უბრალოდ აპირებს გააგრძელოს თქვენი პროგრამებს. 1649 01:06:08,010 --> 01:06:09,843 ასე რომ, თუ თქვენ შესვენება და მოხვდა გაგრძელდება, ის აპირებს 1650 01:06:09,843 --> 01:06:13,119 მხოლოდ აწარმოებს, რომ პროგრამის სანამ გაიტანა რომ შესვენების ერთხელ. 1651 01:06:13,119 --> 01:06:14,910 ასე მაგალითად, თუ თქვენ მა ფუნქცია, 1652 01:06:14,910 --> 01:06:16,720 და თქვენ ვაპირებთ გავაკეთოთ, როგორიც მარყუჟი ან რამე მაგდაგვარს, 1653 01:06:16,720 --> 01:06:19,869 და თქვენ მოხვდა გაგრძელდება, ის აპირებს გაგრძელდება და დაბრუნდეს, რომ შესვენება. 1654 01:06:19,869 --> 01:06:22,660 ან არ არსებობს შესვენება, ის აპირებს გაგრძელდება და დასრულდება პროგრამა. 1655 01:06:22,660 --> 01:06:25,000 >> ROB: ასე რომ, ისევე აწარმოებს გაჩერება პირველივე breakpoint 1656 01:06:25,000 --> 01:06:27,010 თქვენ მოხვდა, თუ მაშინ მოხვდა გაგრძელდება, ეს გავაგრძელებთ 1657 01:06:27,010 --> 01:06:28,070 აპირებს, სანამ ის შემდეგი breakpoint. 1658 01:06:28,070 --> 01:06:30,111 და შემდეგ გააგრძელოს წავა შემდეგი breakpoint. 1659 01:06:30,111 --> 01:06:31,264 1660 01:06:31,264 --> 01:06:32,680 Davin: სხვა კითხვები GDB? 1661 01:06:32,680 --> 01:06:33,577 1662 01:06:33,577 --> 01:06:35,410 ამიტომ, მე ვფიქრობ, რომ წარსულში, ჩვენ ვთხოვეთ, თუ რა 1663 01:06:35,410 --> 01:06:37,690 GDB და მისცეს მაგალითად ზოგიერთი რამ, 1664 01:06:37,690 --> 01:06:40,770 შეუძლია გააკეთოს GDB, ასე რეალური მარტივი, მაგრამ yeah. 1665 01:06:40,770 --> 01:06:42,280 იქ წასვლა. 1666 01:06:42,280 --> 01:06:43,250 და კვანძების? 1667 01:06:43,250 --> 01:06:49,571 >> ROB: დიახ, ასე, რა მიმართულებით იყო ეს? 1668 01:06:49,571 --> 01:06:50,851 1669 01:06:50,851 --> 01:06:51,726 სტუდენტი: ეს იყო იგი. 1670 01:06:51,726 --> 01:06:52,160 Davin: დაველოდოთ. 1671 01:06:52,160 --> 01:06:52,270 ROB: ეს ბიჭი? 1672 01:06:52,270 --> 01:06:52,936 Davin: ეს ერთი. 1673 01:06:52,936 --> 01:06:54,660 ROB: ეს ბიჭი, რა, მე არ ესმოდეს. 1674 01:06:54,660 --> 01:06:56,940 ასე რომ, ჩვენ არ იყო ნათელი, თუ რა the-- მე არ 1675 01:06:56,940 --> 01:06:58,680 ვიცი, ვინც ეს იყო, მაგრამ კითხვა. 1676 01:06:58,680 --> 01:07:01,180 ჩვენ არ ვიცით, ზუსტად რა ითხოვდნენ, რომ ამის შესახებ, ისე უბრალოდ 1677 01:07:01,180 --> 01:07:04,800 განვმარტო, რაღაც. 1678 01:07:04,800 --> 01:07:07,750 ასე რომ, პირველი, როგორც უკვე ვთქვი, typedef თქვენ ყოველთვის გამოყენებით მხოლოდ 1679 01:07:07,750 --> 01:07:09,305 შექმნა მეტსახელი ტიპის. 1680 01:07:09,305 --> 01:07:13,420 ასე რომ სწორედ აქ, მეტსახელად ჩვენ შექმნა არის ამ ტიპის struct კვანძში. 1681 01:07:13,420 --> 01:07:18,070 >> ასე რომ, პირველი, იგნორირება ამ კვანძის typedef, ასე რომ, ეს struct კვანძის curly 1682 01:07:18,070 --> 01:07:21,060 გაუწიოს ქვემოთ შემდეგი curly გაუწიოს არის struct კვანძის ტიპის. 1683 01:07:21,060 --> 01:07:23,470 და ჩვენ გვჭირდება, რომ კვანძის იქ, იმიტომ, რომ ჩვენ 1684 01:07:23,470 --> 01:07:25,190 უნდა მითითებას კვანძის აქ. 1685 01:07:25,190 --> 01:07:29,380 ასე რომ, ამ სახის რეკურსიული struct, თქვენ უნდა მისცეს ამ struct სახელი, 1686 01:07:29,380 --> 01:07:31,340 ანდა თქვენ ვერ ამბობენ struct კვანძის აქ. 1687 01:07:31,340 --> 01:07:33,340 მანამდე სტუდენტი როდესაც ჩვენ აკრეფილი, ვფიქრობ, 1688 01:07:33,340 --> 01:07:35,423 ჩვენ არ უნდა ვთქვათ, სტუდენტი იქ, იმიტომ, რომ ჩვენ 1689 01:07:35,423 --> 01:07:40,370 არ უნდა ვთქვა struct სტუდენტი შიგნით struct თავად. 1690 01:07:40,370 --> 01:07:43,730 ასე რომ, ეს რეკურსიული, რომ გვაიძულებს ვთქვა კვანძის არსებობს. 1691 01:07:43,730 --> 01:07:46,610 >> ამ კვანძის არის მხოლოდ სახელი, ჩვენ ვაძლევთ კვანძის typedef. 1692 01:07:46,610 --> 01:07:48,520 ისე, რომ კვანძი არ არის იგივე, რაც კვანძი. 1693 01:07:48,520 --> 01:07:51,567 მაგრამ ეს struct კვანძის არის იგივე, რაც struct კვანძში. 1694 01:07:51,567 --> 01:07:54,150 Davin: ასე რომ, როდესაც თქვენ მოვუწოდებთ, როგორიცაა, node თქვენს მთავარ ფუნქციას, 1695 01:07:54,150 --> 01:07:55,350 თქვენ არ აპირებს უნდა ვთქვა struct კვანძში. 1696 01:07:55,350 --> 01:07:58,360 შეგიძლიათ უბრალოდ, ვამბობთ კვანძის, რადგან კვანძში არის different-- ძირითადად 1697 01:07:58,360 --> 01:07:59,440 თქვენ ამბობდა, OK. 1698 01:07:59,440 --> 01:08:01,490 ნაცვლად, რომელმაც უნდა ზარები struct კვანძის ჩემი კოდი, 1699 01:08:01,490 --> 01:08:04,050 მე უბრალოდ მინდა გადარქმევა მას როგორც კვანძის გაუადვილებს. 1700 01:08:04,050 --> 01:08:06,800 >> ROB: თუ თქვენ ყოველთვის გამოყენება typedef, მაშინ ეს 1701 01:08:06,800 --> 01:08:11,240 ეს არის ერთადერთი ადგილი, თქვენ აპირებს აქვს განაცხადოს ცვლადი ერთად struct კვანძის 1702 01:08:11,240 --> 01:08:11,740 ვარსკვლავი, yeah. 1703 01:08:11,740 --> 01:08:14,650 1704 01:08:14,650 --> 01:08:20,801 >> Davin: OK, ასე რომ ბოლო ნაწილი ძნელია ასწავლიან იმიტომ, 1705 01:08:20,801 --> 01:08:22,185 1706 01:08:22,185 --> 01:08:22,685 ROB: რა? 1707 01:08:22,685 --> 01:08:24,098 1708 01:08:24,098 --> 01:08:25,649 >> Davin: იმიტომ, რომ ის კოდირების ქაღალდზე. 1709 01:08:25,649 --> 01:08:28,689 ასე რომ, ყოველ წელს ჩვენ გვაქვს კოდი ქაღალდზე შეკითხვებს. 1710 01:08:28,689 --> 01:08:32,510 ასე რომ, ვფიქრობ, გასულ წელს, 12 80 ქულა იყო კოდი ქაღალდზე. 1711 01:08:32,510 --> 01:08:36,720 წლით ადრე, რომ 10 out of 80, წლით ადრე, რომ 20 100, 1712 01:08:36,720 --> 01:08:37,939 ასე რომ საკმაოდ რამდენიმე მათგანზე. 1713 01:08:37,939 --> 01:08:40,970 ასე რომ თქვენ უნდა შეძლებს კოდი up ამ ფუნქციების ხელით. 1714 01:08:40,970 --> 01:08:45,340 >> მე figured ჩვენ შეიძლება გავლა რამდენიმე მათგანი და ვნახოთ, როგორ ხალხი, 1715 01:08:45,340 --> 01:08:47,340 სახის გავლა მათ ნელ-ნელა ხალხს. 1716 01:08:47,340 --> 01:08:48,790 1717 01:08:48,790 --> 01:08:52,420 ასე რომ, ზოგადად, strlen და atoi უკვე ძალიან პოპულარული. 1718 01:08:52,420 --> 01:08:55,670 გასულ წელს, ვფიქრობ, GetPositiveInt და RandomInt. 1719 01:08:55,670 --> 01:08:58,591 მაგრამ pow, ისე ხელისუფლებაში, ასევე პოზიტიური იყო. 1720 01:08:58,591 --> 01:09:00,965 მოდით უბრალოდ გავლა, შესაძლოა, ერთი ან ორი ერთად. 1721 01:09:00,965 --> 01:09:02,510 1722 01:09:02,510 --> 01:09:03,729 რა სურს ხალხს, რომ? 1723 01:09:03,729 --> 01:09:05,037 1724 01:09:05,037 --> 01:09:05,767 >> სტუდენტი: atoi. 1725 01:09:05,767 --> 01:09:06,350 სტუდენტი: Yeah. 1726 01:09:06,350 --> 01:09:06,859 Davin: atoi? 1727 01:09:06,859 --> 01:09:07,800 სტუდენტი: [INAUDIBLE]. 1728 01:09:07,800 --> 01:09:09,682 Davin: OK, მე ვაპირებ ამის გაკეთება ფორუმში. 1729 01:09:09,682 --> 01:09:11,765 გაქვთ უპირატესობა თუ მე აქ ან იქ? 1730 01:09:11,765 --> 01:09:13,580 1731 01:09:13,580 --> 01:09:14,550 იქ, Gabe ამბობს, რომ არსებობს. 1732 01:09:14,550 --> 01:09:16,729 1733 01:09:16,729 --> 01:09:19,580 >> ROB: ეს არის ზოგადი აზრები ამ კოდირების შეკითხვებს. 1734 01:09:19,580 --> 01:09:21,705 ცდილობენ რაღაც დავწერო. 1735 01:09:21,705 --> 01:09:22,580 არ დატოვოთ ცარიელი. 1736 01:09:22,580 --> 01:09:23,080 >> Davin: დიახ. 1737 01:09:23,080 --> 01:09:25,520 ROB: თუ შეგიძლიათ მიიღოთ დაბრუნების ტიპის არის სწორი, 1738 01:09:25,520 --> 01:09:27,090 ან იქნებ ჩვენ, შესაძლოა, მას თქვენ, მაგრამ თუ შეგიძლია, ისევე, 1739 01:09:27,090 --> 01:09:30,256 წერენ ზოგადად ფუნქციის ხელმოწერა, თუ შეგიძლიათ მიიღოთ ბაზის შემთხვევაში სწორია, 1740 01:09:30,256 --> 01:09:32,244 ან კუთხეში შემთხვევაში, ან დამახსოვრების შემოწმება null, 1741 01:09:32,244 --> 01:09:34,160 რადგან თქვენ გაქვთ გარკვეული რამ, მაშინ, შესაძლოა, 1742 01:09:34,160 --> 01:09:35,880 მოგცემთ რამდენიმე მიუთითებს, რომ პრობლემა. 1743 01:09:35,880 --> 01:09:36,810 არ დატოვოს ცარიელი. 1744 01:09:36,810 --> 01:09:38,560 >> Davin: დიახ, და თუ უბრალოდ სრულიად 1745 01:09:38,560 --> 01:09:40,580 დაბნეულები, თუ როგორ უნდა რეალურად იქცეს კოდი. 1746 01:09:40,580 --> 01:09:43,140 თუ წერთ pseudocode, ეს საკმაოდ კარგი ძალიან. 1747 01:09:43,140 --> 01:09:46,390 ასე რომ მოსწონს, ეს ექვსპუნქტიანი კითხვა, და წერთ სწორი pseudocode, 1748 01:09:46,390 --> 01:09:47,858 თქვენ მიიღებთ მინიმუმ ორი ქულა. 1749 01:09:47,858 --> 01:09:49,149 ასე რომ არ დატოვოს მათ ცარიელი. 1750 01:09:49,149 --> 01:09:50,279 ვცდილობთ, რომ რაღაც. 1751 01:09:50,279 --> 01:09:51,770 >> ROB: ეს უნდა იყოს სწორი pseudocode, თუმცა. 1752 01:09:51,770 --> 01:09:52,270 >> Davin: დიახ. 1753 01:09:52,270 --> 01:09:55,381 ROB: ასე რომ, ჩვენ, როგორც წესი, ნაკლებად გამო შეცდომები pseudocode. 1754 01:09:55,381 --> 01:09:57,130 Davin: OK, ასე რომ თქვენ ბიჭები სურდა, რომ atoi. 1755 01:09:57,130 --> 01:09:58,480 1756 01:09:58,480 --> 01:10:02,820 OK, ასე რომ მხოლოდ ნამდვილად ასე რომ თქვენ გსურთ ამის გაკეთება 1757 01:10:02,820 --> 01:10:04,969 თქვენ აპირებს იყოს მოცემული რაღაც ნომერი. 1758 01:10:04,969 --> 01:10:07,010 თუმცა, ეს რაოდენობა არ არის იქნება int, არა? 1759 01:10:07,010 --> 01:10:08,574 რა არის ეს იქნება? 1760 01:10:08,574 --> 01:10:09,480 >> სტუდენტი: [INAUDIBLE]. 1761 01:10:09,480 --> 01:10:11,146 >> Davin: ეს იქნება სიმებიანი, არა? 1762 01:10:11,146 --> 01:10:13,160 ასე რომ, თუ თქვენ გადაეცათ სიმებიანი ვთქვათ 1763 01:10:13,160 --> 01:10:15,228 >> ROB: უნდა გაიყვანოს up რედაქტორი? 1764 01:10:15,228 --> 01:10:16,200 შემიძლია დახევის up-- 1765 01:10:16,200 --> 01:10:16,800 >> Davin: Oh, თქვენ გსურთ ამის გაკეთება on-- 1766 01:10:16,800 --> 01:10:17,420 >> ROB: გირჩევნიათ ფორუმში? 1767 01:10:17,420 --> 01:10:18,800 >> Davin რას უნდა გავაკეთოთ? 1768 01:10:18,800 --> 01:10:19,900 ვგულისხმობ, ხომ არ გსურთ ამის გაკეთება ხელით? 1769 01:10:19,900 --> 01:10:21,460 თუ თქვენ გსურთ ამის გაკეთება კომპიუტერის? 1770 01:10:21,460 --> 01:10:22,180 >> ROB: ამას ხელით. 1771 01:10:22,180 --> 01:10:22,805 >> Davin: [იცინის] 1772 01:10:22,805 --> 01:10:23,950 ROB: ამას ხელით. 1773 01:10:23,950 --> 01:10:25,469 >> Davin: OK, ასე რომ, ეს იქნება atoi. 1774 01:10:25,469 --> 01:10:27,760 რა არის it-- ვგულისხმობ, ჩვენ ალბათ მისცემს ეს თქვენ. 1775 01:10:27,760 --> 01:10:29,106 მაგრამ რა არის ის აპირებს დაბრუნებას? 1776 01:10:29,106 --> 01:10:29,452 >> სტუდენტი: Int. 1777 01:10:29,452 --> 01:10:31,076 >> Davin: ეს დაბრუნებას აპირებს int, არა? 1778 01:10:31,076 --> 01:10:33,772 So-- მე არ მინდა ამის გაკეთება არის. 1779 01:10:33,772 --> 01:10:34,510 მე ამას აქ. 1780 01:10:34,510 --> 01:10:36,596 >> ROB: თქვენ შეგიძლიათ მისი დანგრევა და შემდეგ დააყენებს მასზე. 1781 01:10:36,596 --> 01:10:38,500 1782 01:10:38,500 --> 01:10:40,385 >> Davin: yeah. 1783 01:10:40,385 --> 01:10:43,880 [იცინის] თამაშის ცვლილება. 1784 01:10:43,880 --> 01:10:50,950 OK, ასე რომ, ეს იქნება int atoi, და რა არის ის აპირებს? 1785 01:10:50,950 --> 01:10:52,180 1786 01:10:52,180 --> 01:10:57,780 Char ვარსკვლავი, ასე რომ მხოლოდ string, ვარსკვლავი s, როგორიცაა, რომ. 1787 01:10:57,780 --> 01:10:59,240 >> ROB: Nice ვარსკვლავი, ლამაზი. 1788 01:10:59,240 --> 01:11:02,582 1789 01:11:02,582 --> 01:11:04,040 Davin: ეს არ უნდა იყოს იქ, OK. 1790 01:11:04,040 --> 01:11:04,540 ROB: ჰო. 1791 01:11:04,540 --> 01:11:06,670 Davin: OK, ასე რომ პირველი რამ გსურთ გააკეთოს I 1792 01:11:06,670 --> 01:11:08,490 არ ვიცი, თუ ვინმეს ეძებდნენ პრაქტიკას solutions-- 1793 01:11:08,490 --> 01:11:10,150 მაგრამ, თუ რას აპირებს გსურთ, რომ თქვენ 1794 01:11:10,150 --> 01:11:11,570 აპირებს სურთ მარყუჟის, იმიტომ, რომ თქვენ 1795 01:11:11,570 --> 01:11:14,100 აპირებს გვინდა, რომ რეალურად ნაბიჯი მეშვეობით ამ სიმებიანი. 1796 01:11:14,100 --> 01:11:18,880 ასე helpful-- ასე ვთქვათ, ჩვენ ვაპირებთ ამისთვის მარყუჟის, 1797 01:11:18,880 --> 01:11:22,270 და ჩვენ ვაპირებთ, რომ ნაბიჯ მეშვეობით ყველა ელემენტის მისაღებად. 1798 01:11:22,270 --> 01:11:23,470 რამდენ ხანს არის ეს? 1799 01:11:23,470 --> 01:11:26,464 რამდენჯერ მივდივართ უნდა iterate, რომ მარყუჟი? 1800 01:11:26,464 --> 01:11:27,130 სტუდენტი: Sterln? 1801 01:11:27,130 --> 01:11:27,963 Davin: Sterln, yeah. 1802 01:11:27,963 --> 01:11:29,350 1803 01:11:29,350 --> 01:11:41,294 ასე ვთქვათ int სიგრძე შეადგენს sterln s. 1804 01:11:41,294 --> 01:11:44,240 1805 01:11:44,240 --> 01:11:48,740 და უბრალოდ აინტერესებს, რატომ არის ის ყოველთვის სახის უკეთესი უნდა გააკეთოს ამ გარეთ მარყუჟების? 1806 01:11:48,740 --> 01:11:52,277 როგორიცაა, რატომ არის უკეთესი მოვუწოდებთ ამ ფუნქციის გარეთ loop? 1807 01:11:52,277 --> 01:11:53,360 უბრალოდ სწრაფი საღი აზრის შეამოწმოს? 1808 01:11:53,360 --> 01:11:55,810 1809 01:11:55,810 --> 01:11:56,311 ჰო? 1810 01:11:56,311 --> 01:11:58,268 სტუდენტი: ასე რომ თქვენ არ უნდა შევინარჩუნოთ შემოწმების. 1811 01:11:58,268 --> 01:11:59,400 თქვენ შეგიძლიათ უბრალოდ [INAUDIBLE]. 1812 01:11:59,400 --> 01:12:01,560 >> Davin: სწორედ ასე yeah, ზუსტად რა განაცხადა მან. 1813 01:12:01,560 --> 01:12:03,101 ამიტომ, ჩვენ არ უნდა შევინარჩუნოთ შემოწმების. 1814 01:12:03,101 --> 01:12:05,690 ასე მაგალითად, თუ მე მოუწოდებენ ამ ფუნქციის შიგნით მარყუჟის, 1815 01:12:05,690 --> 01:12:08,050 მაშინ მე ვაპირებ შენარჩუნება მოუწოდებს ამ ფუნქციის რამდენჯერმე. 1816 01:12:08,050 --> 01:12:10,080 და რომ აპირებს შეამციროს ეფექტურობის თქვენი პროგრამა. 1817 01:12:10,080 --> 01:12:12,370 ასე რომ ყოველთვის სასარგებლო განაცხადოს გარეთ. 1818 01:12:12,370 --> 01:12:14,370 >> ROB: ეს თქმით, ნებისმიერი ეს პრობლემა, 1819 01:12:14,370 --> 01:12:17,940 საკმაოდ ბევრი, რადგან თქვენ სამუშაო ხსნარი, თქვენ მიიღებთ სრულ საკრედიტო. 1820 01:12:17,940 --> 01:12:20,820 ასე რომ არ ინერვიულოთ, თუ თქვენი დიზაინის აბსოლუტურად საშინელი. 1821 01:12:20,820 --> 01:12:22,120 1822 01:12:22,120 --> 01:12:25,230 შესაძლოა, ჩვენთვის დაარღვიოს კითხულობს თქვენს კოდი. 1823 01:12:25,230 --> 01:12:28,160 მაგრამ რადგან იგი მუშაობს, თქვენ მიიღებთ რაოდენობა. 1824 01:12:28,160 --> 01:12:29,302 >> Davin: დიახ. 1825 01:12:29,302 --> 01:12:31,260 OK, ასე შემდეგ მე ვაპირებ ვაცხადებ ცვლადი. 1826 01:12:31,260 --> 01:12:33,900 უბრალოდ ვაპირებ მოვუწოდო int თანხა. 1827 01:12:33,900 --> 01:12:37,031 და მე ვაპირებ მითითებული ეს ნულის ტოლია, როგორიცაა, რომ. 1828 01:12:37,031 --> 01:12:38,780 და ეს მხოლოდ აპირებს იყოს placeholder. 1829 01:12:38,780 --> 01:12:40,960 ასე რომ, ეს იქნება რა მე ვაპირებ დაბრუნებას. 1830 01:12:40,960 --> 01:12:43,730 ამიტომ, მე ვაპირებ, რათა საბოლოოდ დაბრუნებას თანხა ამ პროგრამაში. 1831 01:12:43,730 --> 01:12:44,980 ასე რომ, მე ამ ორ ცვლადს. 1832 01:12:44,980 --> 01:12:45,563 მაქვს სიგრძეზე. 1833 01:12:45,563 --> 01:12:46,500 მაქვს თანხა. 1834 01:12:46,500 --> 01:12:48,290 და ახლა მოდით ხტომა შევიდა ჩვენი სიმებიანი. 1835 01:12:48,290 --> 01:12:49,510 >> ასე რომ, მოდით გვაქვს ჩვენი ამისთვის loop. 1836 01:12:49,510 --> 01:13:06,520 ისე ოთხი int მე შეადგენს 0 w, ხოლო მე ნაკლებია, ვიდრე სიგრძეზე I plus plus. 1837 01:13:06,520 --> 01:13:07,150 და ახლა 1838 01:13:07,150 --> 01:13:10,920 1839 01:13:10,920 --> 01:13:11,420 ROB: Nice. 1840 01:13:11,420 --> 01:13:14,030 Davin: OK, და ახლა აქ მოდის ხორცი ჩვენი კოდი. 1841 01:13:14,030 --> 01:13:17,380 ასე რომ თქვენ შეგიძლიათ რეალურად გავაკეთოთ ეს, ძირითადად, ერთ ხაზზე. 1842 01:13:17,380 --> 01:13:20,702 ასე რომ ვინმეს აქვს იდეა ის, რასაც ჩვენ ვაპირებთ, რომ გავაკეთოთ შემდეგი? 1843 01:13:20,702 --> 01:13:23,680 1844 01:13:23,680 --> 01:13:25,380 OK, ასე რომ, OK. 1845 01:13:25,380 --> 01:13:35,860 ასე ვაკეთებთ ვთქვა თანხა შეადგენს მიადევნე თვალი დადის ამ over-- თანხა 1846 01:13:35,860 --> 01:13:50,010 უდრის თანხა 10-ჯერ plus-- ჩვენ აპირებს s I მინუს ერთი 1847 01:13:50,010 --> 01:13:54,787 რეიტინგი 0 ერთი ციტატა კეთდება, როგორიცაა, რომ. 1848 01:13:54,787 --> 01:13:55,620 ROB: ძალიან ინტუიტიური. 1849 01:13:55,620 --> 01:13:56,980 1850 01:13:56,980 --> 01:13:57,880 >> Davin: გაანადგურა იგი. 1851 01:13:57,880 --> 01:14:01,438 OK, ასე რომ someone-- მე მივიღე ეს, მე მივიღე ეს. 1852 01:14:01,438 --> 01:14:03,680 1853 01:14:03,680 --> 01:14:06,960 OK, ასე რომ, ეს აშკარად იზრდებოდა. 1854 01:14:06,960 --> 01:14:08,320 1855 01:14:08,320 --> 01:14:09,450 რას ნიშნავს ეს? 1856 01:14:09,450 --> 01:14:12,120 ასე რომ ვინმეს იცით ეს რას ნიშნავს? 1857 01:14:12,120 --> 01:14:13,826 შეიძლება ყველას, რომ ეს? 1858 01:14:13,826 --> 01:14:16,088 არა, არავინ ხედავთ, OK. 1859 01:14:16,088 --> 01:14:17,390 1860 01:14:17,390 --> 01:14:18,340 მე ვაპირებ, რომელთა მიზანია: 1861 01:14:18,340 --> 01:14:20,506 >> ROB: მე ვაპირებ დაწერა ფორმულა მხოლოდ უფლება აქ. 1862 01:14:20,506 --> 01:14:23,140 Davin: OK, რობ აპირებს ამის გაკეთებას კომპიუტერი, რომელიც არის fun. 1863 01:14:23,140 --> 01:14:26,889 1864 01:14:26,889 --> 01:14:27,514 ROB: Oh ღმერთი ჩემი. 1865 01:14:27,514 --> 01:14:34,340 1866 01:14:34,340 --> 01:14:35,010 ან მე არ. 1867 01:14:35,010 --> 01:14:36,288 1868 01:14:36,288 --> 01:14:36,954 Davin: ლოდინის. 1869 01:14:36,954 --> 01:14:42,300 1870 01:14:42,300 --> 01:14:44,260 სტუდენტი: მე მაქვს შეკითხვა. 1871 01:14:44,260 --> 01:14:45,348 Davin: ჰო, რა თქმა უნდა. 1872 01:14:45,348 --> 01:14:46,223 სტუდენტი: [INAUDIBLE]? 1873 01:14:46,223 --> 01:14:52,529 1874 01:14:52,529 --> 01:14:54,570 Davin: OK, ასე რომ, რეალურად, , უბრალოდ, ზოგადად, 1875 01:14:54,570 --> 01:14:56,710 თუ თქვენ უნდა დააყენოს, ისევე, ამ დეკლარაციის int 1876 01:14:56,710 --> 01:14:59,770 I უდრის 0 მძიმით სიგრძე უდრის sterln, that-- 1877 01:14:59,770 --> 01:15:01,200 >> სტუდენტი: [INAUDIBLE]. 1878 01:15:01,200 --> 01:15:03,585 >> Davin: ეს ჯარიმა, რადგან that-- 1879 01:15:03,585 --> 01:15:05,543 სტუდენტი: თქვენ რატომ კი უნდა გამოვიყენოთ სიგრძე? 1880 01:15:05,543 --> 01:15:08,620 რატომ არ ჩვენ უბრალოდ [INAUDIBLE] sterln s, ისევე როგორც მთელი დრო [INAUDIBLE]? 1881 01:15:08,620 --> 01:15:09,460 >> Davin: თქვენ ნიშნავს აქ? 1882 01:15:09,460 --> 01:15:10,001 >> სტუდენტი: დიახ. 1883 01:15:10,001 --> 01:15:12,630 Davin, რადგან ყველა დროის ამ for loop გადის, 1884 01:15:12,630 --> 01:15:14,295 ის აპირებს შეაფასოს მდგომარეობა. 1885 01:15:14,295 --> 01:15:14,920 სტუდენტი: Right. 1886 01:15:14,920 --> 01:15:16,836 Davin: თუ თქვენ გაქვთ sterln არსებობს, მაშინ ეს 1887 01:15:16,836 --> 01:15:19,510 აპირებთ უნდა სინამდვილეში რომ ფუნქცია თითოეული დრო. 1888 01:15:19,510 --> 01:15:21,090 ასე რომ ნაცვლად მხოლოდ შედარებით ეს int, 1889 01:15:21,090 --> 01:15:23,548 თქვენ აპირებს იყოს მოუწოდებდა ფუნქცია და შემდეგ შედარებით 1890 01:15:23,548 --> 01:15:24,510 დაბრუნების ღირებულება. 1891 01:15:24,510 --> 01:15:25,860 ჰო, ისე, უბრალოდ, yeah. 1892 01:15:25,860 --> 01:15:28,860 1893 01:15:28,860 --> 01:15:30,770 >> ლამაზი, OK, ასე რომ, ახლა ყველას შეუძლია დანახვა. 1894 01:15:30,770 --> 01:15:33,400 რა აკეთებს ეს მოსწონს, ეს არის ის. 1895 01:15:33,400 --> 01:15:34,580 ეს არის ჯემი, უფლება აქ. 1896 01:15:34,580 --> 01:15:37,030 1897 01:15:37,030 --> 01:15:37,930 რას ნიშნავს ეს? 1898 01:15:37,930 --> 01:15:39,250 1899 01:15:39,250 --> 01:15:39,970 რა ვარ მე აკეთებს? 1900 01:15:39,970 --> 01:15:41,890 1901 01:15:41,890 --> 01:15:42,880 ჰო, იდეა? 1902 01:15:42,880 --> 01:15:43,482 ჰო? 1903 01:15:43,482 --> 01:15:45,692 >> სტუდენტი: ისე, ასე რომ, როდესაც თქვენ შემოსვლა მასივი, 1904 01:15:45,692 --> 01:15:47,525 თქვენ იქნება აპირებს მარცხნიდან მარჯვნივ, 1905 01:15:47,525 --> 01:15:51,786 ასე რომ თქვენ იქნება მიმდინარეობს ათწილადები ქვემოთ [INAUDIBLE]. 1906 01:15:51,786 --> 01:15:52,410 Davin: ზუსტად. 1907 01:15:52,410 --> 01:15:55,063 სტუდენტი: ასე რომ თითოეული თქვენ უნდა გავამრავლოთ 1908 01:15:55,063 --> 01:15:59,490 რას დაინახა, როგორც ღირებულება int მიერ ახლა თქვენ გადატანა, რომ ერთ-ერთ. 1909 01:15:59,490 --> 01:16:01,590 >> Davin: Perfect, სრულყოფილი, ასე მაგალითად, მოდით 1910 01:16:01,590 --> 01:16:05,376 ამბობენ მივეცი you-- ვარ აპირებს დაწეროს აქ. 1911 01:16:05,376 --> 01:16:06,480 არა, მე არ ვარ. 1912 01:16:06,480 --> 01:16:08,640 მე ვაპირებ წერენ აქ. 1913 01:16:08,640 --> 01:16:12,080 ვთქვათ, მე მისცა თქვენ 76, არა? 1914 01:16:12,080 --> 01:16:13,380 ვთქვათ, მე მოგცემთ 76. 1915 01:16:13,380 --> 01:16:15,360 რომ სიმებიანი დაიწყოს, OK? 1916 01:16:15,360 --> 01:16:16,840 >> ამიტომ სიგრძით რა არის? 1917 01:16:16,840 --> 01:16:18,060 1918 01:16:18,060 --> 01:16:19,060 2, არა? 1919 01:16:19,060 --> 01:16:20,290 თანხა 0. 1920 01:16:20,290 --> 01:16:21,600 მაშინ ჩვენ ხტომა ჩვენი ამისთვის loop. 1921 01:16:21,600 --> 01:16:24,187 OK, პირველ iteration ეს, რა იქნება კი ეს? 1922 01:16:24,187 --> 01:16:25,270 ეს იქნება თანხა 0. 1923 01:16:25,270 --> 01:16:27,180 ასე მთლიანობაში 10-ჯერ 0. 1924 01:16:27,180 --> 01:16:28,500 რომ არის უაზრო. 1925 01:16:28,500 --> 01:16:29,880 მერე რას აკეთებთ? 1926 01:16:29,880 --> 01:16:30,845 1927 01:16:30,845 --> 01:16:31,720 სტუდენტი: [INAUDIBLE]. 1928 01:16:31,720 --> 01:16:33,110 1929 01:16:33,110 --> 01:16:37,430 >> Davin: იგი აპირებს გახდეს, რომ ხასიათი მთელი რიცხვი, არა? 1930 01:16:37,430 --> 01:16:42,160 ეს არის სახის, როგორიცაა თქვენი პრობლემა კომპლექტი ამ light-- 1931 01:16:42,160 --> 01:16:44,170 ეს არის სახის მოსწონს ერთად პრობლემა კომპლექტი Visioneer. 1932 01:16:44,170 --> 01:16:45,980 თქვენ საქმე ASCII ღირებულებებს. 1933 01:16:45,980 --> 01:16:48,520 ასე რომ, თუ მე გაძლევთ, როგორიცაა, შვიდი, მაგრამ ეს ხასიათი, 1934 01:16:48,520 --> 01:16:50,965 და თქვენ გაინტერესებთ, დიახ, რა ციფრი არის ეს? 1935 01:16:50,965 --> 01:16:53,540 1936 01:16:53,540 --> 01:16:54,910 ჰო, შეიძლება, yeah. 1937 01:16:54,910 --> 01:16:55,900 ასე რომ, რა ციფრი არის ეს? 1938 01:16:55,900 --> 01:16:59,550 თქვენ შეიძლება სხვაობა 0-დან, მაგრამ თქვენ უნდა გამოვაკლოთ 0, ხასიათი. 1939 01:16:59,550 --> 01:17:01,425 >> და სადაც ზოგიერთი ადამიანი მისაღებად იმყოფებოდა up, ისინი 1940 01:17:01,425 --> 01:17:04,260 როგორიცაა, OK, კარგად, მე არ ვიცი ASCII ღირებულებებს ამ ვიქტორინაში? 1941 01:17:04,260 --> 01:17:06,218 არა, თქვენ ნამდვილად არ უნდა იცოდეთ ASCII 1942 01:17:06,218 --> 01:17:09,520 ღირებულებები, ისევე, როგორც ამას a, ზედა, ნულოვანი. 1943 01:17:09,520 --> 01:17:12,060 >> ROB: არ არსებობს მიზეზი, რომ ოდესმე დააყენოს ამ cheat ფურცელი. 1944 01:17:12,060 --> 01:17:14,226 >> Davin: ნამდვილად არ დაკარგავთ სივრცეში ამ. 1945 01:17:14,226 --> 01:17:18,090 შეგიძლიათ ფაქტიურად მხოლოდ ნაცვლად ამბობდა, 48, როგორიცაა უფლება 1946 01:17:18,090 --> 01:17:24,630 არსებობს, რომელიც უდრის ამბობდა ერთი, ერთი აპოსტროფი, 1947 01:17:24,630 --> 01:17:27,680 როგორც, რომ, ზუსტად იგივე. 1948 01:17:27,680 --> 01:17:34,106 >> ROB: თქვენ შეიძლება თითქმის ვფიქრობ, მას, როგორც if-- ღმერთს, მე მჭირდება, 1949 01:17:34,106 --> 01:17:37,490 oops-- შეგიძლიათ თითქმის ვფიქრობ, რომ ეს თითქოს ჩვენ გვაქვს რაღაც, რომ hash 1950 01:17:37,490 --> 01:17:39,755 განისაზღვროს 0, 48. 1951 01:17:39,755 --> 01:17:41,320 1952 01:17:41,320 --> 01:17:42,030 რომ არ იმუშავებს. 1953 01:17:42,030 --> 01:17:45,502 მაგრამ ვფიქრობ, რომ ეს ერთი გაცემა 0 ერთი გაცემა და ყველა სიმბოლოს. 1954 01:17:45,502 --> 01:17:47,960 ვფიქრობ, რომ ეს მუდმივი, რომ წარმოადგენს, რომ ASCII ღირებულება. 1955 01:17:47,960 --> 01:17:49,080 >> Davin: დიახ. 1956 01:17:49,080 --> 01:17:52,820 OK, ასე რომ, პირველი მეშვეობით, ისე ერთად 76-- ისე პირველი მეშვეობით, 1957 01:17:52,820 --> 01:17:57,260 ეს არის მხოლოდ გმირი 7 მინუს ხასიათი 0 1958 01:17:57,260 --> 01:18:00,420 და იმ შვიდი რიცხვებით ასევე, იმ 1959 01:18:00,420 --> 01:18:04,030 შვიდი ფართები დაშორებით თითოეულ სხვა on ASCII ჩარტში ან რასაც. 1960 01:18:04,030 --> 01:18:06,770 ასე რომ დაბრუნებას აპირებს int 7. 1961 01:18:06,770 --> 01:18:08,720 ახლა, თანხა შეადგენს 7. 1962 01:18:08,720 --> 01:18:10,830 >> OK, ასევე, მოდით ხტომა ამ for loop ერთხელ. 1963 01:18:10,830 --> 01:18:13,010 OK, ახლა ეს თანხა 10-ჯერ. 1964 01:18:13,010 --> 01:18:15,800 ასე რომ თქვენ ეფექტურად მოძრავი 7 მარცხენა. 1965 01:18:15,800 --> 01:18:17,542 ამჯამად რომ აზრი? 1966 01:18:17,542 --> 01:18:19,250 თქვენ ეფექტურად მოძრავი მას მარცხენა. 1967 01:18:19,250 --> 01:18:21,790 >> და მაშინ add-- ეს იქნება 6 მინუს 0. 1968 01:18:21,790 --> 01:18:22,650 ეს არის ის, 6. 1969 01:18:22,650 --> 01:18:24,752 ასე რომ, ეს იქნება 70 + 6. 1970 01:18:24,752 --> 01:18:25,996 76, რომ თქვენი ნომერი. 1971 01:18:25,996 --> 01:18:28,370 ასე რომ, მიუხედავად იმისა, თუ რა რაოდენობის მივეცი თქვენ, ნელა უბრალოდ 1972 01:18:28,370 --> 01:18:31,610 აპირებს გადაეტანა დიდი ფასეულობები მარცხენა, 1 ფაქტორი 10 1973 01:18:31,610 --> 01:18:35,525 ყოველ ჯერზე ამისთვის მარყუჟის, და შემდეგ დაამატოთ, როგორც საჭიროა. 1974 01:18:35,525 --> 01:18:37,350 1975 01:18:37,350 --> 01:18:37,865 >> In უკან? 1976 01:18:37,865 --> 01:18:40,240 სტუდენტი: ჩვენ არ უნდა გავაკეთოთ ნებისმიერი შემოწმების პროგრამაში? 1977 01:18:40,240 --> 01:18:41,580 1978 01:18:41,580 --> 01:18:44,302 >> ROB: ასე რომ როგორც შემოწმების მიდის პროგრამა, 1979 01:18:44,302 --> 01:18:46,510 ჩვენ გვინდა გითხრათ, საკმაოდ ბევრი ის, რაც თქვენ უნდა შეამოწმოთ. 1980 01:18:46,510 --> 01:18:48,670 თუ ჩვენ არ გეტყვით არაფერი, მაშინ, როგორც წესი, 1981 01:18:48,670 --> 01:18:50,320 ვივარაუდოთ, თქვენ უნდა შეამოწმოთ საუკეთესო რამ. 1982 01:18:50,320 --> 01:18:54,772 როგორც თქვენ შესაძლოა, უბრალოდ უნდა იყოს უსაფრთხო, ალბათ შეამოწმეთ hey, არის s null? 1983 01:18:54,772 --> 01:18:56,230 მაშინ მე არ ვიცი, რა უნდა დაბრუნდეს. 1984 01:18:56,230 --> 01:18:58,814 მაგრამ ჩვენ რომ გითხრათ, ამ სახის რამ. 1985 01:18:58,814 --> 01:18:59,480 0, მე არ ვიცი. 1986 01:18:59,480 --> 01:19:02,786 >> Davin: და რატომ გსურთ გადაამოწმოს თუ ტოლია null? 1987 01:19:02,786 --> 01:19:03,660 სტუდენტი: [INAUDIBLE]. 1988 01:19:03,660 --> 01:19:04,880 Davin: იმის გამო, რომ char ვარსკვლავი. 1989 01:19:04,880 --> 01:19:05,510 ეს მაჩვენებელი. 1990 01:19:05,510 --> 01:19:09,240 ასე რომ, სავსებით მისაღებია დეკლარაცია, მე ვერ ვიტყვი, OK, 1991 01:19:09,240 --> 01:19:11,917 s შეადგენს null, იმიტომ, რომ ეს შეიძლება იყოს მომცეთ null. 1992 01:19:11,917 --> 01:19:14,250 ასე რომ, როდესაც თქვენ უნდა პოინტერები თქვენი გზა, როგორც ეს, 1993 01:19:14,250 --> 01:19:15,420 თქვენ უნდა ალბათ შემოწმება. 1994 01:19:15,420 --> 01:19:18,461 იმიტომ, რომ თუ არ შეამოწმოს, რომ, და მაშინ, შემდეგ კი თქვენი მარყუჟის, 1995 01:19:18,461 --> 01:19:20,100 და თქვენ აკეთებს დადის ქვემოთ. 1996 01:19:20,100 --> 01:19:21,980 1997 01:19:21,980 --> 01:19:22,920 დადის ქვემოთ. 1998 01:19:22,920 --> 01:19:23,860 >> ROB: უკაცრავად, რომ არის ის. 1999 01:19:23,860 --> 01:19:25,860 >> Davin ასე რომ, როგორიცაა, თუ ეს არის null, და მაშინ 2000 01:19:25,860 --> 01:19:28,267 ამის გაკეთება, რა შეცდომა თქვენ აპირებს მიიღოს? 2001 01:19:28,267 --> 01:19:29,850 სტუდენტი: თქვენ აპირებს მიიღოს კომპლექტი ბრალია. 2002 01:19:29,850 --> 01:19:31,250 Davin: თქვენ შექმნას აპირებს ბრალია, უფლება, რადგან თქვენ 2003 01:19:31,250 --> 01:19:32,616 ცდილობს ინდექსი null. 2004 01:19:32,616 --> 01:19:35,240 ასე რომ, თქვენ აპირებს ცდილობენ ინდექსი მეხსიერებაში, რომ არ ფლობენ. 2005 01:19:35,240 --> 01:19:39,550 ასე რომ, ეს, თუ ეს null, და თქვენ ამის გაკეთება, თქვენ ციკლი. 2006 01:19:39,550 --> 01:19:43,656 >> ROB: მე ასევე ვფიქრობ, რომ გამოცდა, რომელიც ჩვენ ამ კითხვაზე, ჩვენ გითხრათ 2007 01:19:43,656 --> 01:19:45,655 რომ თქვენ შეგიძლიათ მხოლოდ ვივარაუდოთ, ეს დადებითი რიცხვი. 2008 01:19:45,655 --> 01:19:48,270 იმის გამო, რომ atoi ასევე მოსალოდნელია გაუმკლავდეს უარყოფითი რიცხვები, 2009 01:19:48,270 --> 01:19:49,686 ასე, რომ თქვენ უნდა განსაკუთრებული შემთხვევაა. 2010 01:19:49,686 --> 01:19:53,080 Hey, ეს არის პირველი სიმბოლო ტირე, ამ შემთხვევაში, OK, 2011 01:19:53,080 --> 01:19:54,839 ახლა ეს უარყოფითი რიცხვი. 2012 01:19:54,839 --> 01:19:56,380 ჩვენ გეტყვით, თუ ამ სახის რამ. 2013 01:19:56,380 --> 01:19:58,005 ჩვენ გეტყვით, თუ რა უნდა გაუმკლავდეს. 2014 01:19:58,005 --> 01:19:59,310 Davin: დიახ. 2015 01:19:59,310 --> 01:20:02,530 ასე რომ დარწმუნებული ვარ, ზოგიერთი ადამიანი შეიძლება ჰქონდეს თუ დავიწყეთ ძველი გამოცდები, 2016 01:20:02,530 --> 01:20:03,900 ვნახე sterln. 2017 01:20:03,900 --> 01:20:05,120 რომ პოპულარული იყო. 2018 01:20:05,120 --> 01:20:09,790 და მე ვფიქრობ, sterln, თქვენ უნდა ამისათვის გამშვები null, დაბრუნების 2019 01:20:09,790 --> 01:20:10,950 0 ან რამე მაგდაგვარს. 2020 01:20:10,950 --> 01:20:11,940 როგორიცაა, თქვენ უნდა შევამოწმოთ null. 2021 01:20:11,940 --> 01:20:14,230 და თუ არა, რომ იყო აღვნიშნო off ვიქტორინა. 2022 01:20:14,230 --> 01:20:16,750 2023 01:20:16,750 --> 01:20:19,500 ასე მაინც, ჯერ ყველას გრძნობს კარგად atoi? 2024 01:20:19,500 --> 01:20:21,112 2025 01:20:21,112 --> 01:20:22,820 ვინმეს გვინდა გადასვლა ნაწილების ერთხელ? 2026 01:20:22,820 --> 01:20:23,815 2027 01:20:23,815 --> 01:20:25,565 ROB: Oh yeah, მე ვფიქრობ, ჩვენ ასევე გითხრათ 2028 01:20:25,565 --> 01:20:28,565 შეიძლება ვივარაუდოთ, რომ ყველაფერი is-- რომ ისინი რეალურად შესვლის ნომერი, 2029 01:20:28,565 --> 01:20:32,821 რომ თქვენ არ უნდა ფიქრი, როგორიცაა, წერილები მყოფი ტექსტი, ასე. 2030 01:20:32,821 --> 01:20:33,320 Davin: ჰო. 2031 01:20:33,320 --> 01:20:33,922 დიახ? 2032 01:20:33,922 --> 01:20:35,713 სტუდენტი: შეგიძლიათ წასვლა კიდევ ერთ დროს, როდესაც 2033 01:20:35,713 --> 01:20:37,860 თქვენ ორმაგ გაცემა და ერთი გაცემა? 2034 01:20:37,860 --> 01:20:41,290 >> Davin: რა თქმა უნდა, ასე რომ ორმაგი შეთავაზებები, ძალიან უბრალოდ, არის ორმაგი შეთავაზებები სიმები. 2035 01:20:41,290 --> 01:20:43,370 ასე რომ, თუ თქვენ ორმაგად გაცემა არაფერი, რომ სიმებიანი. 2036 01:20:43,370 --> 01:20:48,270 მაშ, ასე, რომ, თუ მე ამ 0 აქ, და მე ეს, რომ სიმებიანი. 2037 01:20:48,270 --> 01:20:50,060 რომ აღარ ხასიათი. 2038 01:20:50,060 --> 01:20:54,816 ასე რომ, მე ვერ პოულობენ ამ ღირებულების ჩემი ASCII სქემა, იმიტომ, რომ ეს ტექსტი, yeah. 2039 01:20:54,816 --> 01:20:57,770 2040 01:20:57,770 --> 01:20:59,480 >> OK, ნებისმიერი სხვა კითხვები? 2041 01:20:59,480 --> 01:21:00,405 დიახ? 2042 01:21:00,405 --> 01:21:02,345 >> სტუდენტი: ასე რომ თქვენ უკვე გავეცი პასუხი ამ, 2043 01:21:02,345 --> 01:21:05,255 მაგრამ, როგორც, როდესაც ჩვენ რეალურად წერა ამ ინტელექტუალური, 2044 01:21:05,255 --> 01:21:08,165 გინდა წერა დახრილ ხაზებს zeroes [INAUDIBLE]? 2045 01:21:08,165 --> 01:21:11,041 2046 01:21:11,041 --> 01:21:11,540 Davin: No. 2047 01:21:11,540 --> 01:21:13,800 კითხვა იყო უნდა თქვენ ბოლო ხაზი მეშვეობით zeros 2048 01:21:13,800 --> 01:21:14,890 მიუთითოს, თუ ისინი zeros? 2049 01:21:14,890 --> 01:21:15,890 არა, ჩვენ გაერკვნენ ის. 2050 01:21:15,890 --> 01:21:16,940 2051 01:21:16,940 --> 01:21:19,530 ჰო, მადლობა, ისინი კარგი. 2052 01:21:19,530 --> 01:21:20,860 OK, არაფერი? 2053 01:21:20,860 --> 01:21:25,060 ვინმეს სურს, რომელთა მიზანია ამიტომ ვფიქრობ, ჩვენ აწარმოებს ცოტა მეტი დრო. 2054 01:21:25,060 --> 01:21:27,305 გინდათ, რომ კიდევ ერთი, ერთი, ან? 2055 01:21:27,305 --> 01:21:28,096 სტუდენტი: RandomInt. 2056 01:21:28,096 --> 01:21:29,230 2057 01:21:29,230 --> 01:21:30,750 >> Davin: RandomInt, OK, ზუსტად. 2058 01:21:30,750 --> 01:21:32,975 ასე რომ, მოდით RandomInt. 2059 01:21:32,975 --> 01:21:34,395 2060 01:21:34,395 --> 01:21:35,270 მე ამას აქ. 2061 01:21:35,270 --> 01:21:36,770 2062 01:21:36,770 --> 01:21:39,210 ასე RandomInt რეალურად ბევრად უფრო მარტივია. 2063 01:21:39,210 --> 01:21:43,578 მე ვფიქრობ, atoi ალბათ უმძიმესი ერთი რომ ჩვენ ვთხოვეთ წინა წლებში. 2064 01:21:43,578 --> 01:21:44,453 სტუდენტი: [INAUDIBLE]. 2065 01:21:44,453 --> 01:21:46,660 2066 01:21:46,660 --> 01:21:47,161 >> Davin რა? 2067 01:21:47,161 --> 01:21:49,493 ROB: მე ხედავს, თუ მისი სახის საქართველოს ფაქტიური მეტი აქ. 2068 01:21:49,493 --> 01:21:50,040 Davin: არის ეს? 2069 01:21:50,040 --> 01:21:52,500 ROB: არა მგონია, რომ ეს going-- ვფიქრობ, ის აპირებს off მარჯვნივ. 2070 01:21:52,500 --> 01:21:53,791 Davin: OK, ასე რომ მე ამის გაკეთება ერთი. 2071 01:21:53,791 --> 01:21:56,250 და მაშინ მხოლოდ დააყენა ის ეკრანზე. 2072 01:21:56,250 --> 01:21:57,150 >> ROB: ყველა უფლება. 2073 01:21:57,150 --> 01:21:58,190 >> Davin გსურთ იყოს ჩემი მწიგნობარი? 2074 01:21:58,190 --> 01:21:58,600 >> ROB: ჰო. 2075 01:21:58,600 --> 01:21:59,100 >> Davin: Nice. 2076 01:21:59,100 --> 01:22:01,210 2077 01:22:01,210 --> 01:22:02,727 OK, შემიძლია წაშლას? 2078 01:22:02,727 --> 01:22:04,188 >> სტუდენტი: Yeah. 2079 01:22:04,188 --> 01:22:05,162 >> Davin სწორედ ასე. 2080 01:22:05,162 --> 01:22:10,032 2081 01:22:10,032 --> 01:22:12,062 (სიმღერისა) თქვენ აკეთებთ თუ რას აკეთებს. 2082 01:22:12,062 --> 01:22:14,454 და რას არა. 2083 01:22:14,454 --> 01:22:14,954 ყველა უფლება. 2084 01:22:14,954 --> 01:22:19,790 2085 01:22:19,790 --> 01:22:22,930 >> OK, თუ სწორად მახსოვს, on ვიქტორინა RandomInt იყო, 2086 01:22:22,930 --> 01:22:26,190 OK, მე ვაპირებ, რომ გადმოგცეთ ორი ციფრები, ისევე როგორც და ბ. 2087 01:22:26,190 --> 01:22:30,380 და მინდა მომეცი RandomInt შორის იმ ნომრები. 2088 01:22:30,380 --> 01:22:33,440 ასე RandomInt აპირებს მიიღოს ორი ნომრები 2089 01:22:33,440 --> 01:22:41,690 ასე RandomInt-- და ეს დაბრუნებას აპირებს int. 2090 01:22:41,690 --> 01:22:42,930 >> რა არის დაბრუნების მნიშვნელობა? 2091 01:22:42,930 --> 01:22:44,151 მე უბრალოდ გითხარით. 2092 01:22:44,151 --> 01:22:44,650 Int, არა? 2093 01:22:44,650 --> 01:22:46,400 2094 01:22:46,400 --> 01:22:49,260 როგორც ეს, და შემდეგ ეს აპირებს ორი ints. 2095 01:22:49,260 --> 01:22:56,301 ასე რომ, ის აპირებს int და int b, როგორიცაა, რომ. 2096 01:22:56,301 --> 01:22:58,217 ასე რომ, რა RandomInt არის ვაპირებთ გავაკეთოთ არის ის აპირებს 2097 01:22:58,217 --> 01:23:02,440 დაბრუნებას შემთხვევითი არც ამ ორ ღირებულებებს. 2098 01:23:02,440 --> 01:23:05,140 ასე რომ, ეს იქნება დიდი მეტი, ნაკლები ბ. 2099 01:23:05,140 --> 01:23:09,020 ამიტომ ვფიქრობ, თქვენ, ალბათ, ვივარაუდოთ, რომ არის პატარა ორი ღირებულებებს. 2100 01:23:09,020 --> 01:23:12,210 ასე რომ, თუ ჩვენ საქმე შემთხვევითობა, რა ფუნქცია 2101 01:23:12,210 --> 01:23:14,825 ჩვენ ვხედავთ, რომ გვაძლევს შემთხვევითი რამ? 2102 01:23:14,825 --> 01:23:15,450 სტუდენტი: Drand. 2103 01:23:15,450 --> 01:23:16,506 Davin: Drand, ზუსტად. 2104 01:23:16,506 --> 01:23:18,630 ასე რომ თქვენ ალბათ გსურთ გამოიყენოთ თქვენი drand. 2105 01:23:18,630 --> 01:23:19,940 2106 01:23:19,940 --> 01:23:29,160 ასე შეიძლება ითქვას, int შემთხვევითი, და ჩვენ უბრალოდ, ვამბობთ ეს უდრის 0 ახლავე. 2107 01:23:29,160 --> 01:23:30,170 2108 01:23:30,170 --> 01:23:38,690 და ისინი ჩვენ ვაპირებთ ამბობენ, OK, შემთხვევითი შეადგენს drand 48. 2109 01:23:38,690 --> 01:23:39,747 2110 01:23:39,747 --> 01:23:40,830 და რას დაბრუნებას? 2111 01:23:40,830 --> 01:23:43,742 რას ნიშნავს ეს ფუნქცია მოგცემთ? 2112 01:23:43,742 --> 01:23:45,610 >> სტუდენტი: 0 და 1. 2113 01:23:45,610 --> 01:23:47,870 >> Davin: Yeah, 0 და 1. 2114 01:23:47,870 --> 01:23:48,890 ასე რომ, ის აპირებს be-- 2115 01:23:48,890 --> 01:23:51,070 >> ROB: ეს is-- ვფიქრობ, ჩვენ გვინდა გითხრათ, ამ. 2116 01:23:51,070 --> 01:23:52,670 როგორიცაა, შეგიძლიათ გამოიყენოთ drand 48. 2117 01:23:52,670 --> 01:23:54,350 თქვენ შეგიძლიათ ამის შემოწმება თუ წარსულში გამოცდა. 2118 01:23:54,350 --> 01:23:56,720 მაგრამ ჩვენ ალბათ ამბობენ, რომ თქვენ შეგიძლიათ გამოიყენოთ drand 48, რომელიც 2119 01:23:56,720 --> 01:23:58,790 ბრუნდება float შორის 0 და 1. 2120 01:23:58,790 --> 01:24:00,830 >> Davin: დიახ, დიახ, მე ვარ საკმაოდ დარწმუნებული ვარ, რომ გამოცდა 2121 01:24:00,830 --> 01:24:03,860 ის ამბობს, ალბათ, გსურთ გამოიყენოთ drand, yeah. 2122 01:24:03,860 --> 01:24:07,041 ასე რომ, ის დაბრუნებას აპირებს გარკვეული მნიშვნელობა 0 და 1. 2123 01:24:07,041 --> 01:24:08,790 და მერე რა ხარ აპირებთ უნდა გავაკეთოთ? 2124 01:24:08,790 --> 01:24:16,360 კარგად, თქვენ გვინდა გავამრავლოთ by-- დაველოდოთ, მე ვფიქრობ, რომ ეს, როგორც ეს, sorry. 2125 01:24:16,360 --> 01:24:18,018 მე მხოლოდ ამის გაკეთება. 2126 01:24:18,018 --> 01:24:19,410 მე არ ვიცი. 2127 01:24:19,410 --> 01:24:22,240 >> ასე რომ ბ მინუს. 2128 01:24:22,240 --> 01:24:23,310 2129 01:24:23,310 --> 01:24:24,490 ასე რომ, რატომ b მინუს? 2130 01:24:24,490 --> 01:24:26,110 2131 01:24:26,110 --> 01:24:30,490 ასე ვთქვათ drand გაძლევთ უკან საუბარია int OK, მე უბრალოდ დანარჩენი, 2132 01:24:30,490 --> 01:24:33,380 პლუს. 2133 01:24:33,380 --> 01:24:36,130 ასე რომ, რა იმას y ბ მინუს. 2134 01:24:36,130 --> 01:24:40,670 ასე ვთქვათ, რომ drand გაძლევთ უკან მაქსიმალური მნიშვნელობა, რომ, შესაძლოა, 2135 01:24:40,670 --> 01:24:41,410 მოგაწვდით. 2136 01:24:41,410 --> 01:24:42,409 რა, რომ იქნება? 2137 01:24:42,409 --> 01:24:43,010 სტუდენტი: 1. 2138 01:24:43,010 --> 01:24:44,430 >> Davin: 1, არა? 2139 01:24:44,430 --> 01:24:47,880 ასე რომ, თუ ეს არის 1, და თქვენ გამრავლებული b მინუს, 2140 01:24:47,880 --> 01:24:50,110 ისე, რომ ეს მხოლოდ სხვაობა მინუს ა 2141 01:24:50,110 --> 01:24:52,870 და თუ შემდეგ დავამატებთ, რომ უკან გადატანა, რომ არის რა? 2142 01:24:52,870 --> 01:24:54,290 2143 01:24:54,290 --> 01:24:55,180 ის ძირითადად ბ. 2144 01:24:55,180 --> 01:24:56,435 2145 01:24:56,435 --> 01:24:57,310 ამჯამად რომ აზრი? 2146 01:24:57,310 --> 01:24:57,851 >> სტუდენტი: დიახ. 2147 01:24:57,851 --> 01:24:59,480 2148 01:24:59,480 --> 01:25:02,170 >> Davin: ასე რომ, თუ ეს არის მაქსიმალური ვაფასებთ ეს შეიძლება იყოს, 2149 01:25:02,170 --> 01:25:03,175 ეს იქნება 1. 2150 01:25:03,175 --> 01:25:04,122 2151 01:25:04,122 --> 01:25:06,330 და შემდეგ ეს მხოლოდ განსხვავება ორ. 2152 01:25:06,330 --> 01:25:11,410 სანიშნეს წლის, ასე რომ, ეს დაბრუნებას აპირებს შემთხვევითი. 2153 01:25:11,410 --> 01:25:15,000 2154 01:25:15,000 --> 01:25:18,620 და კუთხეში შემთხვევაში, drand გაძლევთ უკან 1, 2155 01:25:18,620 --> 01:25:20,970 შემთხვევითი იქნება მხოლოდ ეფექტურად ბ. 2156 01:25:20,970 --> 01:25:22,700 მაგრამ ეს მაქსიმუმ შეიძლება იყოს. 2157 01:25:22,700 --> 01:25:27,420 ასე რომ, თუ ეს იქნება ნაკლები, ვიდრე რომ, ასე ვთქვათ, რომ მისი, როგორც 0.9, 2158 01:25:27,420 --> 01:25:31,080 ასე რომ, მაშინ 0.9-ჯერ b- იქნება ნაკლები 2159 01:25:31,080 --> 01:25:33,230 მეტი განსხვავება b მინუს. 2160 01:25:33,230 --> 01:25:35,830 >> და მაშინ თუ დავამატებთ, რომ რათა, მაშინ, რომ არც 2161 01:25:35,830 --> 01:25:38,986 იქნება უფრო მეტი, ვიდრე, რადგან თქვენ დასძინა რაღაც გადატანა, 2162 01:25:38,986 --> 01:25:40,360 მაგრამ ეს იქნება ნაკლები ბ. 2163 01:25:40,360 --> 01:25:41,430 2164 01:25:41,430 --> 01:25:44,420 ასე რომ თქვენ აპირებთ მისაღებად შემთხვევითი ნომერი, იმიტომ, რომ თქვენ მოუწოდებდა drand. 2165 01:25:44,420 --> 01:25:48,000 და რომ rand, რომ შემთხვევითი რიცხვი იქნება სადღაც შორის 2166 01:25:48,000 --> 01:25:49,342 და ბ. 2167 01:25:49,342 --> 01:25:50,780 ამჯამად რომ აზრი? 2168 01:25:50,780 --> 01:25:52,990 >> ROB: Just დააყენოს ის კონკრეტული ციფრები, 2169 01:25:52,990 --> 01:25:55,450 ვთქვათ, ჩვენ გვინდა, რომ აირჩიოთ შემთხვევითი რიცხვი 7 და 10. 2170 01:25:55,450 --> 01:25:56,960 ასე რომ ბ მინუს ჩვენი სპექტრი. 2171 01:25:56,960 --> 01:26:00,150 ასე არ არის, სამი ციფრები, ჩვენ გვინდა, რომ არჩევანი. 2172 01:26:00,150 --> 01:26:03,290 და შემდეგ გამრავლების რომ 0 და 1: 1, 2173 01:26:03,290 --> 01:26:07,430 თუ ეს მაშინ გვაძლევს some-- ვთქვათ, რომ გვაძლევს 1.5. 2174 01:26:07,430 --> 01:26:10,670 >> 1,5, ჩვენ გვინდა წასვლა 7-დან 10. 2175 01:26:10,670 --> 01:26:14,470 ასე 1.5 + 7 მოაქვს ისევ ჩვენი 7-დან 10 დიაპაზონი. 2176 01:26:14,470 --> 01:26:17,580 და მაშინ ჩვენ შენახვა ეს შიგნით მთელი რიცხვი, ასე რომ შეიკვეცება ქვემოთ 8. 2177 01:26:17,580 --> 01:26:18,790 და მაშინ ჩვენ უბრალოდ დაბრუნებას, რომ. 2178 01:26:18,790 --> 01:26:21,310 ასე რომ ბ მინუს ჩვენი სპექტრი. 2179 01:26:21,310 --> 01:26:25,770 ინაცვლებს ის შევიდა ნომრები რომ ჩვენ გვინდა ფარგლებში სპექტრს. 2180 01:26:25,770 --> 01:26:30,540 ასე შორის 7 და 10, და მაშინ ჩვენ შეიძლება შეიცვალოს, რასაც ჩვენ დასრულდება up ერთად. 2181 01:26:30,540 --> 01:26:32,684 >> Davin: ჰო, კარგი. 2182 01:26:32,684 --> 01:26:34,470 >> ROB: დიდი მადლობა. 2183 01:26:34,470 --> 01:26:35,628 >> Davin: Yeah, რა ხდება? 2184 01:26:35,628 --> 01:26:39,746 >> სტუდენტი: ნუ ჩვენ აწარმოებს ნებისმიერი სახის ASCII შეცდომები we're-- თუ drand არის 2185 01:26:39,746 --> 01:26:40,996 დაბრუნების float [INAUDIBLE]. 2186 01:26:40,996 --> 01:26:42,470 2187 01:26:42,470 --> 01:26:45,360 >> ROB: ასე რომ, ისევე რობ განაცხადა, იმიტომ, რომ შემთხვევითი არ არის int, 2188 01:26:45,360 --> 01:26:47,080 ასე drand იქნება float. 2189 01:26:47,080 --> 01:26:48,470 ისე და მერე ეს multiplies out. 2190 01:26:48,470 --> 01:26:50,507 და შესაძლოა, სახის float ნომრები. 2191 01:26:50,507 --> 01:26:51,840 და შემდეგ ის აპირებს შეკვეცავს. 2192 01:26:51,840 --> 01:26:52,339 >> სტუდენტი: OK. 2193 01:26:52,339 --> 01:26:53,019 Davin: ჰო. 2194 01:26:53,019 --> 01:26:56,060 ROB: და თუ შემდგენელი იყო გავაფრთხილო თქვენ, როგორიც დაკარგვა სიზუსტით, 2195 01:26:56,060 --> 01:26:58,986 მხოლოდ დააგდეს int in იქ, და მაშინ კარგია. 2196 01:26:58,986 --> 01:27:00,398 2197 01:27:00,398 --> 01:27:00,898 Davin: Yes? 2198 01:27:00,898 --> 01:27:02,332 2199 01:27:02,332 --> 01:27:04,722 >> სტუდენტი: თუ ეს აქვს იგივე ალბათობა, 2200 01:27:04,722 --> 01:27:06,156 როგორც, B ან A [INAUDIBLE]? 2201 01:27:06,156 --> 01:27:08,080 2202 01:27:08,080 --> 01:27:10,980 >> ROB: So is-- მე რეალურად wondering-- არის RandomInt ვარაუდობენ, 2203 01:27:10,980 --> 01:27:14,362 უნდა იყოს ნომრის ნაკლები b? 2204 01:27:14,362 --> 01:27:16,820 ისევე, როგორც, რომ, თუ ის 7-დან 10 რა შესაძლებლობები? 2205 01:27:16,820 --> 01:27:18,454 7, 8, 9, ან 7, 8, 9, 10 2206 01:27:18,454 --> 01:27:19,120 Davin: I დაგავიწყდებათ. 2207 01:27:19,120 --> 01:27:19,880 საქართველოს პრობლემა კომპლექტი 2208 01:27:19,880 --> 01:27:20,570 >> ROB: მე ვფიქრობ, რომ 7, ​​8, 9. 2209 01:27:20,570 --> 01:27:22,785 >> Davin: ეს კონკრეტულად ამბობს ერთი ინკლუზიური და ერთი განსაკუთრებული. 2210 01:27:22,785 --> 01:27:23,110 >> ROB: ჰო. 2211 01:27:23,110 --> 01:27:23,670 >> Davin: მაგრამ მე do not მე not-- 2212 01:27:23,670 --> 01:27:25,878 >> ROB: ასე რომ, მე ვფიქრობ, რომ ეს არის არ შედის, ამ შემთხვევაში, 2213 01:27:25,878 --> 01:27:28,152 არსებობს თანაბარი ალბათობა 7, 8 და 9. 2214 01:27:28,152 --> 01:27:29,360 არ არსებობს ალბათობა 10. 2215 01:27:29,360 --> 01:27:31,770 2216 01:27:31,770 --> 01:27:32,270 Davin: Yes? 2217 01:27:32,270 --> 01:27:33,395 სტუდენტი: მე მაქვს შეკითხვა. 2218 01:27:33,395 --> 01:27:38,090 ჩვენ გვინდა, რომ განსაზღვრავს ფუნქცია ბრუნდება არა ერთი მნიშვნელობა, მაგრამ მასივი. 2219 01:27:38,090 --> 01:27:41,020 შემდეგ რა იქნება სინტაქსი დაბრუნების შემდეგ? 2220 01:27:41,020 --> 01:27:44,604 >> Davin: OK, ასე რომ, მაშინ would-- დაბრუნების შემდეგ? 2221 01:27:44,604 --> 01:27:47,020 ასე ვთქვათ, თქვენ განაცხადა, მასივი სადღაც იქ. 2222 01:27:47,020 --> 01:27:49,708 მაშინ დააბრუნებს სახელი მასივი. 2223 01:27:49,708 --> 01:27:50,676 >> სტუდენტი: OK, მადლობა. 2224 01:27:50,676 --> 01:27:51,718 მაშინ მხოლოდ დაბრუნდება a-- 2225 01:27:51,718 --> 01:27:52,759 Davin: Oh დაველოდოთ, ასე რომ ბოდიში. 2226 01:27:52,759 --> 01:27:54,620 კითხვაზე იყო თუ როგორ თქვენ დაბრუნდეს მასივში. 2227 01:27:54,620 --> 01:27:56,170 >> ROB: მიუხედავად იმისა, რომ მას არ შეეძლო შეიძლება მასივი გამოცხადდა 2228 01:27:56,170 --> 01:27:57,260 დასტის ან რამე მსგავსი. 2229 01:27:57,260 --> 01:27:59,510 ეს უნდა იყოს რაღაც malloced, რადგან malloc 2230 01:27:59,510 --> 01:28:01,610 ეს თქვენ გარშემო მეხსიერების ავტომატური განაწილება. 2231 01:28:01,610 --> 01:28:02,109 >> Davin: დიახ. 2232 01:28:02,109 --> 01:28:03,433 2233 01:28:03,433 --> 01:28:04,933 ROB: როგორ მიიღოთ დაახლოებით, ადგილობრივი მასშტაბის. 2234 01:28:04,933 --> 01:28:09,670 2235 01:28:09,670 --> 01:28:11,550 >> Davin: მაგრამ თქვენ ამას უბრალოდ დააბრუნოს მისი სახელი 2236 01:28:11,550 --> 01:28:17,890 >> სტუდენტი: [INAUDIBLE] ეს არ არის ერთი ღირებულება, მაგალითად, ორი ნომრები, ასე 2237 01:28:17,890 --> 01:28:18,390 [INAUDIBLE]. 2238 01:28:18,390 --> 01:28:19,590 >> Davin თქვენ ვერ დაბრუნდება მრავალჯერადი ნომერი. 2239 01:28:19,590 --> 01:28:20,850 თქვენ არ შეგიძლიათ, როგორიცაა, დაბრუნდება 2240 01:28:20,850 --> 01:28:23,630 >> სტუდენტი: მე ისაუბრა დაბრუნების მასივი ან რამე მაგდაგვარს. 2241 01:28:23,630 --> 01:28:26,050 >> Davin: ჰო, ასე რომ, კითხვა შემიძლია დაბრუნდება მრავალჯერადი ფასეულობათა. 2242 01:28:26,050 --> 01:28:27,460 თქვენ ვერ ბრუნდება მრავალჯერადი ღირებულებებს. 2243 01:28:27,460 --> 01:28:30,270 თქვენ არ შეგიძლიათ, ისევე, დაბრუნების შემდეგ დაბრუნდეს b ან რამე მაგდაგვარს. 2244 01:28:30,270 --> 01:28:32,710 რადგან მას შემდეგ, დაბრუნდება, თუ თქვენ ვბრუნდებით გარეთ ფუნქცია. 2245 01:28:32,710 --> 01:28:35,790 და შემდეგ ფუნქცია კეთდება, და როგორც რობ განაცხადა, რომ Stack. 2246 01:28:35,790 --> 01:28:38,260 >> ასე რომ ყველა, რომ მეხსიერება მხოლოდ იღებს დაბრუნდა კომპიუტერი. 2247 01:28:38,260 --> 01:28:40,025 ყველაფერი იღებს დავიწყებული, ძირითადად. 2248 01:28:40,025 --> 01:28:41,480 2249 01:28:41,480 --> 01:28:44,430 ასე რომ, თუ გვინდა, რომ დაბრუნდება მრავალჯერადი ღირებულებები, თქვენ უნდა დაბრუნდეს მასივში, 2250 01:28:44,430 --> 01:28:45,971 და ისე გავაკეთოთ, რომ mallocing. 2251 01:28:45,971 --> 01:28:48,780 და მაშინ დაბრუნდება x როგორიცაა, რომ. 2252 01:28:48,780 --> 01:28:50,280 ძირითადად, უბრალოდ დაბრუნების სახელი. 2253 01:28:50,280 --> 01:28:51,620 და როცა დაბრუნდება მსგავსი რამ, რომ თქვენ 2254 01:28:51,620 --> 01:28:53,200 რეალურად არ დაბრუნების ღირებულება. 2255 01:28:53,200 --> 01:28:55,430 >> ასე ვთქვათ ინახება ღირებულებების მასივი. 2256 01:28:55,430 --> 01:28:57,910 თქვენ არ რეალურად დაბრუნების იმ ღირებულებებს. 2257 01:28:57,910 --> 01:29:01,515 მსგავსად, თუ დავბრუნდი int, მე ნამდვილად დაბრუნების ასლები ღირებულებებს. 2258 01:29:01,515 --> 01:29:02,017 2259 01:29:02,017 --> 01:29:03,850 მაგრამ თუ მე უნდა დაბრუნდეს მსგავსი რამ, 2260 01:29:03,850 --> 01:29:06,450 მე დაბრუნების მინიშნება იმ ღირებულებებს. 2261 01:29:06,450 --> 01:29:09,090 ასე რომ, მე დაბრუნების, ძირითადად, მეხსიერების მისამართი ღირებულებებს. 2262 01:29:09,090 --> 01:29:10,079 ამჯამად რომ აზრი? 2263 01:29:10,079 --> 01:29:10,620 სტუდენტი: დიახ. 2264 01:29:10,620 --> 01:29:11,120 Davin: Nice. 2265 01:29:11,120 --> 01:29:12,760 2266 01:29:12,760 --> 01:29:13,410 დიახ? 2267 01:29:13,410 --> 01:29:15,430 >> სტუდენტი: როდესაც თქვენ გამოყენებით drand აქ, 2268 01:29:15,430 --> 01:29:17,660 თქვენ უნდა დააყენოს srand მანამდე? 2269 01:29:17,660 --> 01:29:20,320 >> Davin: არა, არა, მე ასე არ ვფიქრობ. 2270 01:29:20,320 --> 01:29:23,040 >> ROB: ჰო, ასე რომ თქვენ უნდა რომ არაფერი ვთქვათ srand? 2271 01:29:23,040 --> 01:29:26,900 ნაგულისხმები თქვენ არასდროს უთქვამს, srand ყველა არის უბრალოდ srand null. 2272 01:29:26,900 --> 01:29:29,350 ასე drand საკუთარი იმუშავებს. 2273 01:29:29,350 --> 01:29:33,759 და ეს ავტომატურად სათესლე მიმდინარე დრო არის ის, რაც იგი იყენებს. 2274 01:29:33,759 --> 01:29:35,175 2275 01:29:35,175 --> 01:29:35,675 Davin: Yes? 2276 01:29:35,675 --> 01:29:40,950 სტუდენტი: თქვენ თუ [INAUDIBLE] ნომრები? 2277 01:29:40,950 --> 01:29:42,570 Davin: დიახ, შეგიძლიათ. 2278 01:29:42,570 --> 01:29:46,770 სტუდენტი: ასე რომ თქვენ შეიძლება ამბობენ, ისევე, 4-ჯერ 2. 2279 01:29:46,770 --> 01:29:50,280 საქმე ის არის, რომ თქვენ არ შეიძლება ვივარაუდოთ, მაშინ int არის ოთხი ბაიტი. 2280 01:29:50,280 --> 01:29:51,020 Only-- 2281 01:29:51,020 --> 01:29:53,830 >> Davin: მე ვგულისხმობ, ვიქტორინა თქვენ შეგიძლიათ. 2282 01:29:53,830 --> 01:29:54,830 [იცინის] 2283 01:29:54,830 --> 01:29:55,780 >> ROB: Mm, no. 2284 01:29:55,780 --> 01:29:56,780 Davin: დიახ, დიახ, თქვენ შეგიძლიათ. 2285 01:29:56,780 --> 01:30:00,197 თუ ისინი გთხოვოთ, თუ რამდენად დიდ int, თქვენ არ შეიძლება იყოს, როგორიცაა, ოთხი ან რვა. 2286 01:30:00,197 --> 01:30:02,030 ROB: Oh, ასე რომ, თუ კითხვაზე, თუ კონკრეტულად, 2287 01:30:02,030 --> 01:30:04,857 მსგავსად, თუ იგი არის კოდირების პრობლემა, უნდა ვთქვა, ზომა int. 2288 01:30:04,857 --> 01:30:06,690 თუ ეს მაგიდა, ან ის ამბობს, რამდენი ბაიტი, 2289 01:30:06,690 --> 01:30:08,808 თქვენ არ უნდა შეავსოთ ზომა ints. 2290 01:30:08,808 --> 01:30:11,278 >> STUDENTS: [იცინის] 2291 01:30:11,278 --> 01:30:18,210 2292 01:30:18,210 --> 01:30:20,580 >> Davin: მარჯვენა, რატომ არის ზომა int აქ მნიშვნელოვანია? 2293 01:30:20,580 --> 01:30:23,085 ამიტომ მინდა, თუ ჩვენ ვაპირებთ, რომ 32-bit პროცესორი ან რამე მაგდაგვარს, 2294 01:30:23,085 --> 01:30:24,300 მაშინ ეს იქნება ოთხი ბაიტი. 2295 01:30:24,300 --> 01:30:26,342 მაგრამ ზოგიერთი უფრო ახალი პერსონალი, ეს შეიძლება იყოს რა? 2296 01:30:26,342 --> 01:30:27,383 ეს შეიძლება იყოს რვა, არა? 2297 01:30:27,383 --> 01:30:30,550 ასე გაკეთება, თუ თქვენ მხოლოდ მძიმე კოდი ოთხი, შემდეგ რამდენიმე მანქანა, ის იმუშავებს. 2298 01:30:30,550 --> 01:30:32,180 რამდენიმე მანქანა, ეს არ იმუშავებს. 2299 01:30:32,180 --> 01:30:35,270 მაგრამ თუ ვიქტორინა ჩვენ როგორიცაა, თუ როგორ დიდი არის int? 2300 01:30:35,270 --> 01:30:35,770 ბოლო ოთხი. 2301 01:30:35,770 --> 01:30:38,710 2302 01:30:38,710 --> 01:30:39,210 ROB: Right. 2303 01:30:39,210 --> 01:30:39,790 Davin: ჰო? 2304 01:30:39,790 --> 01:30:43,192 სტუდენტი: ასე რომ, რადგან ჩვენ ვაცხადებთ [INAUDIBLE] შიგნით ფუნქცია, 2305 01:30:43,192 --> 01:30:45,622 უნდა გვქონდეს 3 შიგნით რომ ფუნქცია? 2306 01:30:45,622 --> 01:30:46,907 ან შეგვიძლია გამოვიყენოთ ის გარეთ? 2307 01:30:46,907 --> 01:30:48,740 Davin: თქვენ შეგიძლიათ გამოიყენოთ ეს გარეთ რომ ფუნქცია. 2308 01:30:48,740 --> 01:30:49,890 ამიტომ იგი ითხოვს free. 2309 01:30:49,890 --> 01:30:51,700 >> სტუდენტი: კარგავენ სიმღერა სადაც [INAUDIBLE]. 2310 01:30:51,700 --> 01:30:54,720 >> ROB: Oh, უფასო არ მოხდეს ეს ნაწილი ჯადოსნური malloc 2311 01:30:54,720 --> 01:30:57,220 არის, რომ თქვენ არ შეზღუდული ადგილობრივი მასშტაბის. 2312 01:30:57,220 --> 01:31:00,700 თქვენ გაქვთ სრული კონტროლი როდემდე თქვენი ცვლადები ცხოვრობს. 2313 01:31:00,700 --> 01:31:05,380 ამიტომ, ჩვენ მოვუწოდებთ malloc აქ, ეს შეიძლება სრულიად დამოუკიდებელი ფუნქცია. 2314 01:31:05,380 --> 01:31:08,670 ეს შეიძლება იყოს 10 საათის შემდეგ რომ ჩვენ საბოლოოდ მოვუწოდებთ free. 2315 01:31:08,670 --> 01:31:11,764 >> Davin: ასე მაგალითად, როგორიცაა, რამდენიმე კვირის ახლა, როდესაც თქვენ საბოლოოდ 2316 01:31:11,764 --> 01:31:13,680 ნუ თქვენი ლექსიკონი speller psets, თქვენ აპირებს 2317 01:31:13,680 --> 01:31:16,410 აქვს რამოდენიმე ფუნქცია რომ ქმნის ტონა კვანძების. 2318 01:31:16,410 --> 01:31:18,630 ასე რომ თქვენ mallocing ტონა კვანძების ამ ფუნქციას. 2319 01:31:18,630 --> 01:31:20,670 და შემდეგ წელს ცალკე ფუნქცია, თქვენ 2320 01:31:20,670 --> 01:31:22,440 აპირებს გვინდა გასათავისუფლებლად ყველა იმ კვანძების. 2321 01:31:22,440 --> 01:31:25,740 ასე რომ თქვენ შეგიძლიათ სიტყვასიტყვით უბრალოდ გაივლის გასათავისუფლებლად მაჩვენებელი, ამიტომ მეხსიერების მისამართი 2322 01:31:25,740 --> 01:31:26,684 ის, რაც თქვენ malloced. 2323 01:31:26,684 --> 01:31:27,600 და რომ კარგად იქნება. 2324 01:31:27,600 --> 01:31:29,725 თქვენ არ გაქვთ თავისუფალი, როგორიცაა, იგივე ფუნქცია. 2325 01:31:29,725 --> 01:31:30,449 დიახ? 2326 01:31:30,449 --> 01:31:36,197 >> სტუდენტი: ასე malloc ცვლადი [INAUDIBLE] გარეთ? 2327 01:31:36,197 --> 01:31:37,384 ის არის, რომ თუ რას ამბობდა? 2328 01:31:37,384 --> 01:31:38,300 Davin: დაველოდოთ, ამბობენ, რომ? 2329 01:31:38,300 --> 01:31:38,800 უკაცრავად. 2330 01:31:38,800 --> 01:31:42,300 >> სტუდენტი: თუ malloc ცვლადი შეიძლება იყოს თავისუფალი სადმე კოდი, 2331 01:31:42,300 --> 01:31:44,800 ამის შემდეგ შეიძლება ხელმისაწვდომი იყოს სადმე კოდი? 2332 01:31:44,800 --> 01:31:45,800 შეგიძლიათ შენარჩუნება მათ ადგილობრივი? 2333 01:31:45,800 --> 01:31:47,880 >> Davin: Oh, მან სთხოვა, როგორიცაა, ცვლადი, ისევე როგორც 2334 01:31:47,880 --> 01:31:51,300 2335 01:31:51,300 --> 01:31:55,510 >> ROB: ასე რომ, თქვენ კვლავ უნდა აქვს გარკვეული მინიშნება 2336 01:31:55,510 --> 01:31:57,220 რომ malloc ბლოკი მეხსიერება. 2337 01:31:57,220 --> 01:31:58,540 ასე რომ, ჩვენ დაბრუნების x. 2338 01:31:58,540 --> 01:31:59,040 სტუდენტი: Oh. 2339 01:31:59,040 --> 01:32:01,920 ROB: თუ ჩვენ არ დაბრუნდება x აქ, და ეს იყო მხოლოდ ის, ბათილად, 2340 01:32:01,920 --> 01:32:04,550 მაშინ ჩვენ არ გვაქვს წვდომა მაჩვენებელი, რომელიც იყო malloced, 2341 01:32:04,550 --> 01:32:05,920 და ეს გაჟონა მეხსიერება. 2342 01:32:05,920 --> 01:32:06,690 >> სტუდენტი: OK. 2343 01:32:06,690 --> 01:32:10,010 >> Davin: ასე რომ, ვთქვათ, ამ, როგორიცაა, უფლება აქ. 2344 01:32:10,010 --> 01:32:10,510 ROB: არა 2345 01:32:10,510 --> 01:32:13,430 Davin: ჩემი მთავარი ფუნქცია, მე არ შემიძლია დარეკეთ მხოლოდ ამ x და, როგორც, OK, 2346 01:32:13,430 --> 01:32:14,645 ამ ფუნქციას, მე ეს. 2347 01:32:14,645 --> 01:32:14,960 >> ROB: Right. 2348 01:32:14,960 --> 01:32:17,790 >> Davin: ასე რომ მე ვაპირებ მოვუწოდო x in, როგორიცაა, მთავარი ან რამე მაგდაგვარს. 2349 01:32:17,790 --> 01:32:18,540 თქვენ შეგიძლიათ ამის გაკეთება. 2350 01:32:18,540 --> 01:32:19,600 თქვენ აპირებს დაბრუნებას რაღაც. 2351 01:32:19,600 --> 01:32:21,000 მაგრამ რას აპირებს დაბრუნებას? 2352 01:32:21,000 --> 01:32:22,130 თქვენ ვაპირებთ დაბრუნებას მეხსიერების მისამართზე. 2353 01:32:22,130 --> 01:32:25,130 და რადგან თქვენ დაბრუნდება მეხსიერება მისამართი, რომელიც შეიძლება ხელმისაწვდომი მის ფარგლებს გარეთ. 2354 01:32:25,130 --> 01:32:27,262 2355 01:32:27,262 --> 01:32:28,255 ნებისმიერი უფრო მეტი შეკითხვა? 2356 01:32:28,255 --> 01:32:28,755 დიახ? 2357 01:32:28,755 --> 01:32:31,213 >> სტუდენტი: არის ფუნქცია ზემოთ მიმდინარეობს გამშვები [INAUDIBLE]? 2358 01:32:31,213 --> 01:32:33,270 2359 01:32:33,270 --> 01:32:35,005 >> Davin: რატომ არ უნდა გავაკეთოთ ეს? 2360 01:32:35,005 --> 01:32:35,880 სტუდენტი: [INAUDIBLE]. 2361 01:32:35,880 --> 01:32:37,755 Davin: იმიტომ, რომ თქვენ არ mallocing არაფერი. 2362 01:32:37,755 --> 01:32:39,640 ასე რომ, ეს not-- ჰო, არ მინდა string s. 2363 01:32:39,640 --> 01:32:41,160 ეს მაჩვენებელი სადღაც. 2364 01:32:41,160 --> 01:32:42,951 ეს არის მხოლოდ ღირებულებებს. 2365 01:32:42,951 --> 01:32:43,450 სტუდენტი: OK. 2366 01:32:43,450 --> 01:32:43,949 Davin: ჰო. 2367 01:32:43,949 --> 01:32:47,600 2368 01:32:47,600 --> 01:32:48,470 არაფერი? 2369 01:32:48,470 --> 01:32:48,970 ROB: Yep? 2370 01:32:48,970 --> 01:32:50,386 სტუდენტი: მაგრამ როდესაც თქვენ [INAUDIBLE]? 2371 01:32:50,386 --> 01:32:55,050 2372 01:32:55,050 --> 01:32:58,690 >> ROB: ასე რომ, რათა გასათავისუფლებლად მეხსიერება, ჩვენ ვთქვათ აქ. 2373 01:32:58,690 --> 01:33:01,350 ასე რომ X არის ჩვენი მომცეთ ბლოკი მეხსიერება. 2374 01:33:01,350 --> 01:33:02,845 ჩვენ გასათავისუფლებლად რომ მომცეთ. 2375 01:33:02,845 --> 01:33:04,470 და ჩვენ არ არის აუცილებელი ამის გაკეთება აქ. 2376 01:33:04,470 --> 01:33:05,390 ჩვენ შეგვიძლია ამის გაკეთება ყველგან. 2377 01:33:05,390 --> 01:33:10,400 მაგრამ თქვენ მხოლოდ დარეკეთ უფასოდ რაღაც რომ malloc ბრუნდება. 2378 01:33:10,400 --> 01:33:12,940 Malloc, აქ დაბრუნდა რა ხდება ინახება x. 2379 01:33:12,940 --> 01:33:14,802 ასე რომ ჩვენ შეგვიძლია მოვუწოდებთ უფასოდ x. 2380 01:33:14,802 --> 01:33:18,730 2381 01:33:18,730 --> 01:33:20,556 ნებისმიერი ბოლო კითხვები? 2382 01:33:20,556 --> 01:33:21,701 >> Davin: ნებისმიერი ბოლო კითხვები? 2383 01:33:21,701 --> 01:33:22,200 ჰო? 2384 01:33:22,200 --> 01:33:25,152 >> სტუდენტი: უკაცრავად, შეგიძლიათ ხელახლა ახსნას ამიტომ თქვენ გასათავისუფლებლად იქ? 2385 01:33:25,152 --> 01:33:26,630 რატომ [INAUDIBLE]? 2386 01:33:26,630 --> 01:33:27,774 >> Davin: იყიდება აქ? 2387 01:33:27,774 --> 01:33:29,109 >> სტუდენტი: Yeah, როგორიცაა შემდეგ. 2388 01:33:29,109 --> 01:33:30,900 Davin ალბათ არ მინდა უფასოდ აქ. 2389 01:33:30,900 --> 01:33:31,630 ROB: ალბათ არა. 2390 01:33:31,630 --> 01:33:33,060 Davin: ჰო, ეს იქნებოდა არაფერი. 2391 01:33:33,060 --> 01:33:35,220 ეს იქნებოდა, როგორც, შექმნა მეხსიერება, პერსონალის ის, 2392 01:33:35,220 --> 01:33:37,390 და შემდეგ დაუყოვნებლივ დაივიწყოს ის, yeah. 2393 01:33:37,390 --> 01:33:39,850 >> ROB: მაგრამ ჩვენ, შესაძლოა, ისევე, აქ რატომღაც. 2394 01:33:39,850 --> 01:33:43,902 შეიძლება ითქვას, int ვარსკვლავი y უდრის დაბრუნების მასივი. 2395 01:33:43,902 --> 01:33:47,900 რაღაცები და y, იქნებ ამობეჭდოთ შინაარსი. 2396 01:33:47,900 --> 01:33:49,350 და მაშინ, საბოლოოდ, ჩვენ გავაკეთეთ. 2397 01:33:49,350 --> 01:33:50,626 ჩვენ შეგვიძლია გასათავისუფლებლად y. 2398 01:33:50,626 --> 01:33:51,501 სტუდენტი: [INAUDIBLE]. 2399 01:33:51,501 --> 01:33:57,839 2400 01:33:57,839 --> 01:33:59,005 Davin: თუ მე გადახვევა ქვემოთ? 2401 01:33:59,005 --> 01:34:00,445 მადლობა. 2402 01:34:00,445 --> 01:34:00,945 ROB: Nice. 2403 01:34:00,945 --> 01:34:02,400 2404 01:34:02,400 --> 01:34:03,646 >> Davin: OK, რომ არის ის. 2405 01:34:03,646 --> 01:34:04,520 ROB: ყველა უფლება, კარგი. 2406 01:34:04,520 --> 01:34:05,070 წარმატებებს გისურვებთ. 2407 01:34:05,070 --> 01:34:06,800 >> Davin: თუ თქვენ გაქვთ შეკითხვები, მოგვწეროთ. 2408 01:34:06,800 --> 01:34:08,670 წარმატებებს გისურვებთ. 2409 01:34:08,670 --> 01:34:10,283