1 00:00:00,000 --> 00:00:00,960 2 00:00:00,960 --> 00:00:03,360 >> [MUSIC پخش] 3 00:00:03,360 --> 00:00:11,050 4 00:00:11,050 --> 00:00:12,065 >> داوین: همه راست، بچه ها. 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 آلیسون: وو! 9 00:00:18,292 --> 00:00:18,743 دانشجو: وو! 10 00:00:18,743 --> 00:00:19,242 داوین: آره. 11 00:00:19,242 --> 00:00:19,920 آلیسون: آره! 12 00:00:19,920 --> 00:00:20,920 داوین: این مرد را آماده. 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 بنابراین ما در حال به تقسیم مردم تا به اتاق های مختلف. 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 و در اینجا آلیسون است. 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 >> آلیسون: OK، به لطف، راب. 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 داوین باید به این بدبختانه. 35 00:01:03,050 --> 00:01:07,240 این لیست غیر کامل از است مباحث، مثل همیشه، به عنوان داوین فقط گفت. 36 00:01:07,240 --> 00:01:10,860 مستندات مشورت آنلاین در مورد مسابقه صفر است. 37 00:01:10,860 --> 00:01:13,680 اما این بسیار much-- آن را در برنامه درسی است 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 اما در بیشتر قسمت ها، ما واقعا می خواهید برای دریافت به داوین با آن کد 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، کلمه ای خاص، بدیهی است داوین را فراموش کرده به از طریق این اسلاید تلنگر. 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 شما بچه ها در حال رفتن به گرفتن برخی از تمرین با آن در حال حاضر با داوین، 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 که از شما می خواهد، برای مثال، به کد تا به چیزی بسیار شبیه به ماریو. 62 00:02:12,680 --> 00:02:15,060 به طوری که بسیار آشنا با مشکل شما، مجموعه ها، و همچنین 63 00:02:15,060 --> 00:02:17,827 به عنوان سوال ما از شما می خواهیم در آغاز در فرم 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 به عنوان مرجع برای مسابقه خود را در روز چهارشنبه. 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 >> بنابراین شروع کردن آسان است، انواع داده ها و اندازه. 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 بنابراین ما باید کاراکتر های ما که یک کلمه در ادامه متن، وقفه ها 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 و سپس نوع ستاره، بنابراین هر اشاره گر را بر روی یک ماشین 32 بیتی، 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 >> من هم آب نبات را در کیف من است، پس هر کسی که پاسخ می شود آب نبات، توسط راه. 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 من قصد دارم به این را به گیب. 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 >> آلیسون: بله، یکی از اولین 42 است، درست باشد. 117 00:04:30,280 --> 00:04:31,163 118 00:04:31,163 --> 00:04:32,038 دانشجو: [نامفهوم]. 119 00:04:32,038 --> 00:04:34,810 [خنده حضار] 120 00:04:34,810 --> 00:04:37,030 آلیسون: دوم، وجود دارد در پشت زرد؟ 121 00:04:37,030 --> 00:04:38,910 دانشجو: 110010. 122 00:04:38,910 --> 00:04:43,410 آلیسون: درست است، و این یکی از آخرین، در اینجا در پایین؟ 123 00:04:43,410 --> 00:04:44,570 همچنین، آره، می دانید می خواهید؟ 124 00:04:44,570 --> 00:04:45,550 فقط پرت کردن از آب نبات. 125 00:04:45,550 --> 00:04:46,483 چگونه در مورد آب نبات برای همه؟ 126 00:04:46,483 --> 00:04:47,510 >> دانشجو: [نامفهوم] در زمانی که ما در حال انجام می شود. 127 00:04:47,510 --> 00:04:48,051 >> آلیسون: 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 >> آلیسون: 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 شما، رفتن از دودویی به عدد راه من تمایل به انجام آن است، نوشتن 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 است به آن را فقط تقسیم کردن به چهار تکه بایت، OK؟ 157 00:06:10,210 --> 00:06:11,050 بیت، متاسفم. 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 به همین دلیل است که شما در اینجا. [NOISE] OK، بنابراین ما فقط آن را شکستن 161 00:06:15,874 --> 00:06:16,790 به چهار بیت تکه. 162 00:06:16,790 --> 00:06:21,570 بنابراین با باینری به هگزادسیمال، ما در اولین نگاه 4، 163 00:06:21,570 --> 00:06:25,573 است که اگر ما چهار 1S در ردیف، چه تعداد می کند که نماد؟ 164 00:06:25,573 --> 00:06:26,540 >> دانشجو: F. 165 00:06:26,540 --> 00:06:32,751 >> آلیسون: بنابراین در این مورد، 11111111 or-- بله چیزی است؟ 166 00:06:32,751 --> 00:06:33,250 دانشجو: FF. 167 00:06:33,250 --> 00:06:34,600 آلیسون: کامل، FF. 168 00:06:34,600 --> 00:06:36,900 آنقدر بزرگ است، آب نبات را برای شما. 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 فقط آن را به چهار بیتی خود را تبدیل [می خندد] به تبدیل چهار بیت آن است. 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 MM-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 اگر شما به آن نگاه کنید در چهار بیت تکه، رفتن به طلایی رنگ شود. 181 00:07:16,565 --> 00:07:18,330 182 00:07:18,330 --> 00:07:19,300 Everyone-- بله؟ 183 00:07:19,300 --> 00:07:21,903 >> راب: این احمقانه است، اما من همیشه به یاد داشته باشید 184 00:07:21,903 --> 00:07:23,500 A، از این قرار است 10. 185 00:07:23,500 --> 00:07:26,230 و باینری فقط 10 10، so-- 186 00:07:26,230 --> 00:07:27,310 >> آلیسون: آه، ما به. 187 00:07:27,310 --> 00:07:28,615 >> راب: سلام. 188 00:07:28,615 --> 00:07:30,020 >> آلیسون: با سلام، آب نبات برای راب. 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 با VISIONEER مجموعه 2 و سزار، به شما مقدار زیادی از این را انجام داد. 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 بنابراین ما می توانیم با آنها ریاضی را انجام دهد، درست مثل ما ریاضی در رابطه با وقفه. 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، کاراکتر C به D منهای 1 برابر، 205 00:08:07,440 --> 00:08:09,060 و کاراکتر 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 دانشجو: [نامفهوم]. 210 00:08:18,210 --> 00:08:20,540 آلیسون: دقیقا، بنابراین یک چیز به اطلاع می 211 00:08:20,540 --> 00:08:22,900 که ما در حال چاپ شخصیت در هر زمان، در اینجا. 212 00:08:22,900 --> 00:08:28,290 ما در حال تعیین حتی اگر A و B وقفه ها زمانی که ما آنها را بالا اعلام کرد. 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 اراده چاپ به عنوان A. مقدار ASCII از 1 به علاوه 216 00:08:40,730 --> 00:08:43,669 خواهد بود 66، که افتخار به B. پس در واقع، ما 217 00:08:43,669 --> 00:08:49,107 دریافت B C D. هر کس خوب وجود دارد؟ 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 من فقط در وجود دارد پرانتز که برای حلقه. 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 آلیسون: درست است. 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 آلیسون: این کار نخواهد کرد. 266 00:10:48,910 --> 00:10:50,290 شما از دامنه هستید، درست است؟ 267 00:10:50,290 --> 00:10:55,160 متغیر محلی وجود ندارد در خارج از این پرانتز، همه حق است؟ 268 00:10:55,160 --> 00:10:56,462 و سپس آنچه در مورد اینجا؟ 269 00:10:56,462 --> 00:10:57,850 >> دانشجو: [نامفهوم]. 270 00:10:57,850 --> 00:10:59,210 >> آلیسون: چه؟ 271 00:10:59,210 --> 00:10:59,900 راب، بروید. 272 00:10:59,900 --> 00:11:00,854 >> راب: من فقط گفت. 273 00:11:00,854 --> 00:11:04,200 متغیرهای جهانی باید متغیر تاکید جهانی است. 274 00:11:04,200 --> 00:11:05,660 >> آلیسون: آه، بله، متاسفم. 275 00:11:05,660 --> 00:11:06,200 تشکر راب. 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 آلیسون: این کار خواهم کرد. 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 >> نمونه اولیه است که اساسا فقط گفتن کامپایلر شما 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 برخی از اعضای هیات که مکعب برخی از اعضای هیات از ورودی می گیرد. 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 >> بنابراین اگر ما ورودی مکعب اعضای هیات ندارد در بالا، زمانی که ما به نام مکعب 310 00:12:34,450 --> 00:12:36,620 در اصلی، کامپایلر ما دیوانه در ما می شوند. 311 00:12:36,620 --> 00:12:38,890 این می خواهم، آنچه شما در مورد صحبت کردن؟ 312 00:12:38,890 --> 00:12:40,360 مکعب وجود ندارد. 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 شما می دانید، هنگامی که شما ببینید مکعب، در مورد آن نگران نباشید. 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 برای اولین بار، شما به نیاز آن را در بالای نمونه سازی. 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 >> راب: این مربع، cubing نیست. 324 00:13:04,412 --> 00:13:05,855 >> آلیسون: آه خدای من. 325 00:13:05,855 --> 00:13:09,435 من گیب have-- نیست، من فکر می کردم شما 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، بنابراین این باید مربع است، نبات نیست. 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 هر غلط املایی دیگر؟ 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 هر غلط املایی در اینجا قبل از ما شروع، راب؟ 341 00:13:36,230 --> 00:13:37,356 342 00:13:37,356 --> 00:13:42,380 [می خندد] OK، بنابراین ساختمانها. 343 00:13:42,380 --> 00:13:45,040 در واقع، ساختمانها شما اجازه می دهد برای ایجاد نوع داده خود را. 344 00:13:45,040 --> 00:13:49,264 بنابراین بسیار شبیه به یک int یا کاراکتر و یا شناور، آن را فقط به نوع دیگری است. 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 ساختمانها به ما اجازه برگزاری چند همه چیز از انواع مختلف. 350 00:14:04,660 --> 00:14:08,944 بنابراین در این مورد در اینجا، ما یک ساختار به نام دانشجو، 351 00:14:08,944 --> 00:14:10,650 در پایین نام کنید. 352 00:14:10,650 --> 00:14:13,540 و ما باید برخی از شناسه بین المللی و برخی از نام رشته. 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 بنابراین به جای فقط داشتن، مانند، دانشجویان بین المللی، ما فقط باید یک دانش آموز، 360 00:14:32,680 --> 00:14:33,390 دانش آموز 1. 361 00:14:33,390 --> 00:14:33,560 اوه، نگاه کنید. 362 00:14:33,560 --> 00:14:34,059 این راب است. 363 00:14:34,059 --> 00:14:35,750 364 00:14:35,750 --> 00:14:38,880 بنابراین در اینجا ما اعلام یک ساختار، و یا یک متغیر 365 00:14:38,880 --> 00:14:40,940 نام دانش آموز 1 از نوع دانشجویی. 366 00:14:40,940 --> 00:14:45,370 پس از آن به رفتن به شناسه و نام های مرتبط با آن. 367 00:14:45,370 --> 00:14:48,430 >> و راه ما دسترسی به این عناصر در ساختار ما 368 00:14:48,430 --> 00:14:50,100 با عملگر نقطه، در اینجا. 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 و ما اختصاص نام به راب. 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 از آن استفاده کنید like-- بله؟ 376 00:15:06,787 --> 00:15:09,530 >> دانشجو: بله، زمانی که typedef-- ما نیاز به استفاده از typedef؟ 377 00:15:09,530 --> 00:15:13,190 >> آلیسون: پس 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 >> راب: آره، آن را در واقع، بنابراین آن را فقط ایجاد 381 00:15:22,550 --> 00:15:24,215 نام مستعار یا یک نام مستعار برای یک نوع. 382 00:15:24,215 --> 00:15:25,590 بنابراین شما می توانید نوع می باشد که [نامفهوم]. 383 00:15:25,590 --> 00:15:27,140 384 00:15:27,140 --> 00:15:30,350 پس [نامفهوم] وجود دارد، و در حال حاضر ما فقط باید 385 00:15:30,350 --> 00:15:32,090 [نامفهوم] ابزار دقیقا همان چیزی که. 386 00:15:32,090 --> 00:15:37,210 و بنابراین در اینجا، ما در حال تایپ شده، من فکر می کنم، برخی از ساختار نوع 2 [نامفهوم]. 387 00:15:37,210 --> 00:15:40,680 پس از آن تنها یک نام مستعار برای یک نوع داده شده است. 388 00:15:40,680 --> 00:15:44,344 >> دانشجو: رشته [نامفهوم] کتابخانه مثل ستاره کاراکتر تایپ شده است. 389 00:15:44,344 --> 00:15:51,380 390 00:15:51,380 --> 00:15:54,390 >> آلیسون: برای هدف ما در اینجا، اگر شما در حال اعلام یک ساختار، 391 00:15:54,390 --> 00:15:55,600 فقط typedef ساختار. 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 ما آن دسترسی داشته باشید با یک نقطه. 395 00:16:06,390 --> 00:16:08,580 اگر ما یک اشاره گر به یک ساختار، ما در واقع می تواند 396 00:16:08,580 --> 00:16:10,700 استفاده از فلش است که بسیار سرد. 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 نام به جای نقطه، به دلیل آن است که یک اشاره گر است، 404 00:16:36,520 --> 00:16:37,640 و اختصاص راب. 405 00:16:37,640 --> 00:16:40,720 و در حال حاضر اگر ما به خواهید تغییر راب به داوین، 406 00:16:40,720 --> 00:16:43,570 این است که فقط به شما نشان راه های مختلف به انجام آن. 407 00:16:43,570 --> 00:16:48,850 >> بنابراین به جای استفاده از فلش، شما می also-- من این پایان و پس از آن 408 00:16:48,850 --> 00:16:52,860 را که شما می توانید از question-- همچنین انجام دانشجوی مرجع 1. 409 00:16:52,860 --> 00:16:56,170 که گفت: مثل رفتن به آنچه در دانش آموز 1، که 410 00:16:56,170 --> 00:16:58,840 خواهد بود ساختار دانش آموز ما. 411 00:16:58,840 --> 00:17:03,910 دسترسی به آن با یک نقطه و عنصر که شما می خواهید، و سپس آن را تخصیص دهید. 412 00:17:03,910 --> 00:17:05,326 یک سوال وجود دارد. 413 00:17:05,326 --> 00:17:08,034 دانشجو: بله، پس چرا شما برای استفاده از [نامفهوم] زمانی که شما 414 00:17:08,034 --> 00:17:10,367 انجام ستاره دانشجو بدون [نامفهوم] دانش آموز؟ 415 00:17:10,367 --> 00:17:12,200 آلیسون: از آنجا که این در حال ایجاد یک اشاره گر. 416 00:17:12,200 --> 00:17:13,616 راب: ما قصد داریم در مورد آن صحبت کنید. 417 00:17:13,616 --> 00:17:16,119 آلیسون: ما قصد داریم به بحث در مورد آن بعدا در بررسی. 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 در ساختار با فلش. 424 00:17:30,960 --> 00:17:36,440 یا شما می توانید ارجاع اشاره گر خود را، و سپس آن را به عنوان شما به طور معمول دسترسی داشته باشید. 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 اگر تمام چیزهایی اشاره گر کمی هستند گیج کننده، گیب خواهد در مورد آن صحبت می کنید، 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 آلیسون: یکی از قبلی؟ 432 00:17:49,470 --> 00:17:52,330 بنابراین دانش آموز 1 در این مورد اشاره گر نیست. 433 00:17:52,330 --> 00:17:54,380 این فقط ساختار واقعی خود است. 434 00:17:54,380 --> 00:17:55,400 >> دانشجو: OK. 435 00:17:55,400 --> 00:17:57,645 >> آلیسون: در حالی که این یکی یک اشاره گر به یک ساختار است. 436 00:17:57,645 --> 00:17:58,910 437 00:17:58,910 --> 00:18:02,060 >> دانشجو: OK، اما نوع تا پایان کار همان [نامفهوم]. 438 00:18:02,060 --> 00:18:03,310 >> آلیسون: این کار به طور موثر همان. 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 >> آلیسون: بله، آنها هستند همان طور موثر. 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 آلیسون: MM-HM؟ 446 00:18:14,580 --> 00:18:16,880 دانشجو: چرا شما انجام دهد دارای پرانتز؟ 447 00:18:16,880 --> 00:18:19,575 آلیسون: از آنجا که دانش آموز 1 اشاره گر است. 448 00:18:19,575 --> 00:18:22,200 بنابراین شما نیاز به اطمینان حاصل کنید که فقط هرگاه اشاره گر. 449 00:18:22,200 --> 00:18:23,380 >> دانشجو: OK. 450 00:18:23,380 --> 00:18:26,700 >> آلیسون: بنابراین در این مورد در اینجا، پرانتز در اطراف آن 451 00:18:26,700 --> 00:18:29,875 بدان معناست که شما هرگاه دانش آموز 1. 452 00:18:29,875 --> 00:18:35,390 بنابراین شما در حال رفتن به جایی که دانش آموز 1 امتیاز، است که ساختار خود را. 453 00:18:35,390 --> 00:18:38,010 بنابراین در حال حاضر شما می توانید فکر می کنم از آن به عنوان ساختار است که، 454 00:18:38,010 --> 00:18:39,785 بنابراین ما می توانیم عملیات نقطه عادی ما استفاده کنید. 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 >> بنابراین آخرین چیزی که من فکر می کنم آخرین اسلاید من است، وو! 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 تمام انواع چیزهای جالب با ما. 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: سلام، بچه ها. 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 پس فقط به روشن آلیسون صحبت کردن در مورد در اینجا، بنابراین به این دلیل 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 در حالی که قبل از اسلاید، دانش آموز است ساختار واقعی، مانند یک دانشجوی واقعی، 486 00:19:52,960 --> 00:19:54,400 حاوی هر یک از کسانی که همه چیز. 487 00:19:54,400 --> 00:19:57,050 >> و به همین دلیل ما می خواهید to-- بله، داوین؟ 488 00:19:57,050 --> 00:19:58,630 >> داوین: فلش چیست؟ 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 که آنها نمیفهمد مردم استفاده می شود که به نحو بسیار، 496 00:20:19,870 --> 00:20:23,970 که آنها می خواهم فقط می آیند با ساختار دستوری برای آن است. 497 00:20:23,970 --> 00:20:26,820 و این مکان در زمان شکل این فلش. 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 ما واقعا نمی هر فضا که ساختار واقعی نگه می دارد. 512 00:21:06,570 --> 00:21:08,660 >> پس این است که در دو مرحله انجام شود. 513 00:21:08,660 --> 00:21:11,545 ما برای ایجاد حافظه برای قرار دادن در ساختار. 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 شما فقط pass-- من نمی know-- 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 >> پس چه من تلاش می گویند این است که اگر شما یک function-- اینجا sorry--، 540 00:22:22,440 --> 00:22:27,700 اگر ما یک تابع مانند تا پنج تا وجود دارد، اگر شما سعی می کنید به تصویب یک متغیر، 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. 555 00:23:04,390 --> 00:23:05,940 اگر یک ستاره کاراکتر است، شما اشاره در یک نمودار. 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 نیاز به برگزاری یک کاراکتر، متوسط، و یا یک دانش آموز. 561 00:23:15,380 --> 00:23:16,890 تنها نیاز به برگزاری یک آدرس. 562 00:23:16,890 --> 00:23:21,390 به همین دلیل است که همه آنها 4 بایت هستید طولانی در یک ماشین 32 بیتی طبیعی است. 563 00:23:21,390 --> 00:23:21,890 OK؟ 564 00:23:21,890 --> 00:23:25,600 بنابراین در اینجا، X یک متغیر است که اشاره است به یک int. نقاط Y به کاراکتر. نقاط Z 565 00:23:25,600 --> 00:23:26,580 به شناور. 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 بنابراین ارجاع و هرگاه آنهایی که بزرگ است. 572 00:23:36,540 --> 00:23:38,100 573 00:23:38,100 --> 00:23:41,602 بنابراین علامت از نام متغیر شما می دهد؟ 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 بنابراین اگر اعضای هیات شما اعلام برابر با 5، پس از آن علامت 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-- در مقابل دقیق است. 582 00:24:00,380 --> 00:24:04,120 OK، درست مثل بار است مقابل یک بخش، 583 00:24:04,120 --> 00:24:06,060 ستاره مخالف علامت است. 584 00:24:06,060 --> 00:24:09,710 بنابراین هرگاه وسیله وجود دارد بروید. 585 00:24:09,710 --> 00:24:14,280 بنابراین اگر شما من را star-- 50 know-- نیست، که 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 از آنجا چه اتفاقی می افتد اگر شما چیزی شبیه به ستاره علامت؟ 589 00:24:27,320 --> 00:24:28,470 590 00:24:28,470 --> 00:24:33,460 خب، علامت به شما می دهد آدرس یک متغیر، آدرس یک. 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 به همین دلیل است که آنها معمولا هستید با اشاره به این same-- 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 >> زیر کاپوت، به عنوان مثال، اگر ما اعلام اعضای هیات ایکس برابر 5، 602 00:24:57,240 --> 00:24:58,040 ما باید یک متغیر. 603 00:24:58,040 --> 00:25:00,790 و به یاد داشته باشید که من هر گفت variable-- و این چیز خوبی است 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 و پس از آن من گفتم اشاره گر ستاره بین المللی. 620 00:25:38,080 --> 00:25:40,070 بنابراین این نوع، توجه متفاوت است. 621 00:25:40,070 --> 00:25:43,220 بین المللی اشاره گر ستاره برابر است با آدرس 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 و من می گویم کپی اعضای هیات برابر وجود دارد. 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 >> دانشجو: در این مورد، اشاره گر در پشته؟ 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-- در حال رفتن به در پشته زندگی می کنند. 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 و آنها در حال رفتن به گرفتن مانند تا در پشته انباشته شده است. 654 00:27:08,500 --> 00:27:09,930 این چیزی است که پشته نامیده می شود. 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 >> ما به این اسلاید بروید. 660 00:27:21,680 --> 00:27:22,800 بله؟ 661 00:27:22,800 --> 00:27:25,490 >> دانشجو: چرا اعضای هیات نمی کپی از بازگشت 0x04؟ 662 00:27:25,490 --> 00:27:27,870 663 00:27:27,870 --> 00:27:30,066 >> BINKY: چرا اعضای هیات نمی کپی از بازگشت 0x04؟ 664 00:27:30,066 --> 00:27:32,450 >> دانشجو: چرا که نه [نامفهوم]؟ 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 >> دانشجو: اوه، 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 در جعبه عبارت [نامفهوم] 678 00:27:52,803 --> 00:27:55,300 اگر ما قرار اعضای هیات کپی [نامفهوم]. 679 00:27:55,300 --> 00:27:56,710 >> BINKY: Int-- ما را، آره. 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 >> پس چه است این کار، اگر این است کد حشره دار، ما در حال تلاش برای انجام پنج. 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 این چیزی است که من function-- این چیزی است که من در تلاش برای انجام. 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 >> خوب، پس چه می خواهد مقادیر x و حق در اینجا، 713 00:29:21,440 --> 00:29:27,734 خط اول، درست قبل از اولین line-- من از برنامه say--؟ 714 00:29:27,734 --> 00:29:28,940 >> دانشجو: احتمالا زباله. 715 00:29:28,940 --> 00:29:30,023 >> BINKY: فقط چیزهای زباله. 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 بین المللی است اعلام شده است. 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 >> دانشجو: [نامفهوم]. 726 00:29:55,410 --> 00:29:57,540 >> BINKY: بنابراین 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 به. 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 >> دانشجو: [نامفهوم]. 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: آره، 3، 3. 769 00:31:30,415 --> 00:31:31,540 >> دانشجو: [نامفهوم]، آره. 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: بله؟ 774 00:31:37,410 --> 00:31:42,330 آیا می توانید توضیح دهید که چگونه دوباره کپی می شود [نامفهوم]؟ 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 دانشجو: [نامفهوم]. 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 >> دانشجو: چگونه است آن را دوباره به تعداد پنج [نامفهوم]؟ 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 >> دانشجو: [نامفهوم]؟ 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 >> این درست مثل تابع مبادله دیوید نشان داد در سخنرانی، به جز من 828 00:33:50,150 --> 00:33:51,740 تنها برخورد با یک متغیر. 829 00:33:51,740 --> 00:33:55,960 و او با استفاده از دو، بنابراین اعضای هیات A و B و سپس متغیر موقت و فلان چیز. 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 یک ستاره بین المللی است. 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 تا زمانی که من در اینجا شروع، من هنوز هم 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 ستاره بین المللی وجود ندارد، همان چیزی که به عنوان قبل از. 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 و اجازه دهید فرض کنیم که آدرس از * 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 >> دانشجو: [نامفهوم]. 884 00:36:06,210 --> 00:36:06,950 >> BINKY: متاسفم؟ 885 00:36:06,950 --> 00:36:08,145 >> دانشجو: [نامفهوم]. 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 >> دانشجو: [نامفهوم]. 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 >> دانشجو: [نامفهوم]. 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 و آدرس * 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 از آنجا که آدرس * 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 بنابراین اگر شما می خواهید پیاده سازی یک تابع مبادله، 934 00:38:00,160 --> 00:38:05,010 شما فقط می همین کار را دقیق، به جز شما نیاز به اعضای هیات ستاره در اینجا، 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 برای مثال، بسیاری از وقفه. 950 00:38:31,840 --> 00:38:34,420 بنابراین اگر شما می خواهید برای رفتن به دوم بین المللی و یا به اعضای هیات سوم، 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 که اگر شما در حال خرید و فروش با، می گویند، یک ستاره بین المللی، و شما اضافه کردن 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 اگر ما یک آرایه از تعداد زیادی از نوع داده int و پس از آن ما سعی می کنیم برای رفتن به مرحله دوم، 963 00:39:05,260 --> 00:39:08,790 آن را اساسا جمع آدرس یکی از اولین به علاوه 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 در حال حاضر اعضای هیات. 971 00:39:23,530 --> 00:39:25,640 اعضای هیات ایکس معادل 5. 972 00:39:25,640 --> 00:39:26,950 X دارای ارزش 5. 973 00:39:26,950 --> 00:39:31,240 و ما مقداردهی اولیه اشاره گر، اعضای هیات Y ستاره y هوشمند برابر آدرس X. 974 00:39:31,240 --> 00:39:33,660 >> بیایید فرض کنیم آدرس * 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 بنابراین آن را به واقع توسط من بار به اندازه نوع اشاره گر. 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 >> بنابراین اگر آن را به یک کاراکتر بود، به عنوان مثال، اگر این ستاره Y کاراکتر بودند، 984 00:40:02,440 --> 00:40:07,141 و اگر ما اضافه 1 سپس این امر 5، به دلیل کاراکتر است 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 بنابراین آنچه شما انجام فقط گذشته است آدرس اولین بایت. 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 بنابراین شما آرایه از طریق آدرس آن گذشت، بنابراین آدرس اولین بایت. 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 اگر شما به یاد داشته باشید براکت نماد، آرایه براکت 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 >> و حدس بزنید چه نماد براکت برای آرایه براکت 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 ما می خواهیم برای رفتن به سوم جعبه، بنابراین آرایه به همراه 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 در حال حاضر، من قصد دارم به دست آن را به هانا، 1029 00:41:59,880 --> 00:42:00,330 >> هنا: ماهواره، یی بلند. 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 >> هنا: سلام، سرد، بنابراین ما رفتن به صحبت کمی بیشتر 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 بنابراین به عنوان گیب زودتر اگر ما اشاره شد، تابع دوباره و دوباره تماس بگیرید، 1040 00:42:32,160 --> 00:42:34,180 ما در حال رفتن به پشته همه چیز را در پشته. 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-- اجازه دهید say-- تماس بازگشتی، 1048 00:42:55,200 --> 00:42:58,392 و ما خواستار یک تابع دوباره، و دوباره، و دوباره، و دوباره، 1049 00:42:58,392 --> 00:43:00,350 و آن را انباشته کردن، انباشته کردن، انباشته کردن. 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 و این سرریز پشته نامیده می شود. 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 بنابراین این نوع از همان ایده به عنوان سرریز پشته، که در آن 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 و به جای بازگشت، شما می دانید، یک رشته شاد مانند سلام، من 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 هر گونه سؤال با سرریز بافر؟ 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، بنابراین ما صحبت زیادی از درباره اشاره گر با گیب. 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 >> بنابراین شما می توانید اندازه در بایت را ببینید. 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 بنابراین ما آن اندازه از نوع داده int، را که ما یاد گرفتیم چگونه بسیاری از بایت بود؟ 1107 00:45:19,641 --> 00:45:20,140 دانشجو: 4. 1108 00:45:20,140 --> 00:45:22,920 هنا: 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 شما باید برای null به. 1112 00:45:32,880 --> 00:45:37,310 اگر شما برای null به نیست، خوب، malloc اگر آن را خارج از فضای اجرا می شود 1113 00:45:37,310 --> 00:45:40,400 و دیگر نمی تواند شما را از هر گونه حافظه بیشتر، از آن پوچ باز خواهد گشت. 1114 00:45:40,400 --> 00:45:42,060 1115 00:45:42,060 --> 00:45:45,630 بنابراین اگر شما بررسی نمی، malloc ممکن است پوچ بازگشت. 1116 00:45:45,630 --> 00:45:51,265 و پس از آن اگر ما را امتحان کنید ارجاع یک اشاره گر تهی، 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 >> دانشجو: آیا چک کردن پوچ [نامفهوم] آن را در مسابقه انجام نشده است؟ 1124 00:46:05,460 --> 00:46:08,100 >> هنا: مطمئنا، این سوال بود آن را در مسابقه matter--، 1125 00:46:08,100 --> 00:46:10,420 امتیاز شما خاموش اگر شما برای null به نه؟ 1126 00:46:10,420 --> 00:46:12,794 بله، شما نقاط فعال را دریافت کنید اگر شما برای پوچ بررسی کنید. 1127 00:46:12,794 --> 00:46:16,030 هر زمان که شما malloc تماس بگیرید، هر دو در مسابقه و psets خود و در زندگی واقعی، 1128 00:46:16,030 --> 00:46:17,155 شما باید برای null به. 1129 00:46:17,155 --> 00:46:18,330 سوال خوبی است. 1130 00:46:18,330 --> 00:46:19,689 >> گیب: اگر من را آزاد نمی کند؟ 1131 00:46:19,689 --> 00:46:21,730 هنا: گیب می خواهد بداند چه اگر ما آزاد نیست. 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-- سرریز بافر واقعی سریع دوباره؟ 1136 00:46:30,120 --> 00:46:30,530 >> هنا: مطمئنا. 1137 00:46:30,530 --> 00:46:33,071 سوال این بود می توانید بیش از ما به سرریز بافر واقعا سریع است. 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 >> بنابراین اجازه دهید در این مورد می گویند، ما باید فقط فضای کافی برای ارسال رشته خوش آمدید. 1144 00:46:51,360 --> 00:46:57,340 اگر ما گذشته که محدود به، اگر ما به گذشته چه آرایه ما گفت: آن را می تواند نگه دارید، 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 >> دانشجو: پس پشته [نامفهوم]، شما از پایین به بالا رفتن گفت. 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 >> هنا: چگونه you-- انجام تسلیم به راب در این یکی. 1160 00:47:32,100 --> 00:47:35,370 1161 00:47:35,370 --> 00:47:38,213 >> راب: آن را در همان رشد خواهد کرد جهت پشته رشد می کند. 1162 00:47:38,213 --> 00:47:38,712 هنا: OK. 1163 00:47:38,712 --> 00:47:40,967 راب: پس من اشتباه می شود. 1164 00:47:40,967 --> 00:47:42,331 این است که رفتن به انتزاع. 1165 00:47:42,331 --> 00:47:42,831 هنا: OK. 1166 00:47:42,831 --> 00:47:44,000 راب: این درست است. 1167 00:47:44,000 --> 00:47:49,420 بنابراین اگر پشته در حال رشد است تا، سپس آن را generally-- 1168 00:47:49,420 --> 00:47:52,380 ندارد به مانند این است. اما شما می توانید اعضای هیات ایکس اعلام کنند. 1169 00:47:52,380 --> 00:47:54,120 سپس شما اعلام y هوشمند. 1170 00:47:54,120 --> 00:47:57,300 سپس اعضای هیات ایکس به طور کلی خواهد بود پایین تر در پشته از 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 >> راب: بنابراین سوال دوباره تنها شد چه اتفاقی می افتد هر فریم می سازد. 1174 00:48:06,800 --> 00:48:08,960 بنابراین هر تابع می شود قسمت کوچکی از پشته. 1175 00:48:08,960 --> 00:48:13,030 و از شما تا به، است که در آن قطعه کوچک، که در آن قاب، 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 >> راب: فقط به میکروفون است. 1179 00:48:18,688 --> 00:48:19,396 هنا: اوه، آره. 1180 00:48:19,396 --> 00:48:20,440 راب: من به شما صحبت می کنند. 1181 00:48:20,440 --> 00:48:21,410 هنا: اوه، بله، OK. 1182 00:48:21,410 --> 00:48:24,150 راب: استثنا است برای آرایه ها و ساختمانها، 1183 00:48:24,150 --> 00:48:27,470 که در آن آرایه ها، پایین تر شاخص در آرایه، 1184 00:48:27,470 --> 00:48:29,930 و در ساختمانها در بالاتر درست در ساختمانها 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 و 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 هنا: سوال دیگر بیش از اینجا؟ 1191 00:48:46,340 --> 00:48:51,620 دانشجو: بنابراین در بافر جریان، تنها سرریز بافر 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 >> هنا: MM-HM. 1197 00:49:06,018 --> 00:49:08,600 دانشجو: آیا می توانم آنها را به زور شما چیزی را پشت 1198 00:49:08,600 --> 00:49:11,777 که بزرگتر از هر شما برای آنها اختصاص داده ایم؟ 1199 00:49:11,777 --> 00:49:13,610 هنا: مطمئنا، به طوری که سوال اساسا بود، 1200 00:49:13,610 --> 00:49:16,217 می تواند کاربر را به شما بدهد بیش از شما برای درخواست؟ 1201 00:49:16,217 --> 00:49:16,800 دانشجو: آره. 1202 00:49:16,800 --> 00:49:18,480 هنا: خب، شما می توانید جلوگیری از کاربر را از انجام آن است. 1203 00:49:18,480 --> 00:49:21,350 شما به طور خاص می توان گفت نمی کنند من بیشتر از تعداد X توسط بایت را 1204 00:49:21,350 --> 00:49:24,330 من فقط به شما داده ام اتاق شماره 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 چه تفاوتی بین است سرریز پشته و سرریز بافر؟ 1208 00:49:30,270 --> 00:49:32,140 >> هنا: OK، بنابراین پشته overflow-- آه، چه 1209 00:49:32,140 --> 00:49:34,790 تفاوت بین پشته است سرریز و سرریز بافر؟ 1210 00:49:34,790 --> 00:49:37,581 بنابراین ما می خواهیم از سرریز پشته فکر می کنم اتفاق می افتد زمانی که ما در واقع هستید 1211 00:49:37,581 --> 00:49:39,530 انباشته کردن این فراخوانی تابع. 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 >> بنابراین ما جمع کردن بیش از حد بالا، و پس از آن ما شروع به سرریز. 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 >> سرریز بافر است در یک برنامه. 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 >> راب: بله، شما ممکن است بخواهید فقط به این تکرار، 1225 00:50:10,950 --> 00:50:12,699 اما شما همچنین می توانید فکر می کنم از سرریز پشته 1226 00:50:12,699 --> 00:50:15,374 به عنوان مثل یک نوع خاص از سرریز بافر. 1227 00:50:15,374 --> 00:50:17,665 یا شما فقط فکر می کنم از شما پشته به عنوان یک بافر واقعا بزرگ است. 1228 00:50:17,665 --> 00:50:20,724 سپس هنگامی که شما سرریز شما پشته، این نوع مانند یک سرریز بافر. 1229 00:50:20,724 --> 00:50:23,390 اما سرریز پشته فقط یک مدت خاص استفاده می شود که در پشته 1230 00:50:23,390 --> 00:50:24,310 خود را مملو. 1231 00:50:24,310 --> 00:50:27,500 >> هنا: راست، پس به تکرار برای این ویدئو، 1232 00:50:27,500 --> 00:50:31,756 آن را به شما می تواند از سرریز پشته به عنوان فکر می کنم یک نوع خاص از سرریز بافر. 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 اگر تشخیص برخورد بازگشت تهی، و پس از آن شما 1249 00:51:03,390 --> 00:51:05,500 تلاش برای انجام کاری با ارزش های پوچ، 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 بنابراین این چیزی است که اتفاق می افتد زمانی که آلیسون به شما نشان داد 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 >> اگر ما فراموش می کنیم به کامپیوتر بگویید در مورد مکعب، هنگامی که تلاش می کند به مکعب اصلی تماس بگیرید، 1261 00:51:35,205 --> 00:51:36,830 کامپیوتر خواهد بود، مانند، خدای من. 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 آیا به من داد نیست. 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 به علاوه به علاوه. 1276 00:52:03,449 --> 00:52:04,740 و کامپیوتر می گوید چه N است؟ 1277 00:52:04,740 --> 00:52:06,660 شما هرگز به من گفت ازت چیزی بود. 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 >> دانشجو: برای ضمنی اعلامیه تابع، 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 >> هنا: راست، به طوری که سوال این بود، می تواند شما 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 >> هنا: مسلما، چرا که در همان راه 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 >> دانشجو: برای تقسیم بندی گسل، که همچنین می 1295 00:52:43,230 --> 00:52:47,350 اتفاق می افتد اگر ما، مانند، سعی برای دسترسی به یک متغیر، 1296 00:52:47,350 --> 00:52:51,947 مانند، در یک متفاوت [نامفهوم] از آن را در اعلام شد؟ 1297 00:52:51,947 --> 00:52:54,030 هنا: مطمئنا، این کار را می کنیم دریافت گسل تقسیم بندی 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 هنا: زیبا. 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 بنابراین من یک زن و شوهر بار ذکر که ما ممکن است سرریز پشته دریافت 1311 00:53:15,160 --> 00:53:17,919 به خاطر اینکه ما خواستار ما تابع بازگشتی تا چند بار. 1312 00:53:17,919 --> 00:53:20,210 ما در حال گرفتن تمام این پشته فریم، اه، اه، اه. 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 بنابراین، برای مثال، اگر ما در حال برنامه نویسی، ، می گویند، به صورت بازگشتی فیبوناچی، 1320 00:53:38,740 --> 00:53:43,210 ما می خواهیم مطمئن شوید که هنگامی که ما به 0 یا عدد فیبوناچی اول، 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 در واقع خود را به بازگشت به من قرض بدهید. 1329 00:54:02,350 --> 00:54:05,510 تعریف آنها ممکن است بازگشتی به خودی خود. 1330 00:54:05,510 --> 00:54:06,980 بنابراین فیبوناچی است. 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 و یا این است که برای برخی از دیگر نوع [نامفهوم]؟ 1339 00:54:22,590 --> 00:54:25,170 >> هنا: مطمئنا، تا مورد گوشه است 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 مورد پایه است نوع مربوط، در که آنها مانند موارد خاص هستید 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 >> راب: بله، اغلب، موارد خود را پایه ممکن است نمونه هایی از پایگاه های گوشه. 1351 00:54:53,460 --> 00:54:55,876 >> هنا: راست، سرد، هر چیزی؟ 1352 00:54:55,876 --> 00:54:58,732 >> دانشجو: آیا می توانید توضیح دهید پایگاه کمی بیشتر؟ 1353 00:54:58,732 --> 00:55:01,600 من کاملا نمی دانند که [نامفهوم] مورد پایه. 1354 00:55:01,600 --> 00:55:02,676 >> هنا: از موارد پایه؟ 1355 00:55:02,676 --> 00:55:03,140 >> دانشجو: موارد پایه، آره. 1356 00:55:03,140 --> 00:55:03,770 >> هنا: بله، مطمئن شوید. 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 خوب، پس واقعا به سرعت، من سعی کنید به اندازه کافی بزرگ ارسال 1362 00:55:09,530 --> 00:55:11,320 بنابراین شما می توانید بر روی صفحه نمایش را ببینید. 1363 00:55:11,320 --> 00:55:13,490 اجازه دهید بحث در مورد، واقعا سرعت، فیبوناچی. 1364 00:55:13,490 --> 00:55:15,550 بنابراین من به شما دنباله فیبوناچی می دهد. 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، بنابراین راه است که من فقط توصیف فیبوناچی، 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 خوب، فیبوناچی n ام number-- پس بیایید 1372 00:55:38,570 --> 00:55:42,260 می گویند ما باید این تابع نام فیبو fib-- از N 1373 00:55:42,260 --> 00:55:48,260 رفتن به برابر به دروغ گفتن است از N منهای 1 plus-- با عرض پوزش، 1374 00:55:48,260 --> 00:55:51,240 ما به خط بعدی رفتن بیش از فیبو here-- از n منهای 2. 1375 00:55:51,240 --> 00:55:52,790 1376 00:55:52,790 --> 00:55:56,790 >> خوب، پس این آثار بزرگ اگر شما نگاه، به عنوان مثال، صفر، یک، 1377 00:55:56,790 --> 00:55:59,410 دو، سه، چهار، تعداد پنجم فیبوناچی، 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 چه می شود اگر شما فقط به هدف قرار دادن این دو مقدار اول؟ 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 0 فیبوناچی است. 1387 00:56:23,890 --> 00:56:26,115 و عدد فیبوناچی اول 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 و پس از آن من خواهد شد برخی از داوین را زمان در مورد برنامه نویسی نمونه صحبت کنید. 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 قرار دادن بر روی بازی ورق خود را. 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 در برخی از شبه نگاه کنید، اگر خود کد نیست. 1413 00:57:24,220 --> 00:57:25,610 1414 00:57:25,610 --> 00:57:30,380 >> شما خواهید دید که مرتب سازی بر حباب دارد بالا محدود در بدترین حالت از 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 >> هنا: هنگامی که می خواهید مایل به استفاده از انتخاب مرتب سازی بر؟ 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 >> دانشجو: [نامفهوم]. 1430 00:57:56,860 --> 00:57:58,151 >> هنا: پس از آن بسیار متفاوت است. 1431 00:57:58,151 --> 00:58:00,760 اگر شما خاص الزامات مورد نیاز برای برنامه های خود را، 1432 00:58:00,760 --> 00:58:04,887 مثل چیزهایی مانند اگر ما فقط گفت: پیاده سازی یک sorry-- 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 یا پایین تر در بهترین حالت از N محدود شده است. 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 سپس شما می خواهید انجام دهید مرتب سازی بر حباب، دلیل این که شما 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--؟ 1442 00:58:23,098 --> 00:58:25,488 >> دانشجو: آیا آن را [نامفهوم] می گویند که [نامفهوم]؟ 1443 00:58:25,488 --> 00:58:30,077 1444 00:58:30,077 --> 00:58:31,910 هنا: این یک چیز است که به شما خواهد گفت 1445 00:58:31,910 --> 00:58:33,670 اگر شما به دنبال در پیاده سازی. 1446 00:58:33,670 --> 00:58:35,850 راه من در واقع در مورد اینکه چرا این فکر می کنم N 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 یا که ما در 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 و ما را در ورود به سیستم N log 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 >> اوه، لیست های پیوندی. 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 ما ممکن است به سرریز بافر را اجرا کنید. 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 به be-- عناصر آرایه همه یکی می شوند یکی پس از دیگری در memory-- مرتبط 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 این یک فرصت بزرگ است را به استفاده از ساختمانها. 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 بنابراین می بینید، ما یک نفر عدد صحیح، که برای رفتن به ارزش واقعی، 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 آیا شما مشخص است که ستاره مانند یک ساختار است؟ 1499 01:01:01,920 --> 01:01:05,620 >> هنا: بله، بنابراین از آنجا که این است که تقریبا مانند یک نوع، 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 تا زمانی که ما به پایان this-- دریافت و بعد از این که ما فقط می توانید آن را 1504 01:01:17,283 --> 01:01:21,935 node-- داخل این تعریف، ما نیاز به آن را یک گره ساختار. 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 چون وقتی ما در بود [نامفهوم] ما فقط تا به حال به آن را در نقطه و ویرگول، 1511 01:01:33,578 --> 01:01:37,352 اما در حال حاضر ما برای پیدا کردن که گره ساختار؟ [نامفهوم]. 1512 01:01:37,352 --> 01:01:39,060 هنا: بنابراین من معتقدم در گذشته به عنوان مثال، 1513 01:01:39,060 --> 01:01:42,110 ما فقط ایجاد شد در هر زمان شما خواست به استفاده از یک دانش آموز پس از آن، شما 1514 01:01:42,110 --> 01:01:46,430 مجبور به استفاده از ساختار node-- من sorry-- دانشجویی ساختار. 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 اجازه می دهد تا ما را به اجتناب از ساختار کلمه در آغاز راه است. 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 >> هنا: بنابراین یک چیز این است که ما می گویند که چگونه ممکن است شما را از طریق یک لیست پیوندی جستجو؟ 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 ما فقط می تواند در عنصر صفر نگاه کنید، عنصر یک عنصر دو، اه، اه، 1530 01:02:21,472 --> 01:02:21,972 اه. 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 ما در واقع می خواهم که به دنبال این پیچ و خم کمی از اشاره گر. 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 آنچه که ما می تواند انجام دهد در سفارش to-- اجازه دهید ما می گویند 1537 01:02:32,860 --> 01:02:35,430 می خواهید فقط از طریق تکرار لیست به طور کامل مرتبط است. 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 و در حال حاضر من آن را به نوبه خود داوین برای 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 >> راب: و راب. 1573 01:04:01,810 --> 01:04:02,360 >> هنا: اوه، داوین و راب. 1574 01:04:02,360 --> 01:04:03,055 من متاسفم. 1575 01:04:03,055 --> 01:04:03,596 >> دانشجو: وو! 1576 01:04:03,596 --> 01:04:08,140 1577 01:04:08,140 --> 01:04:09,110 >> راب: تشکر. 1578 01:04:09,110 --> 01:04:11,209 >> داوین: آیا شما می خواهید برای گفتن همه چیز سریع واقعی است؟ 1579 01:04:11,209 --> 01:04:11,875 راب: آره، آره. 1580 01:04:11,875 --> 01:04:12,845 داوین: هنگامی که من از بالا. 1581 01:04:12,845 --> 01:04:16,240 1582 01:04:16,240 --> 01:04:19,520 OK، در حالی که راب قرار می دهد میکروفون، تا چه GDB است؟ 1583 01:04:19,520 --> 01:04:23,945 هر کس باید در GDB را دیده اند کلاس و نیز در ساعات اداری. 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 >> دانشجو: این یک اشکال زدا است. 1589 01:04:29,540 --> 01:04:30,250 >> داوین: این یک اشکال زدا است. 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 داوین: درست است، بنابراین شما می توانید به راه رفتن از طریق آن را مانند یک سرعت انسان است. 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 >> اجرای اجازه می دهد تا شما را به آن را اجرا کنید. 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 >> دانشجو: [نامفهوم]. 1605 01:04:55,280 --> 01:04:56,190 >> داوین: بله، بسیار جذاب است. 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 >> دانشجو: آیا راهی وجود دارد برای پرش، مانند، عقب از؟ 1618 01:05:18,670 --> 01:05:20,750 داوین: پایان، آره، پایان با تو پرش. 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 آن را چاپ کنید چاپ خواهد شد یک زمان. 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 >> به عنوان مثال، اگر شما در یک حلقه for و شما 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 >> دانشجو: یکی از چیست که در آن شما [نامفهوم]؟ 1634 01:05:49,180 --> 01:05:50,150 1635 01:05:50,150 --> 01:05:50,900 داوین: آن چیست؟ 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 راب: چیزی است که در واقع وجود دارد مانند مردم محلی و یا چیزی. 1640 01:05:57,780 --> 01:05:58,140 من can't-- 1641 01:05:58,140 --> 01:05:59,930 >> داوین: شاید چیزی شبیه به آن، آره. 1642 01:05:59,930 --> 01:06:00,830 >> هنا: در مردم محلی؟ 1643 01:06:00,830 --> 01:06:01,510 >> داوین: که در آن است. 1644 01:06:01,510 --> 01:06:02,134 که یکی است. 1645 01:06:02,134 --> 01:06:03,040 راب: زیبا. 1646 01:06:03,040 --> 01:06:04,030 >> داوین: آره. 1647 01:06:04,030 --> 01:06:06,010 >> دانشجو: چه ادامه انجام دهید؟ 1648 01:06:06,010 --> 01:06:08,010 >> داوین: این 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 >> راب: پس فقط دوست توقف اجرا در نقطه انفصال اول 1656 01:06:25,000 --> 01:06:27,010 به شما ضربه، اگر شما پس از آن آسیب، آن را نگه دارید 1657 01:06:27,010 --> 01:06:28,070 رفتن تا زمانی که نقطه انفصال بعدی است. 1658 01:06:28,070 --> 01:06:30,111 و پس از آن ادامه خواهد داد به به نقطه انفصال بعدی. 1659 01:06:30,111 --> 01:06:31,264 1660 01:06:31,264 --> 01:06:32,680 داوین: هر گونه سؤال دیگر در 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 انجام دهید، تا ساده واقعی است، اما آره. 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 >> راب: بله، تا که جهت آن بود؟ 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 داوین: صبر کنید. 1671 01:06:52,160 --> 01:06:52,270 راب: این مرد؟ 1672 01:06:52,270 --> 01:06:52,936 داوین: این یکی. 1673 01:06:52,936 --> 01:06:54,660 راب: این مرد، آه، من نمی دانستم. 1674 01:06:54,660 --> 01:06:56,940 بنابراین ما روشن نمی شد در چه the-- من نمی 1675 01:06:56,940 --> 01:06:58,680 می دانیم که آن را was-- اما سوال. 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 پس حق در اینجا، نام مستعار ما ایجاد است برای این نوع گره ساختار. 1681 01:07:13,420 --> 01:07:18,070 >> پس اول، نادیده گرفتن این گره در typedef، بنابراین این گره مجعد ساختار 1682 01:07:18,070 --> 01:07:21,060 بند را به مجعد بعدی بند نوع گره ساختار است. 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 بنابراین با این نوع از ساختار بازگشتی، شما نیاز دارید را در این ساختار یک نام، 1686 01:07:29,380 --> 01:07:31,340 و یا دیگری شما می توانید نه می گویند گره ساختار در اینجا. 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 لازم نیست برای گفتن ساختار دانش آموز در داخل ساختار خود را. 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 اما این گره ساختار است همان است که گره ساختار. 1694 01:07:51,567 --> 01:07:54,150 داوین: بنابراین هر زمان که با شما تماس، مانند، گره در تابع اصلی، 1695 01:07:54,150 --> 01:07:55,350 شما به رفتن نیست باید بگویم گره ساختار. 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 به جای داشتن به تماس گره ساختار در کد من، 1699 01:08:01,490 --> 01:08:04,050 من فقط می خواهم به آن را تغییر نام دهید به عنوان گره به آن را آسان تر است. 1700 01:08:04,050 --> 01:08:06,800 >> راب: اگر شما همیشه استفاده از typedef، پس از این 1701 01:08:06,800 --> 01:08:11,240 تنها مکانی که شما قصد داشته است اعلام یک متغیر با ساختار گره 1702 01:08:11,240 --> 01:08:11,740 ستاره، آره. 1703 01:08:11,740 --> 01:08:14,650 1704 01:08:14,650 --> 01:08:20,801 >> داوین: OK، بنابراین قسمت آخر سخت به تدریس است because-- 1705 01:08:20,801 --> 01:08:22,185 1706 01:08:22,185 --> 01:08:22,685 راب: چه؟ 1707 01:08:22,685 --> 01:08:24,098 1708 01:08:24,098 --> 01:08:25,649 >> داوین: از آنجا که آن را به برنامه نویسی بر روی کاغذ. 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 از 80، سال قبل از آن، 20 نفر از 100، 1712 01:08:36,720 --> 01:08:37,939 بنابراین کاملا چند از این. 1713 01:08:37,939 --> 01:08:40,970 بنابراین شما به باید قادر کد تا این توابع با دست. 1714 01:08:40,970 --> 01:08:45,340 >> بنابراین من نمیفهمد که ما ممکن است از طریق به زن و شوهر از آنها را و ببینید که چگونه مردم انجام دهد، 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 اما صدای انفجار، بنابراین قدرت، همچنین مثبت بیش از حد. 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 دانشجو: آره. 1726 01:09:06,350 --> 01:09:06,859 داوین: Atoi؟ 1727 01:09:06,859 --> 01:09:07,800 دانشجو: [نامفهوم]. 1728 01:09:07,800 --> 01:09:09,682 داوین: 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 وجود دارد، گیب می گوید وجود دارد. 1732 01:09:14,550 --> 01:09:16,729 1733 01:09:16,729 --> 01:09:19,580 >> راب: و این افکار عمومی است در این سوالات برنامه نویسی. 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 >> داوین: بله. 1737 01:09:23,080 --> 01:09:25,520 راب: اگر شما می توانید بازگشت نوع صحیح، 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 و یا موارد این گوشه میمیره، یا به خاطر سپردن چک برای تهی، 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 >> داوین: بله، و اگر شما فقط به طور کامل 1745 01:09:38,560 --> 01:09:40,580 متوقف کرد که چگونه به در واقع به کد تبدیل شود. 1746 01:09:40,580 --> 01:09:43,140 اگر شما شبه، که خیلی خوب است بیش از حد. 1747 01:09:43,140 --> 01:09:46,390 پس از آن، مانند آن است که یک سوال شش نقطه است، و شما ارسال شبه درست است، 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 >> راب: این نیاز به شبه درست است، هر چند. 1752 01:09:51,770 --> 01:09:52,270 >> داوین: بله. 1753 01:09:52,270 --> 01:09:55,381 راب: بنابراین ما به طور کلی کمتر برخورد با اشکالات در شبه. 1754 01:09:55,381 --> 01:09:57,130 داوین: OK، بنابراین شما بچه ها می خواستم ببینم atoi. 1755 01:09:57,130 --> 01:09:58,480 1756 01:09:58,480 --> 01:10:02,820 OK، بنابراین فقط really-- پس چه می خواهید انجام دهید 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 >> دانشجو: [نامفهوم]. 1761 01:10:09,480 --> 01:10:11,146 >> داوین: این رفتن به یک رشته، درست است؟ 1762 01:10:11,146 --> 01:10:13,160 بنابراین اگر شما داده شد string-- اجازه دهید say-- 1763 01:10:13,160 --> 01:10:15,228 >> راب: باید بکشد تا یک ویرایشگر؟ 1764 01:10:15,228 --> 01:10:16,200 من می توانید بکشید up-- 1765 01:10:16,200 --> 01:10:16,800 >> داوین: آه، شما می خواهید این کار را انجام on-- 1766 01:10:16,800 --> 01:10:17,420 >> راب: آیا هیئت مدیره شما ترجیح می دهید؟ 1767 01:10:17,420 --> 01:10:18,800 >> داوین: چه می خواهید انجام دهید؟ 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 >> راب: آیا آن را با دست. 1771 01:10:22,180 --> 01:10:22,805 >> داوین: [می خندد] 1772 01:10:22,805 --> 01:10:23,950 راب: آیا آن را با دست. 1773 01:10:23,950 --> 01:10:25,469 >> داوین: 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 >> دانشجو: متوسط. 1777 01:10:29,452 --> 01:10:31,076 >> داوین: این رفتن برای بازگشت متوسط، درست است؟ 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 >> راب: شما می توانید آن را پایین بکشد و سپس فشار تا بر روی آن. 1781 01:10:36,596 --> 01:10:38,500 1782 01:10:38,500 --> 01:10:40,385 >> داوین: آره. 1783 01:10:40,385 --> 01:10:43,880 [می خندد] تغییر بازی. 1784 01:10:43,880 --> 01:10:50,950 OK، پس از آن خواهد بود atoi متوسط، و آنچه در آن رفتن به؟ 1785 01:10:50,950 --> 01:10:52,180 1786 01:10:52,180 --> 01:10:57,780 ستاره کاراکتر، به طوری که فقط یک رشته، ستاره ها، که می خواهم. 1787 01:10:57,780 --> 01:10:59,240 >> راب: ستاره زیبا و خوب است. 1788 01:10:59,240 --> 01:11:02,582 1789 01:11:02,582 --> 01:11:04,040 داوین: این ممکن است وجود داشته باشد، OK. 1790 01:11:04,040 --> 01:11:04,540 راب: آره. 1791 01:11:04,540 --> 01:11:06,670 داوین: OK، بنابراین اول چیزی که شما می خواهید به do-- من 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 چند بار می خواهیم به تکرار در آن حلقه؟ 1800 01:11:26,464 --> 01:11:27,130 دانشجو: Sterln؟ 1801 01:11:27,130 --> 01:11:27,963 داوین: Sterln، آره. 1802 01:11:27,963 --> 01:11:29,350 1803 01:11:29,350 --> 01:11:41,294 بنابراین اجازه دهید می گویند طول اعضای هیات برابر sterln است. 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 مانند، چرا آن را بهتر به تماس این تابع خارج از حلقه؟ 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 شما فقط می توانید [نامفهوم]. 1812 01:11:59,400 --> 01:12:01,560 >> داوین: دقیقا، بنابراین آره، دقیقا همان چیزی است که او گفت. 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 >> راب: این گفت، در هر یک از این مشکلات، 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 >> داوین: بله. 1825 01:12:29,302 --> 01:12:31,260 OK، بنابراین پس از آن من قصد دارم به اعلام برخی از متغیر. 1826 01:12:31,260 --> 01:12:33,900 این فقط به تماس بین المللی جمع. 1827 01:12:33,900 --> 01:12:37,031 و من قصد دارم به این مجموعه برابر با صفر، مانند آن. 1828 01:12:37,031 --> 01:12:38,780 و این فقط رفتن به یک حفره یا سوراخ. 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 >> بنابراین اجازه می دهد که ما برای حلقه. 1836 01:12:49,510 --> 01:13:06,520 بنابراین چهار نوع int I برابر با 0 W، در حالی که من کمتر از طول به علاوه من اضافه شده است. 1837 01:13:06,520 --> 01:13:07,150 و now-- 1838 01:13:07,150 --> 01:13:10,920 1839 01:13:10,920 --> 01:13:11,420 راب: خوب. 1840 01:13:11,420 --> 01:13:14,030 داوین: 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 بنابراین ما در حال انجام برای گفتن مجموع equals-- اجازه دهید من این مبلغ over-- لیز خوردن 1846 01:13:35,860 --> 01:13:50,010 برابر است با حاصلضرب مجموع 10 plus-- ما رفتن به بازدید کنندگان من منهای یک 1847 01:13:50,010 --> 01:13:54,787 نقل قول نقل قول 0 یک انجام می شود، مانند آن. 1848 01:13:54,787 --> 01:13:55,620 راب: بسیار بصری. 1849 01:13:55,620 --> 01:13:56,980 1850 01:13:56,980 --> 01:13:57,880 >> داوین: معادن سنگ آن. 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 خوب، پس این است که به وضوح بالا رفتن. 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 من قصد دارم to-- 1861 01:14:18,340 --> 01:14:20,506 >> راب: من قصد دارم به نوشتن فرمول فقط در اینجا ببینید. 1862 01:14:20,506 --> 01:14:23,140 داوین: OK، راب رفتن به آن را انجام دهید در کامپیوتر است که سرگرم کننده است. 1863 01:14:23,140 --> 01:14:26,889 1864 01:14:26,889 --> 01:14:27,514 راب: اوه خدای من. 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 داوین: پایه های. 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 داوین: آره، مطمئن شوید. 1872 01:14:45,348 --> 01:14:46,223 دانشجو: [نامفهوم]؟ 1873 01:14:46,223 --> 01:14:52,529 1874 01:14:52,529 --> 01:14:54,570 داوین: OK، پس از آن در واقع، می خواهم، فقط به طور کلی، 1875 01:14:54,570 --> 01:14:56,710 اگر شما به قرار داده، مانند، در این نوع int اعلان 1876 01:14:56,710 --> 01:14:59,770 من برابر با طول 0 کاما برابر sterln، that-- 1877 01:14:59,770 --> 01:15:01,200 >> دانشجو: [نامفهوم]. 1878 01:15:01,200 --> 01:15:03,585 >> داوین: این خوب است، زیرا that-- 1879 01:15:03,585 --> 01:15:05,543 دانشجو: چرا شما حتی نیاز به استفاده از طول؟ 1880 01:15:05,543 --> 01:15:08,620 چرا که نه می تواند ما فقط [نامفهوم] sterln S، مانند کل زمان [نامفهوم]؟ 1881 01:15:08,620 --> 01:15:09,460 >> داوین: شما به معنای حق در اینجا؟ 1882 01:15:09,460 --> 01:15:10,001 >> دانشجو: بله. 1883 01:15:10,001 --> 01:15:12,630 داوین: از آنجا که هر زمان این حلقه for اجرا می شود، 1884 01:15:12,630 --> 01:15:14,295 آن را برای ارزیابی این وضعیت. 1885 01:15:14,295 --> 01:15:14,920 دانشجو: راست. 1886 01:15:14,920 --> 01:15:16,836 داوین: و اگر sterln وجود دارد، سپس آن را 1887 01:15:16,836 --> 01:15:19,510 رفتن به واقع تماس بگیرید که تابع هر بار تنها. 1888 01:15:19,510 --> 01:15:21,090 بنابراین به جای فقط مقایسه آن با متوسط، 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 آره، بنابراین آن را فقط، آره. 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 چه does-- این مثل این است. 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 بنابراین شما در حال رفتن به در رفتن دهدهی از پایین [نامفهوم]. 1906 01:15:51,786 --> 01:15:52,410 داوین: دقیقا. 1907 01:15:52,410 --> 01:15:55,063 دانشجو: پس هر یک شما باید به ضرب 1908 01:15:55,063 --> 01:15:59,490 آنچه شما به عنوان ارزش های بین المللی شاهد زمان شما را وادار به حرکت می کند که بیش از یک. 1909 01:15:59,490 --> 01:16:01,590 >> داوین: کامل، کامل، به عنوان مثال، اجازه دهید 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 پس از آن ما در ما حلقه پرش. 1921 01:16:21,600 --> 01:16:24,187 OK، تکرار اول این، چیزی است که آن را برای رفتن به؟ 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 دانشجو: [نامفهوم]. 1928 01:16:31,720 --> 01:16:33,110 1929 01:16:33,110 --> 01:16:37,430 >> داوین: این رفتن به نوبه خود که شخصیت به یک عدد صحیح، درست است؟ 1930 01:16:37,430 --> 01:16:42,160 این نوع مانند با شما مشکل set-- این 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 و شما می خواهید بدانید، OK، چه رقمی است؟ 1935 01:16:50,965 --> 01:16:53,540 1936 01:16:53,540 --> 01:16:54,910 بله، شما می توانید، آره. 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 >> و که در آن برخی از مردم دریافت .ی، آنها هستید 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 >> راب: هیچ دلیلی وجود ندارد تا کنون قرار دادن این در بازی ورق. 1944 01:17:12,060 --> 01:17:14,226 >> داوین: قطعا انجام نمی هدر فضایی خود را با این. 1945 01:17:14,226 --> 01:17:18,090 شما می توانید فقط به جای literally-- گفتن 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 >> راب: شما تقریبا می تواند فکر می کنم از آن به عنوان if-- خدا، من باید من، 1949 01:17:34,106 --> 01:17:37,490 oops-- شما تقریبا می تواند از آن فکر می کنم به عنوان اگر ما چیزی شبیه به آن هش 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 >> داوین: بله. 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 و کسانی که هفت integers-- خوب، آن 1959 01:18:00,420 --> 01:18:04,030 هفت فضای به دور از هر دیگر در نمودار ASCII و یا هر چیز دیگری. 1960 01:18:04,030 --> 01:18:06,770 به طوری که به بازگشت اعضای هیات 7. 1961 01:18:06,770 --> 01:18:08,720 بنابراین در حال حاضر، مجموع برابر با 7. 1962 01:18:08,720 --> 01:18:10,830 >> OK، خوب، اجازه دهید پرش به این حلقه دوباره. 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 هر بار در حلقه for، و سپس در صورت لزوم اضافه کنید. 1974 01:18:35,525 --> 01:18:37,350 1975 01:18:37,350 --> 01:18:37,865 >> در پشت؟ 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 >> راب: بنابراین تا آنجا که به چک کردن می رود برای این برنامه، 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 شما ممکن است مانند، فقط به امن، شما احتمالا باید بررسی کنید با سلام، بازدید کنندگان تهی است؟ 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 >> داوین و چرا شما می خواهید به مجددا اگر S برابر پوچ؟ 1987 01:19:02,786 --> 01:19:03,660 دانشجو: [نامفهوم]. 1988 01:19:03,660 --> 01:19:04,880 داوین: از آنجا که از ستاره کاراکتر. 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 بازدید کنندگان برابر تهی، به دلیل آن می تواند یک اشاره گر به تهی. 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 و شما doing-- لیز خوردن پایین. 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 >> راب: با عرض پوزش، این آن است. 1999 01:19:23,860 --> 01:19:25,860 >> داوین: و به این ترتیب، مانند، اگر آن تهی است، و سپس شما 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 داوین: شما در حال رفتن به راه گسل، درست است، چون تو 2003 01:19:31,250 --> 01:19:32,616 تلاش برای شاخص به تهی. 2004 01:19:32,616 --> 01:19:35,240 بنابراین شما به سعی کنید به شاخص در حافظه که متعلق به شما نیست. 2005 01:19:35,240 --> 01:19:39,550 پس این، اگر این تهی است، و شما این کار، شما چرخه. 2006 01:19:39,550 --> 01:19:43,656 >> راب: من هم فکر می کنم در آزمون که در آن ما این سوال پرسیده می شود، ما به شما بگویم 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 با سلام، اولین شخصیت است یک خط تیره، که در این صورت، 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 داوین: بله. 2015 01:19:59,310 --> 01:20:02,530 بنابراین من مطمئن هستم که برخی از مردم ممکن have-- هستم اگر شما آغاز شده به دنبال در امتحانات قدیمی، 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، شما را به حال انجام این کار را بررسی کنید و تهی، بازگشت 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 و اگر شما این کار را نکرد، که اشاره کردن در مسابقه بود. 2022 01:20:14,230 --> 01:20:16,750 2023 01:20:16,750 --> 01:20:19,500 پس به هر حال، آیا همه احساس OK با 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 راب: اوه بله، من فکر می کنم ما نیز به شما بگویم شما 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 داوین: آره. 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 >> داوین: مطمئنا، بنابراین نقل از دو برابر، بسیار به سادگی، است به نقل از دو رشته می باشد. 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 من پیدا کند نمودار، زیرا این رشته، آره. 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 آیا شما می خواهید ما را به نوشتن با کوفتگی زخم صفر [نامفهوم]؟ 2045 01:21:08,165 --> 01:21:11,041 2046 01:21:11,041 --> 01:21:11,540 داوین: شماره 2047 01:21:11,540 --> 01:21:13,800 سوال باید شما بود قرار دادن یک علامت ممیز از طریق صفر 2048 01:21:13,800 --> 01:21:14,890 نشان می دهد اگر آنها صفر هستید؟ 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 آیا کسی می خواهید to-- بنابراین من فکر می کنم ما کمی در طول زمان اجرا شود. 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 >> داوین: 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 دانشجو: [نامفهوم]. 2065 01:21:44,453 --> 01:21:46,660 2066 01:21:46,660 --> 01:21:47,161 >> داوین: چه؟ 2067 01:21:47,161 --> 01:21:49,493 راب: من از دیدن اگر آن را به نوع از مشاهده از اینجا. 2068 01:21:49,493 --> 01:21:50,040 داوین: آیا آن؟ 2069 01:21:50,040 --> 01:21:52,500 راب: من فکر نمی کنم آن را going-- من فکر می کنم آن را به اجرا کردن به سمت راست. 2070 01:21:52,500 --> 01:21:53,791 داوین: OK، بنابراین من این کار را انجام. 2071 01:21:53,791 --> 01:21:56,250 و سپس شما فقط آن را بر روی صفحه نمایش. 2072 01:21:56,250 --> 01:21:57,150 >> راب: خوب. 2073 01:21:57,150 --> 01:21:58,190 >> داوین: شما می خواهید به کاتب من؟ 2074 01:21:58,190 --> 01:21:58,600 >> راب: آره. 2075 01:21:58,600 --> 01:21:59,100 >> داوین: خوب. 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 >> دانشجو: آره. 2079 01:22:04,188 --> 01:22:05,162 >> داوین: که خیلی سخت است. 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، اگر من به درستی به یاد داشته باشید، در مسابقه 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 است که به دو numbers-- 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 متوسط، درست است؟ 2093 01:22:44,650 --> 01:22:46,400 2094 01:22:46,400 --> 01:22:49,260 مانند این، و سپس آن را رفتن به دو وقفه. 2095 01:22:49,260 --> 01:22:56,301 پس از آن رفتن را به اعضای هیات و 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 داوین: 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 بنابراین شما می توانید می گویند اعضای هیات تصادفی، و ما فقط می گویند آن برابر با 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 >> داوین: آره، بین 0 و 1. 2114 01:23:47,870 --> 01:23:48,890 بنابراین آن را به be-- 2115 01:23:48,890 --> 01:23:51,070 >> راب: و این is-- من فکر می کنم ما را به شما بگویم این. 2116 01:23:51,070 --> 01:23:52,670 دوست دارید، شما می توانید 48 استفاده drand. 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 شناور بین 0 و 1 را برمی گرداند. 2120 01:23:58,790 --> 01:24:00,830 >> داوین: بله، بله، من هستم کاملا مطمئن در آزمون 2121 01:24:00,830 --> 01:24:03,860 آن را به شما می گوید احتمالا مایل به استفاده از drand، آره. 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-- صبر کنید، من فکر می کنم آن را مانند این است، متاسفم. 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 >> بنابراین B ​​منهای یک. 2128 01:24:22,240 --> 01:24:23,310 2129 01:24:23,310 --> 01:24:24,490 پس چرا ب منهای یک؟ 2130 01:24:24,490 --> 01:24:26,110 2131 01:24:26,110 --> 01:24:30,490 بنابراین اجازه دهید می گویند drand به شما می دهد به عقب OK int--، من فقط انجام بقیه، 2132 01:24:30,490 --> 01:24:33,380 بنابراین به علاوه یک. 2133 01:24:33,380 --> 01:24:36,130 پس چه does-- Y B منهای یک است. 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 >> داوین: 1، درست است؟ 2139 01:24:44,430 --> 01:24:47,880 بنابراین اگر این است 1، و شما ضرب آن را با B منهای یک، 2140 01:24:47,880 --> 01:24:50,110 خب، این فقط تفاوت بین منهای A. 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 >> داوین: بنابراین اگر این حداکثر است ارزش آن احتمالا می تواند باشد، 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 بار ب منهای در حال رفتن به کمتر 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 اما آن را به کمتر از B. 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 و رند، که عدد تصادفی است رفتن به جایی در میان 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 >> راب: فقط به آن را در تعداد بتن، بنابراین 2169 01:25:52,990 --> 01:25:55,450 اجازه دهید بگویم که ما می خواهیم به انتخاب عدد تصادفی بین 7 و 10. 2170 01:25:55,450 --> 01:25:56,960 بنابراین B ​​منهای یک محدوده ما است. 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 بنابراین B ​​منهای یک محدوده ما است. 2179 01:26:21,310 --> 01:26:25,770 آن تا به شیفت اعداد که ما در آن محدوده می خواهید. 2180 01:26:25,770 --> 01:26:30,540 بنابراین بین 7 و 10، و پس از آن ما می تواند بازگشت چه ما تا پایان با. 2181 01:26:30,540 --> 01:26:32,684 >> داوین: آره، خوب. 2182 01:26:32,684 --> 01:26:34,470 >> راب: با تشکر از شما. 2183 01:26:34,470 --> 01:26:35,628 >> داوین: آره، چه خبر؟ 2184 01:26:35,628 --> 01:26:39,746 >> دانشجو: آیا ما آن را اجرا کنید تا از هر نوع خطا زمانی که ASCII we're-- اگر drand است 2185 01:26:39,746 --> 01:26:40,996 بازگشت شناور [نامفهوم]. 2186 01:26:40,996 --> 01:26:42,470 2187 01:26:42,470 --> 01:26:45,360 >> راب: بنابراین درست مانند راب گفت، به دلیل تصادفی است بین المللی نیست، 2188 01:26:45,360 --> 01:26:47,080 بنابراین drand خواهد شد شناور. 2189 01:26:47,080 --> 01:26:48,470 بنابراین و سپس آن را تکثیر کرد. 2190 01:26:48,470 --> 01:26:50,507 و شما ممکن است برخی از دریافت نوع اعداد شناور. 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 داوین: آره. 2194 01:26:53,019 --> 01:26:56,060 راب: و اگر کامپایلر بودند برای هشدار دادن به شما در مورد، مانند، از دست دادن دقت، 2195 01:26:56,060 --> 01:26:58,986 فقط پرتاب int در وجود دارد، و سپس آن را خوب است. 2196 01:26:58,986 --> 01:27:00,398 2197 01:27:00,398 --> 01:27:00,898 داوین: بله؟ 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 و یا یک [نامفهوم]؟ 2201 01:27:06,156 --> 01:27:08,080 2202 01:27:08,080 --> 01:27:10,980 >> راب: بنابراین من در واقع is-- wondering-- RandomInt قرار 2203 01:27:10,980 --> 01:27:14,362 به تعدادی از به کمتر از ب؟ 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 داوین: من را فراموش کرده ام. 2207 01:27:19,120 --> 01:27:19,880 در set-- مشکل 2208 01:27:19,880 --> 01:27:20,570 >> راب: من فکر می کنم 7، 8، 9. 2209 01:27:20,570 --> 01:27:22,785 >> داوین: این به طور خاص می گوید: یکی از فراگیر و یکی از منحصر به فرد. 2210 01:27:22,785 --> 01:27:23,110 >> راب: آره. 2211 01:27:23,110 --> 01:27:23,670 >> داوین: اما من don't-- من not-- هستم 2212 01:27:23,670 --> 01:27:25,878 >> راب: بنابراین من فکر می کنم این است نمی شامل، که در این صورت، 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 داوین: بله؟ 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 >> داوین: 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 داوین: آه صبر کنید، خیلی متاسفم. 2226 01:27:52,759 --> 01:27:54,620 سوال این بود که چگونه آیا شما یک آرایه را برگرداند. 2227 01:27:54,620 --> 01:27:56,170 >> راب: هر چند که نمی توانست توان یک آرایه را اعلام کرد 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 >> داوین: بله. 2232 01:28:02,109 --> 01:28:03,433 2233 01:28:03,433 --> 01:28:04,933 راب: چگونه شما در اطراف دامنه محلی دریافت کنید. 2234 01:28:04,933 --> 01:28:09,670 2235 01:28:09,670 --> 01:28:11,550 >> داوین: اما شما می توانید فقط بازگشت name-- آن 2236 01:28:11,550 --> 01:28:17,890 >> دانشجو: [نامفهوم] آن را نمی ارزش، به عنوان مثال، دو عدد، به طوری که 2237 01:28:17,890 --> 01:28:18,390 [نامفهوم]. 2238 01:28:18,390 --> 01:28:19,590 >> داوین: شما نمی توانید به چندین شماره گشت. 2239 01:28:19,590 --> 01:28:20,850 شما نمی توانید، مانند، return-- 2240 01:28:20,850 --> 01:28:23,630 >> دانشجو: من در مورد بازگشت صحبت آرایه و یا چیزی شبیه به آن. 2241 01:28:23,630 --> 01:28:26,050 >> داوین: آره، بنابراین سوال این است که می تواند چندین مقدار I بازگشت. 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 و سپس تابع انجام شده است، و مانند راب گفت، در پشته است. 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 داوین: خوب. 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 >> داوین: نه، نه، من اینطور فکر نمی کنم. 2270 01:29:20,320 --> 01:29:23,040 >> راب: آره، بنابراین شما باید برای گفتن هر چیزی در مورد srand؟ 2271 01:29:23,040 --> 01:29:26,900 به طور پیش فرض از شما هرگز گفت srand در همه این است که فقط srand از تهی. 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 داوین: بله؟ 2276 01:29:35,675 --> 01:29:40,950 دانشجو: آیا شما [نامفهوم] با شماره؟ 2277 01:29:40,950 --> 01:29:42,570 داوین: بله، شما می توانید. 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 >> داوین: منظور من، برای مسابقه شما می توانید. 2282 01:29:53,830 --> 01:29:54,830 [می خندد] 2283 01:29:54,830 --> 01:29:55,780 >> راب: میلی متر، هیچ. 2284 01:29:55,780 --> 01:29:56,780 داوین: بله، بله شما می توانید. 2285 01:29:56,780 --> 01:30:00,197 اگر آنها به شما بپرسید که چگونه بزرگ بین المللی است، شما نمی توانید، مانند، چهار یا هشت. 2286 01:30:00,197 --> 01:30:02,030 راب: آه، پس اگر سوال این است که به طور خاص، 2287 01:30:02,030 --> 01:30:04,857 مانند، اگر آن را یک مشکل برنامه نویسی، شما باید اندازه بین المللی می گویند. 2288 01:30:04,857 --> 01:30:06,690 و یا اگر آن را به یک جدول است، آن را می گوید که چگونه بسیاری از بایت، 2289 01:30:06,690 --> 01:30:08,808 شما باید در اندازه وقفه پر نیست. 2290 01:30:08,808 --> 01:30:11,278 >> دانش آموزان: [می خندد] 2291 01:30:11,278 --> 01:30:18,210 2292 01:30:18,210 --> 01:30:20,580 >> داوین: درست است، بنابراین به همین دلیل است اندازه اعضای هیات مهم در اینجا؟ 2293 01:30:20,580 --> 01:30:23,085 بنابراین مانند، اگر ما قصد داریم به 32 بیتی پردازنده و یا چیزی شبیه به آن، 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 بنابراین اگر شما فقط this-- کد سخت چهار، پس از آن در برخی از ماشین آلات، آن کار خواهد کرد. 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 راب: درست است. 2303 01:30:39,210 --> 01:30:39,790 داوین: آره؟ 2304 01:30:39,790 --> 01:30:43,192 دانشجو: پس چون ما در حال اعلام [نامفهوم] در داخل یک تابع، 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 داوین: شما می توانید از آن استفاده کنید خارج از آن تابع. 2308 01:30:48,740 --> 01:30:49,890 بنابراین او را به صورت رایگان درخواست. 2309 01:30:49,890 --> 01:30:51,700 >> دانشجو: از دست دادن آهنگ که در آن [نامفهوم]. 2310 01:30:51,700 --> 01:30:54,720 >> راب: اوه، آزاد کند happen-- نمی که بخشی از سحر و جادو از 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 ساعت بعد که ما در نهایت با تلفن رایگان. 2315 01:31:08,670 --> 01:31:11,764 >> داوین: بنابراین برای مثال، مانند، یک زن و شوهر هفته دیگر، هنگامی که شما در نهایت 2316 01:31:11,764 --> 01:31:13,680 انجام کسیکه لغت را هجی فرهنگ لغت خود 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 متغیر [نامفهوم] خارج؟ 2327 01:31:36,197 --> 01:31:37,384 این است که آنچه شما می گویید؟ 2328 01:31:37,384 --> 01:31:38,300 داوین: صبر کنید، می گویند که؟ 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 >> داوین: آه، او پرسید: مانند، متغیر، like-- 2334 01:31:47,880 --> 01:31:51,300 2335 01:31:51,300 --> 01:31:55,510 >> راب: پس شما هنوز هم نیاز به نوعی مرجع 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 دانشجو: اوه. 2339 01:31:59,040 --> 01:32:01,920 راب: اگر ما نمی گرداند 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 >> داوین: پس چون، اجازه دهید به شما می گویند این، مانند، حق در اینجا. 2344 01:32:10,010 --> 01:32:10,510 راب: نه 2345 01:32:10,510 --> 01:32:13,430 داوین: در تابع اصلی من، من می توانم فقط به این X و، مانند، OK، 2346 01:32:13,430 --> 01:32:14,645 در این تابع، من این را انجام داد. 2347 01:32:14,645 --> 01:32:14,960 >> راب: درست است. 2348 01:32:14,960 --> 01:32:17,790 >> داوین: من می خواهم به تماس X در، مانند، اصلی و یا چیزی شبیه به آن. 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 >> دانشجو: آیا عملکرد بالا بودن چک برای [نامفهوم]؟ 2358 01:32:31,213 --> 01:32:33,270 2359 01:32:33,270 --> 01:32:35,005 >> داوین: چرا من نیاز به انجام این کار؟ 2360 01:32:35,005 --> 01:32:35,880 دانشجو: [نامفهوم]. 2361 01:32:35,880 --> 01:32:37,755 داوین: از آنجا که شما هستید هر چیزی mallocing نیست. 2362 01:32:37,755 --> 01:32:39,640 پس از آن به not-- آره، آن را رشته ها را دوست ندارد. 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 داوین: آره. 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 راب: بله؟ 2370 01:32:48,970 --> 01:32:50,386 دانشجو: اما وقتی که شما [نامفهوم]؟ 2371 01:32:50,386 --> 01:32:55,050 2372 01:32:55,050 --> 01:32:58,690 >> راب: بنابراین به منظور آزاد حافظه، ما در اینجا می گویند. 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 >> داوین: هر گونه سؤال و زمان آخرین؟ 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 چرا [نامفهوم]؟ 2386 01:33:26,630 --> 01:33:27,774 >> داوین: برای اینجا؟ 2387 01:33:27,774 --> 01:33:29,109 >> دانشجو: آره، مثل درست بعد. 2388 01:33:29,109 --> 01:33:30,900 داوین: احتمالا شما نمی خواهم در اینجا به صورت رایگان. 2389 01:33:30,900 --> 01:33:31,630 راب: شما احتمالا نیست. 2390 01:33:31,630 --> 01:33:33,060 داوین: آره، که این امر هیچ چیز را انجام دهد. 2391 01:33:33,060 --> 01:33:35,220 این می، مانند، ایجاد حافظه، انجام مسائل به آن، 2392 01:33:35,220 --> 01:33:37,390 و سپس بلافاصله را فراموش کرده ام در مورد آن، آره. 2393 01:33:37,390 --> 01:33:39,850 >> راب: اما ما ممکن است، مانند، در اینجا به چند دلیل. 2394 01:33:39,850 --> 01:33:43,902 ما ممکن است ستاره بین المللی می گویند 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 دانشجو: [نامفهوم]. 2399 01:33:51,501 --> 01:33:57,839 2400 01:33:57,839 --> 01:33:59,005 داوین: باید به پایین حرکت؟ 2401 01:33:59,005 --> 01:34:00,445 با تشکر. 2402 01:34:00,445 --> 01:34:00,945 راب: خوب. 2403 01:34:00,945 --> 01:34:02,400 2404 01:34:02,400 --> 01:34:03,646 >> داوین: OK، که این. 2405 01:34:03,646 --> 01:34:04,520 راب: خوب، خوب است. 2406 01:34:04,520 --> 01:34:05,070 موفق باشید. 2407 01:34:05,070 --> 01:34:06,800 >> داوین: اگر شما سؤالی دارید، به ما ایمیل. 2408 01:34:06,800 --> 01:34:08,670 موفق باشید. 2409 01:34:08,670 --> 01:34:10,283