1 00:00:00,000 --> 00:00:03,944 >> [موسیقی] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 دیوید مالان: بسیار خوب. 4 00:00:11,690 --> 00:00:14,674 این CS50 است، و این در پایان هفته 2 است. 5 00:00:14,674 --> 00:00:16,840 خیلی معذرت من نمی تواند من وجود دارد با شما در همه امروز، 6 00:00:16,840 --> 00:00:18,300 اما شما را در دست بسیار خوب است. 7 00:00:18,300 --> 00:00:21,710 من اجازه می دهد به شما معرفی خود راب باودن CS50 است. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB باودن: و البته، پس از آن ما را به تمسخر این واقعیت 10 00:00:31,730 --> 00:00:36,820 که او به ما عمودی ویدئو و این نشان می دهد. 11 00:00:36,820 --> 00:00:38,320 >> [پخش ویدئو] 12 00:00:38,320 --> 00:00:39,820 >> [موسیقی] 13 00:00:39,820 --> 00:00:42,350 >> [صدای پای] 14 00:00:42,350 --> 00:00:44,730 >> فیلم -این نیست باید به نگاه در این راه. 15 00:00:44,730 --> 00:00:46,570 این می تواند مانع شده است. 16 00:00:46,570 --> 00:00:49,070 نه گفتن به فیلم های عمودی. 17 00:00:49,070 --> 00:00:53,310 >> فیلم عمودی افتد زمانی که شما دوربین خود را به راه اشتباه را نگه دارید. 18 00:00:53,310 --> 00:00:55,880 ویدئو های خود را به پایان خواهد رسید تا به دنبال مانند تلخه. 19 00:00:55,880 --> 00:00:57,650 >> - [GRUNT] 20 00:00:57,650 --> 00:01:02,240 >> وجود دارد بیشتر و بیشتر مردم معتاد هستند به ساخت فیلم های عمودی هر روز. 21 00:01:02,240 --> 00:01:06,240 آن را ترک نمی یا هیچ چیز، اما هنوز هم واقعا بد است. 22 00:01:06,240 --> 00:01:10,410 دو نوع مختلف وجود دارد افرادی که با VVS مبتلا می شوند. 23 00:01:10,410 --> 00:01:14,160 گروه اول رفتار فیلم ها آنها مانند تصاویر شلیک کنید. 24 00:01:14,160 --> 00:01:15,850 آنها هیچ آسیب نیست. 25 00:01:15,850 --> 00:01:19,180 آنها فقط نمی دانند که در حالی که شما می توانید یک عکس به نوبه خود، 26 00:01:19,180 --> 00:01:20,880 شما واقعا نمی توانید یک ویدیو تبدیل شود. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [برای تلفن های موبایل میمون] 29 00:01:23,460 --> 00:01:27,540 >> بانک گروه دیگر مردم است که یک [BLEEP] نمی دهد. 30 00:01:27,540 --> 00:01:31,090 >> سندرم ویدئو عمودی خطرناک است. 31 00:01:31,090 --> 00:01:34,120 تصاویر متحرک دارند همیشه افقی بوده است. 32 00:01:34,120 --> 00:01:35,990 تلویزیون افقی می باشد. 33 00:01:35,990 --> 00:01:38,380 صفحه نمایش کامپیوتر افقی می باشد. 34 00:01:38,380 --> 00:01:41,580 چشم مردم افقی می باشد. 35 00:01:41,580 --> 00:01:45,170 ما به ساخته شده است تماشای فیلم در حالت عمودی. 36 00:01:45,170 --> 00:01:47,600 >> -I عاشق فیلم های عمودی. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody در مورد شما مراقبت. 38 00:01:50,410 --> 00:01:53,340 >> اگر این مشکل را بدون نظارت، شما بیش از حد 39 00:01:53,340 --> 00:01:57,650 آغاز خواهد شد نشان دادن چهار فیلم در یک بار فقط برای صرفه جویی در پهنای باند. 40 00:01:57,650 --> 00:02:02,400 >> فیلم های عمودی را -Letterboxed شود به اندازه یک تمبر پستی است. 41 00:02:02,400 --> 00:02:04,920 >> البته آن را همه جا پخش خواهد شد. 42 00:02:04,920 --> 00:02:07,670 صفحه نمایش فیلم دارند همیشه افقی بوده است. 43 00:02:07,670 --> 00:02:11,200 اگر فیلم های عمودی تبدیل پذیرفته شده، سینما 44 00:02:11,200 --> 00:02:13,930 باید قد بلند و لاغر. 45 00:02:13,930 --> 00:02:17,710 >> البته همه سینما می باید به پاره کردن و بازسازی. 46 00:02:17,710 --> 00:02:22,090 و در آن زمان آنها، بازسازی شد میلا Kunis خواهد قدیمی و زشت است. 47 00:02:22,090 --> 00:02:24,342 >> -Birds خواهد به آنها سقوط و می میرند. 48 00:02:24,342 --> 00:02:26,530 >> همه -We'll گرفتن سفت گردن از دنبال کردن. 49 00:02:26,530 --> 00:02:29,800 >> البته هیچ کس نشستن در ردیف جلو هرگز دوباره. 50 00:02:29,800 --> 00:02:37,170 >> جورج لوکاس دوباره آزاد خواهد ستاره جنگ again-- نسخه لاغر. 51 00:02:37,170 --> 00:02:41,860 >> من هرگز واقعا قادر به گفتن داستان که من می خواستم برای گفتن. 52 00:02:41,860 --> 00:02:46,030 این یک شانس بزرگ برای من بود آزمایش با یک تکنولوژی جدید است. 53 00:02:46,030 --> 00:02:48,150 >> -You're حرکت تند و سریع. 54 00:02:48,150 --> 00:02:54,430 >> هر بار که یک دستگاه تلفن همراه است مورد استفاده قرار ضبط ویدئو، وسوسه است. 55 00:02:54,430 --> 00:02:56,370 فقط بگو نه. 56 00:02:56,370 --> 00:03:00,116 نه گفتن به جورج لوکاس. 57 00:03:00,116 --> 00:03:04,062 نه گفتن به قدیمی میلا Kunis. 58 00:03:04,062 --> 00:03:06,600 نه گفتن به فیلم های عمودی. 59 00:03:06,600 --> 00:03:12,511 >> البته اگر کسی آن را انجام، می گویند، "شما در حال عکسبرداری که ساختگی نیست»! 60 00:03:12,511 --> 00:03:15,433 >> [موسیقی] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [END پخش] 63 00:03:19,830 --> 00:03:23,702 >> [تشویق حضار] 64 00:03:23,702 --> 00:03:27,598 >> [AUDIO OUT] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 ROB باودن: --Simple شکل رمزنگاری، 67 00:03:45,790 --> 00:03:49,500 که در واقع رمزنگاری و رمزگشایی از پیام های مخفی. 68 00:03:49,500 --> 00:03:52,590 بنابراین در اینجا ما یک اسباب بازی بسیار ساده است. 69 00:03:52,590 --> 00:03:56,900 و این ایده حلقه بیرونی است چرخش در اطراف حلقه درونی. 70 00:03:56,900 --> 00:04:01,610 و شما می توانید ببینید، شاید اگر من زوم در، that-- آن را سخت برای دیدن. 71 00:04:01,610 --> 00:04:05,090 اما، مانند، تعداد 1-- به خوبی، که نقل مکان کرد. 72 00:04:05,090 --> 00:04:09,120 >> تعداد 1 نقشه به نامه X، شماره 2 نقشه به نامه 73 00:04:09,120 --> 00:04:11,630 J. فوق العاده دشوار است به جست و خیز رو به جلو نیست. 74 00:04:11,630 --> 00:04:16,100 نامه 2 نقشه به J. شماره 3 نقشه ها به D. بنابراین 75 00:04:16,100 --> 00:04:20,140 با این حلقه شما می توانید به کسی یک پیام 1، 2، 3. 76 00:04:20,140 --> 00:04:22,624 به هر دلیلی شما می خواهم به آنها XJD است. 77 00:04:22,624 --> 00:04:24,540 اما شما می توانید آنها را برخی از پیام از اعداد، 78 00:04:24,540 --> 00:04:28,460 و تا زمانی که آنها را به این حلقه، آنها می تواند رمزگشایی آنچه شما در تلاش برای گفتن دارد. 79 00:04:28,460 --> 00:04:32,510 >> بنابراین شما ممکن است دیده اند، این مثال خاص از رمزنگاری 80 00:04:32,510 --> 00:04:36,640 قبل از اینکه اگر در اطراف فصل کریسمس شما یک داستان کریسمس تماشا کرده ام. 81 00:04:36,640 --> 00:04:38,520 اگر شما دیده ام هرگز قبل از آن، پس از آن فقط 82 00:04:38,520 --> 00:04:41,060 به نوبه خود در TBS در معنای واقعی کلمه هر زمان در شب کریسمس، 83 00:04:41,060 --> 00:04:44,510 زیرا آنها فقط آن را نشان می دهد پشت به پشت به پشت به پشت به پشت تمام روز. 84 00:04:44,510 --> 00:04:46,744 و ویدیو مربوط به این است. 85 00:04:46,744 --> 00:04:47,410 [پخش ویدئو] 86 00:04:47,410 --> 00:04:50,020 -Be آن را به همه و گوناگون شناخته شده که رالف پارکر وسیله 87 00:04:50,020 --> 00:04:52,850 منصوب عضو کوچک یتیم آنی راز دایره 88 00:04:52,850 --> 00:04:56,490 است و به تمام افتخارات عنوان و مزایای رخ نمیدهد. 89 00:04:56,490 --> 00:04:59,010 امضا کوچک یتیم آنی. 90 00:04:59,010 --> 00:05:03,120 Countersigned پیر آندره در جوهر! 91 00:05:03,120 --> 00:05:07,460 برتری ها و مزایای در حال حاضر در سن نه! 92 00:05:07,460 --> 00:05:12,530 >> [فریاد از رادیو] 93 00:05:12,530 --> 00:05:13,030 -بجنب. 94 00:05:13,030 --> 00:05:14,000 بیایید در با آن است. 95 00:05:14,000 --> 00:05:18,274 من همه که موسیقی جاز نیاز در مورد قاچاقچیان و دزدان دریایی. 96 00:05:18,274 --> 00:05:20,440 فردا شب، گوش دادن با ماجراجویی پایانی 97 00:05:20,440 --> 00:05:22,540 از سیاه دزدان دریایی کشتی. 98 00:05:22,540 --> 00:05:25,460 در حال حاضر، از آن زمان برای پیام مخفی آنی 99 00:05:25,460 --> 00:05:28,620 برای شما اعضای راز دایره. 100 00:05:28,620 --> 00:05:32,370 به یاد داشته باشید بچه ها، تنها اعضای از راز دایره آنی 101 00:05:32,370 --> 00:05:34,880 می توانید پیام های مخفی آنی رمزگشایی. 102 00:05:34,880 --> 00:05:39,100 به یاد داشته باشید، آنی است بسته به شما. 103 00:05:39,100 --> 00:05:41,660 تنظیم پین خود را به B2. 104 00:05:41,660 --> 00:05:43,960 در اینجا این پیام است. 105 00:05:43,960 --> 00:05:44,680 12. 106 00:05:44,680 --> 00:05:45,180 11. 107 00:05:45,180 --> 00:05:45,679 2. 108 00:05:45,679 --> 00:05:48,110 -I در اولین جلسه محرمانه هستم. 109 00:05:48,110 --> 00:05:49,030 >> -25. 110 00:05:49,030 --> 00:05:49,834 14. 111 00:05:49,834 --> 00:05:51,040 11. 112 00:05:51,040 --> 00:05:51,854 18. 113 00:05:51,854 --> 00:05:52,670 16. 114 00:05:52,670 --> 00:05:54,570 >> اوه، پیر در امشب صدای بزرگ است. 115 00:05:54,570 --> 00:05:57,490 من می توانم بگویم که امشب پیام بسیار مهم بود. 116 00:05:57,490 --> 00:05:57,990 -3. 117 00:05:57,990 --> 00:06:00,080 25. 118 00:06:00,080 --> 00:06:01,580 این یک پیام از آنی خود است. 119 00:06:01,580 --> 00:06:02,880 به یاد داشته باشید، به کسی نگو. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> ثانیه پنج بعد، من در تنها هستم اتاق در خانه که در آن یک پسر از نه 122 00:06:11,130 --> 00:06:15,830 می تواند در حفظ حریم خصوصی و رمزگشایی می نشینند. 123 00:06:15,830 --> 00:06:16,620 آها! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 من به آینده رفت. 126 00:06:20,210 --> 00:06:23,300 E. اولین کلمه است "می باشد." 127 00:06:23,300 --> 00:06:25,880 S. بود در حال حاضر آینده آسان تر است. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 که R. 130 00:06:30,528 --> 00:06:31,278 بیا در، Ralphie! 131 00:06:31,278 --> 00:06:31,861 من عاشق رفتن! 132 00:06:31,861 --> 00:06:33,182 -I'll شود پایین، کارشناسی ارشد! 133 00:06:33,182 --> 00:06:36,038 صدای تیز و تند هی. 134 00:06:36,038 --> 00:06:42,840 T. O. "مطمئن باشید که" - مطمئن شوید که به چه چیزی؟ 135 00:06:42,840 --> 00:06:44,770 یتیم کمی چه بود آنی تلاش برای گفتن؟ 136 00:06:44,770 --> 00:06:46,381 مطمئن باشید که به چه چیزی؟ 137 00:06:46,381 --> 00:06:47,825 >> -Randy کردم تا برای رفتن! 138 00:06:47,825 --> 00:06:48,866 آیا شما لطفا بیرون می آیند؟ 139 00:06:48,866 --> 00:06:49,783 >> حق همه، مادر! 140 00:06:49,783 --> 00:06:51,786 من در بیرون راست! 141 00:06:51,786 --> 00:06:53,606 من در حال حاضر نزدیک شدن است. 142 00:06:53,606 --> 00:06:55,550 تنش وحشتناک بود. 143 00:06:55,550 --> 00:06:57,050 این چی بود؟ 144 00:06:57,050 --> 00:06:59,905 سرنوشت این سیاره ممکن است در تعادل آویزان! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie، سفت کردم برای رفتن! 146 00:07:01,736 --> 00:07:05,680 >> -I'll شود، برای گریه کردن با صدای بلند! 147 00:07:05,680 --> 00:07:07,170 تقریبا وجود دارد! 148 00:07:07,170 --> 00:07:08,150 انگشتان من پرواز کرد. 149 00:07:08,150 --> 00:07:09,980 ذهن من یک تله فولاد بود. 150 00:07:09,980 --> 00:07:11,496 هر منفذ ارتعاش. 151 00:07:11,496 --> 00:07:13,268 این تقریبا روشن بود! 152 00:07:13,268 --> 00:07:13,767 بله. 153 00:07:13,767 --> 00:07:14,609 بله. 154 00:07:14,609 --> 00:07:15,108 بله. 155 00:07:15,108 --> 00:07:16,449 بله. 156 00:07:16,449 --> 00:07:20,240 لازم است به نوشیدن Ovaltine خود را. 157 00:07:20,240 --> 00:07:20,740 Ovaltine؟ 158 00:07:20,740 --> 00:07:26,687 159 00:07:26,687 --> 00:07:27,520 تجاری می روشن است؟ 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 حرومزاده. 162 00:07:34,920 --> 00:07:35,890 >> [END پخش] 163 00:07:35,890 --> 00:07:39,650 >> ROB باودن: بنابراین این که چگونه Ovaltine مربوط به رمزنگاری. 164 00:07:39,650 --> 00:07:42,290 اساسا CS50 فقط آگهی Ovaltine، بنابراین ما می تواند 165 00:07:42,290 --> 00:07:44,400 یک نکبتی تجاری برای Ovaltine. 166 00:07:44,400 --> 00:07:44,900 خیلی خوب. 167 00:07:44,900 --> 00:07:47,120 بنابراین در حال حاضر علوم کامپیوتر واقعی. 168 00:07:47,120 --> 00:07:50,670 به یاد داشته باشید در روز دوشنبه ما را ترک کردن غواصی عمیق تر به رشته ها. 169 00:07:50,670 --> 00:07:52,820 بنابراین ما با خرید و فروش شد رشته "Zamyla." 170 00:07:52,820 --> 00:07:55,130 و ما به رسمیت شناختن شد این واقعیت است که ما می توانیم درمان 171 00:07:55,130 --> 00:07:57,510 "Zamyla" را به عنوان یک رشته از کاراکتر. 172 00:07:57,510 --> 00:07:59,740 و به یاد داشته باشید که ما به دست علامت کروشه است. 173 00:07:59,740 --> 00:08:01,995 بنابراین اگر این ذخیره شده بودند در یک رشته "S"، و سپس 174 00:08:01,995 --> 00:08:05,860 اگر ما گفت براکت 0، که نشان می دهد که نامه زهرا سرمایه 175 00:08:05,860 --> 00:08:09,790 و اگر ما گفت براکت 1، که به حروف کوچک برای اولین بار یک نشان می دهد، 176 00:08:09,790 --> 00:08:14,220 و به همین ترتیب تا براکت 5، که آخرین آن یک نشان می دهد. 177 00:08:14,220 --> 00:08:17,090 >> در حال حاضر به یاد داشته باشید که طول این رشته است 6، 178 00:08:17,090 --> 00:08:23,220 اما شاخص به رشته هستند 0 از طریق 5، Z طریق که آخرین. 179 00:08:23,220 --> 00:08:28,650 بنابراین این در حال حاضر به یک تصویر بزرگتر متناسب از حافظه کامپیوتر شما، RAM خود را. 180 00:08:28,650 --> 00:08:32,020 بنابراین جایی برنامه ای است که شما در حال اجرا کامپیوتر شما 181 00:08:32,020 --> 00:08:34,780 نیاز به یاد داشته باشید Zamyla جایی در حافظه. 182 00:08:34,780 --> 00:08:36,029 آیا من می توانم یک داوطلب داشته باشد؟ 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 بله لطفا. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 و اسم شما چیه؟ 187 00:08:51,500 --> 00:08:52,410 >> دین: دین. 188 00:08:52,410 --> 00:08:53,550 >> ROB باودن: دین؟ 189 00:08:53,550 --> 00:08:54,910 از ملاقات شما خوشبختم، دین. 190 00:08:54,910 --> 00:08:58,240 پس بیا اینجا و ما در حال رفتن به شما در قرعه کشی 191 00:08:58,240 --> 00:09:00,740 در طرح بسیار خوب خوب ما از حافظه است. 192 00:09:00,740 --> 00:09:05,950 در حال حاضر من می خواهم به فکر می کنم از حافظه به عنوان یکی نوار طولانی از بایت، 193 00:09:05,950 --> 00:09:11,090 اما فقط برای مقاصد صفحه نمایش خواهیم فقط چپ به راست، بالا به پایین. 194 00:09:11,090 --> 00:09:11,590 باشه؟ 195 00:09:11,590 --> 00:09:22,030 >> بنابراین من قصد دارم برای نشان دادن یک program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 و به این ترتیب تمام این برنامه این است انجام درخواست چهار رشته 197 00:09:25,760 --> 00:09:28,830 از کاربران با GetString و پس از آن چاپ 198 00:09:28,830 --> 00:09:30,950 هر آنچه که رشته برای اولین بار وارد شد. 199 00:09:30,950 --> 00:09:32,840 ما در حال نادیده گرفتن دو از طریق چهار. 200 00:09:32,840 --> 00:09:33,610 باشه. 201 00:09:33,610 --> 00:09:38,210 بنابراین در اینجا now-- که من برای اولین بار S1 درخواست. 202 00:09:38,210 --> 00:09:39,740 بنابراین شما در کامپیوتر می باشد. 203 00:09:39,740 --> 00:09:41,680 و شما در حال اجرای از GetString. 204 00:09:41,680 --> 00:09:46,710 بنابراین شما درخواست یک رشته از من، و من می گویند، OK، دین. 205 00:09:46,710 --> 00:09:47,900 به رشته "دین." 206 00:09:47,900 --> 00:09:50,300 >> بنابراین جایی در حافظه شما نیاز به یاد داشته باشید "دین." 207 00:09:50,300 --> 00:09:52,160 پس از آن را به حافظه ارسال در جایی. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 کامل. 210 00:09:59,210 --> 00:09:59,880 باشه. 211 00:09:59,880 --> 00:10:01,740 بنابراین در حال حاضر ما S2 اند. 212 00:10:01,740 --> 00:10:03,869 و S2 است برای رفتن به یک درخواست به از GetString. 213 00:10:03,869 --> 00:10:05,160 بنابراین من قصد دارم برای ورود به یک رشته است. 214 00:10:05,160 --> 00:10:08,720 من قصد دارم برای ورود به "هانا." 215 00:10:08,720 --> 00:10:10,586 بنابراین وارد کنید "هانا" جایی به حافظه است. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 آره. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> OK، بنابراین در حال حاضر S3. 220 00:10:25,550 --> 00:10:28,380 و آن را به دیگری باشد درخواست از GetString. 221 00:10:28,380 --> 00:10:37,020 و بنابراین در حال حاضر وارد کنید "ماریا." 222 00:10:37,020 --> 00:10:37,520 خیلی خوب. 223 00:10:37,520 --> 00:10:40,980 و پس از آن یکی از آخرین وجود دارد درخواست برای از GetString، S4. 224 00:10:40,980 --> 00:10:42,580 بنابراین، من نمی دانم. 225 00:10:42,580 --> 00:10:45,640 چگونه در مورد ما با رفتن antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 بنابراین به حافظه وارد کنید که. 227 00:10:49,460 --> 00:10:50,400 آره. 228 00:10:50,400 --> 00:10:53,970 بنابراین فقط "راب." 229 00:10:53,970 --> 00:10:54,560 >> باشه. 230 00:10:54,560 --> 00:10:58,410 بنابراین در حال حاضر explain-- چرا شما این فاصله را ترک؟ 231 00:10:58,410 --> 00:11:01,340 چرا شما این قسمت را خالی کرده اند فضای اینجا، اینجا، و اینجا؟ 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 بله. 234 00:11:05,670 --> 00:11:09,450 بنابراین اطلاع زمانی که من به به چاپ s1-- بنابراین اگر ما 235 00:11:09,450 --> 00:11:11,890 حال "هانا" در حال اجرا سمت راست در کنار "دین" 236 00:11:11,890 --> 00:11:14,360 چگونه ما می دانیم که رشته "دین" به پایان می رسد؟ 237 00:11:14,360 --> 00:11:19,470 بنابراین چاپ S1 رشته ممکن است فقط چاپ "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 اگر آن را از هیچ سرنخ ندارد از زمانی که "دین" در واقع به پایان می رسد. 239 00:11:22,720 --> 00:11:23,240 >> خیلی خوب. 240 00:11:23,240 --> 00:11:27,650 بنابراین در حافظه راه ما در واقع نشان دهنده این پایان یک رشته 241 00:11:27,650 --> 00:11:29,940 با بک اسلش صفر. 242 00:11:29,940 --> 00:11:32,620 بنابراین این فضا همان چیزی است که ما می خواستیم. 243 00:11:32,620 --> 00:11:34,040 این باید یک بک اسلش صفر باشد. 244 00:11:34,040 --> 00:11:37,690 این خواهد بود که یک بک اسلش صفر، خواهد شد و این یک بک اسلش صفر است. 245 00:11:37,690 --> 00:11:41,585 و شما می توانید یک جایزه افسانه برای اینکه یک داوطلب کامل است. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 نگاهی به توپ استرس! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> باشه. 250 00:11:49,700 --> 00:11:54,420 بنابراین این شخصیت بک اسلش صفر است چگونه ما نشان دادن پایان یک رشته است. 251 00:11:54,420 --> 00:11:57,120 این که چگونه زمانی که هر برنامه داده شده است می خواهد برای چاپ یک رشته، 252 00:11:57,120 --> 00:11:59,760 آن how-- یاد داشته باشید ما به دست تابع strlen هفته گذشته؟ 253 00:11:59,760 --> 00:12:00,940 طول رشته. 254 00:12:00,940 --> 00:12:03,770 این که چگونه طول رشته قادر است به تعیین چه مدت یک رشته است. 255 00:12:03,770 --> 00:12:05,810 این فقط نگه می تکرار بیش از شخصیت 256 00:12:05,810 --> 00:12:08,217 تا زمانی که آن را پیدا کرد بک اسلش شخصیت صفر است. 257 00:12:08,217 --> 00:12:11,050 بنابراین نکته مهم برای تحقق بخشیدن به در مورد شخصیت بک اسلش صفر 258 00:12:11,050 --> 00:12:14,950 است این نمایندگی همه صفر در بیت. 259 00:12:14,950 --> 00:12:18,980 بنابراین توجه کنید که این متمایز است از شخصیت صفر است. 260 00:12:18,980 --> 00:12:23,010 به طوری که شخصیت صفر، اگر به یاد داشته باشید در مثال که او در پایان به 261 00:12:23,010 --> 00:12:27,360 سخنرانی که در آن شخصیت نقشه to-- مانند نقشه ها سرمایه تا 65. 262 00:12:27,360 --> 00:12:29,130 حروف کوچک نقشه ها را به 97. 263 00:12:29,130 --> 00:12:30,890 حروف کوچک B می شود 98. 264 00:12:30,890 --> 00:12:35,220 به طوری که تعداد 0 نقشه to-- من نمی مطمئن شوید از بالا سر من. 265 00:12:35,220 --> 00:12:36,400 44 یا 45. 266 00:12:36,400 --> 00:12:37,890 جایی در این منطقه است. 267 00:12:37,890 --> 00:12:40,850 >> به طوری که شخصیت 0 یک عدد واقعی است. 268 00:12:40,850 --> 00:12:44,350 اما صفر بک اسلش نقشه ها به تمام بیت صفر. 269 00:12:44,350 --> 00:12:46,380 بنابراین یک تمایز وجود دارد بین بک اسلش صفر، 270 00:12:46,380 --> 00:12:48,450 که ما آن را نابودگر تهی پاسخ. 271 00:12:48,450 --> 00:12:53,210 یک تمایز بین وجود دارد بک اسلش صفر و شخصیت صفر است. 272 00:12:53,210 --> 00:12:54,350 >> خیلی خوب. 273 00:12:54,350 --> 00:12:57,520 بنابراین صحبت کردن کمی بیشتر در مورد رشته ها. 274 00:12:57,520 --> 00:13:01,470 پس ما در اینجا مشاهده کنید این است چگونه این امر می تواند در حافظه گذاشته شد. 275 00:13:01,470 --> 00:13:07,940 بنابراین این ایده از رشته به عنوان یک رشته از characters-- تا کامپیوتر رسمی 276 00:13:07,940 --> 00:13:10,750 مدت sciency برای توالی یک آرایه است. 277 00:13:10,750 --> 00:13:13,790 بنابراین ما یک رشته پاسخ آرایه ای از کاراکتر. 278 00:13:13,790 --> 00:13:17,770 و در واقع وجود دارد دیگر اطلاعات انواع که ما می توانیم آرایه از است. 279 00:13:17,770 --> 00:13:19,975 >> بنابراین برای ایجاد انگیزه این، نگاهی به عنوان مثال. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 ما آن را ages0.c پاسخ من شما کپی و قالب های ما کپی کنید. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 باشه. 284 00:13:33,410 --> 00:13:39,378 بنابراین در این برنامه چیزی است که ما می خواهید انجام دهید این است گرفتن سن 285 00:13:39,378 --> 00:13:45,160 سه تن از دانشجویان در این دوره است. 286 00:13:45,160 --> 00:13:49,240 بنابراین ما می دانیم که از نوع int age-- و در حال حاضر من قصد دارم برای گفتن 0. 287 00:13:49,240 --> 00:13:53,140 بنابراین شما ممکن است می خواهم بگویم age1، اما برای اهداف ما بسیار در مدت کوتاهی خواهید دید، 288 00:13:53,140 --> 00:13:57,187 من می گویم age0 INT برابر GetInt. 289 00:13:57,187 --> 00:13:59,270 به طوری که تماس به همان GetInt که ما شده ایم با استفاده از من 290 00:13:59,270 --> 00:14:01,561 رخ می دهد نه باعث می شود گفت: "سن به من." 291 00:14:01,561 --> 00:14:03,120 اما فقط آن را درخواست. 292 00:14:03,120 --> 00:14:06,510 >> و age1 برابر GetInt. 293 00:14:06,510 --> 00:14:09,600 و age2 INT برابر GetInt. 294 00:14:09,600 --> 00:14:14,070 پس، دوباره، سه دانش آموز، اما در نهایت شاخص متغیر 295 00:14:14,070 --> 00:14:16,890 می age0 طریق age2. 296 00:14:16,890 --> 00:14:17,550 باشه. 297 00:14:17,550 --> 00:14:23,960 بنابراین این برنامه انجام خواهد داد هر ما با age0، age1 و age2 می خواهید، 298 00:14:23,960 --> 00:14:27,670 اما این برنامه در نهایت برای سه دانشجو کار می کند. 299 00:14:27,670 --> 00:14:28,380 >> باشه. 300 00:14:28,380 --> 00:14:32,110 بنابراین در حال حاضر اگر من می خواهم چهار دانشجو؟ 301 00:14:32,110 --> 00:14:36,000 خب، من قصد دارم به برای رفتن به عقب به کد من، تغییر نظر، 302 00:14:36,000 --> 00:14:39,840 و در حال حاضر ما یک int age3 برابر GetInt. 303 00:14:39,840 --> 00:14:40,610 باشه. 304 00:14:40,610 --> 00:14:43,660 به طوری که مشکل می بیند که اینجا هستید؟ 305 00:14:43,660 --> 00:14:47,310 مشکل چیه با این نوع راه اندازی؟ 306 00:14:47,310 --> 00:14:47,810 آره. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 آره. 309 00:14:53,610 --> 00:14:56,360 بنابراین ما در حال ایجاد یک متغیر برای هر دانش آموز. 310 00:14:56,360 --> 00:15:00,140 حالا که کار می کند، اما در نهایت آنچه اگر در حال حاضر 311 00:15:00,140 --> 00:15:06,500 می گویند، "من می خواهم برای گرفتن سن هشت دانش آموزان و یا دانش آموزان 16 312 00:15:06,500 --> 00:15:11,340 یا این حال بسیاری از دانش آموزان از صدها نفر از دانش آموزان در CS50 313 00:15:11,340 --> 00:15:16,750 و یا هزاران نفر از دانشجویان در محوطه دانشگاه یا میلیاردها نفر از مردم در جهان؟ 314 00:15:16,750 --> 00:15:19,130 پس در نهایت این است پایدار نیست. 315 00:15:19,130 --> 00:15:21,990 هر زمان که شما خودتان را کپی کردن و کد چسباندن شبیه به این، 316 00:15:21,990 --> 00:15:25,050 شما به طور کلی باید احساس که یک راه بهتر وجود دارد. 317 00:15:25,050 --> 00:15:31,290 >> پس این است که معرفی می کنیم اعلام آرایه. 318 00:15:31,290 --> 00:15:34,564 تا زمانی که شما اعلام یک آرایه، این چیزی است که قالب کلی است 319 00:15:34,564 --> 00:15:35,480 در حال رفتن به مانند نگاه کنید. 320 00:15:35,480 --> 00:15:36,664 ما قصد داریم به نوع. 321 00:15:36,664 --> 00:15:38,830 و سپس ما در حال رفتن به به نام آن آرایه، 322 00:15:38,830 --> 00:15:41,150 همان گونه که هر متغیر داده شده تعریف می کنیم. 323 00:15:41,150 --> 00:15:43,980 و سپس در نهایت ما با استفاده از این علامت کروشه دوباره 324 00:15:43,980 --> 00:15:47,480 اما در زمینه های مختلف از چگونه ما شد آن را در اوایل با استفاده از. 325 00:15:47,480 --> 00:15:51,860 >> بنابراین در اینجا این برام مثل یه نرمال تعریف متغیر که ما دیده ایم. 326 00:15:51,860 --> 00:15:54,890 بنابراین ما نوع int x نیمه روده بزرگ قبل از دیده می شود. 327 00:15:54,890 --> 00:16:00,020 خوب در حال حاضر ما ممکن است چیزی را ببینید مانند نوع int x براکت 5. 328 00:16:00,020 --> 00:16:04,020 و قرار دادن این ایده به برنامه GetInt که ما have-- 329 00:16:04,020 --> 00:16:08,850 بنابراین ما می توانیم پیاده سازی این در به همان شیوه. 330 00:16:08,850 --> 00:16:13,630 >> بیایید در CS می گویند که ما تمایل به استفاده از N تعداد از چیزی. 331 00:16:13,630 --> 00:16:16,150 بنابراین در اینجا ما قصد داریم به چهار دانشجو را ذخیره کنید. 332 00:16:16,150 --> 00:16:25,960 و در حال حاضر ما می توانیم سن INT می گویند براکت نمی n-- کاملا آن را دریافت yet-- 333 00:16:25,960 --> 00:16:32,210 به آرایه از چهار دانش آموز. 334 00:16:32,210 --> 00:16:38,050 پس چگونه این نگاه در حافظه شبیه به این خواهد بود. 335 00:16:38,050 --> 00:16:39,570 پاک کردن این. 336 00:16:39,570 --> 00:16:46,606 و ما در حال رفتن به جایی در حافظه من این قرار داده است. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> بنابراین در جایی در حافظه است. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 یک دو سه چهار. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 ما چهار عدد صحیح در یک ردیف برای این مجموعه ای از چهار عدد صحیح. 343 00:17:09,849 --> 00:17:13,820 بنابراین، در حال حاضر، آنچه که اندازه یکی از این جعبه؟ 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 آره. 346 00:17:17,690 --> 00:17:18,390 این چهار بایت است. 347 00:17:18,390 --> 00:17:19,690 این 32 بیت است. 348 00:17:19,690 --> 00:17:22,310 بنابراین در حال حاضر این متفاوت است از آرایه که ما 349 00:17:22,310 --> 00:17:24,020 دیدم پیش از این، آرایه ای از کاراکتر. 350 00:17:24,020 --> 00:17:28,540 در یک رشته هر جعبه تنها یک بایت بود، به دلیل یک شخصیت تنها یک بایت است. 351 00:17:28,540 --> 00:17:32,170 اما با یک آرایه از اعداد صحیح، هر جعبه را به چهار بایت در 352 00:17:32,170 --> 00:17:34,060 به تناسب کل یک عدد صحیح. 353 00:17:34,060 --> 00:17:37,197 بنابراین این چیزی است که آرایه ای از چهار نوع داده int نگاه می خواهم. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> و سپس به کد. 356 00:17:43,870 --> 00:17:47,460 در حال حاضر ما به واقع می خواهند اینترنتی اعداد به که آرایه. 357 00:17:47,460 --> 00:17:53,470 بنابراین در حال حاضر این است که بسیار، بسیار، بسیار الگوی مشترک است که در برخی از نقطه 358 00:17:53,470 --> 00:17:54,680 تبدیل حافظه عضلانی. 359 00:17:54,680 --> 00:17:56,710 بنابراین اعضای هیات من برابر با 0. 360 00:17:56,710 --> 00:17:57,940 من کمتر از N. 361 00:17:57,940 --> 00:18:01,850 من به علاوه به علاوه. 362 00:18:01,850 --> 00:18:05,790 براکت سن من برابر با GetInt. 363 00:18:05,790 --> 00:18:15,100 >> بنابراین این حلقه، این فرمت، شما باید بسیار استفاده می شود. 364 00:18:15,100 --> 00:18:20,010 پس این است که به طور کلی چگونه ما تکرار بیش از تقریبا هر آرایه است. 365 00:18:20,010 --> 00:18:23,690 در حال حاضر متوجه این نوع از توضیح میدهد که چرا از همان ابتدا 366 00:18:23,690 --> 00:18:29,870 ما برای حلقه ها را برای INT رفتن ندارد من برابر با 1، من کمتر از یا برابر با 10. 367 00:18:29,870 --> 00:18:34,200 زیرا که با شروع از صفر باعث می شود این کار به خوبی با آرایه ها. 368 00:18:34,200 --> 00:18:36,270 بنابراین آرایه صفر نمایه می شوند. 369 00:18:36,270 --> 00:18:40,360 اگر شما این آرایه است به طول 4، شاخص از طریق 3 0. 370 00:18:40,360 --> 00:18:42,880 >> بنابراین از طریق اولین تکرار از این حلقه 371 00:18:42,880 --> 00:18:49,930 ما در حال رفتن به تنظیم سن براکت 0 تا یک تماس به GetInt برابر است. 372 00:18:49,930 --> 00:18:52,440 بنابراین هر آنچه که من به طور اتفاقی به در صفحه کلید را وارد کنید. 373 00:18:52,440 --> 00:18:56,970 در پاس دوم، ما تنظیم age1 به GetInt برابر است. 374 00:18:56,970 --> 00:18:58,230 پاس سوم، age2. 375 00:18:58,230 --> 00:18:59,880 age3 پاس نهایی است. 376 00:18:59,880 --> 00:19:05,750 بنابراین اگر در اولین گذر از حلقه من با وارد کردن شماره 4 در صفحه کلید، 377 00:19:05,750 --> 00:19:07,740 پس از آن خواهیم 4 در اینجا وارد کنید. 378 00:19:07,740 --> 00:19:11,470 اگر در پاس دوم من وارد 50، ما یک 50 اینجا قرار دهید. 379 00:19:11,470 --> 00:19:15,180 در پاس سوم من ممکن است وارد منفی 1، منفی 1، 380 00:19:15,180 --> 00:19:21,810 و سپس در نهایت اگر من وارد 0-- و اکنون به یاد داشته باشید که این شاخص سه بود. 381 00:19:21,810 --> 00:19:25,350 >> بعد از ما حلقه پشت، من است رفتن به 4 واحد اضافه می شود. 382 00:19:25,350 --> 00:19:27,770 من دیگر کمتر از n است، که 4. 383 00:19:27,770 --> 00:19:29,840 و ما از شکستن حلقه. 384 00:19:29,840 --> 00:19:32,578 پس چه خواهد اشتباه است با این؟ 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [نامفهوم]؟ 387 00:19:38,729 --> 00:19:39,604 مخاطبان: [نامفهوم] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> بله. 390 00:19:46,400 --> 00:19:51,550 بنابراین آرایه تنها دارای چهار مکان ها، که به معنی به عنوان شاخص های 0 تا 3. 391 00:19:51,550 --> 00:19:55,630 بنابراین اگر این مورد، من می خواهم را به مقدار 4 در برخی از نقطه. 392 00:19:55,630 --> 00:20:00,910 سن براکت 4 تنظیم خواهد شد به اینجا هر چه 393 00:20:00,910 --> 00:20:02,920 به آنچه که من باید بگویم، وارد کنید 6. 394 00:20:02,920 --> 00:20:05,010 که می شود تنظیم این به 6. 395 00:20:05,010 --> 00:20:06,560 >> اما ما نمی دانیم که چه چیزی بیش از اینجا. 396 00:20:06,560 --> 00:20:08,836 این حافظه که ما دسترسی به بود. 397 00:20:08,836 --> 00:20:10,710 بنابراین اگر شما به یاد داشته باشید از سخنرانی های قبلی، 398 00:20:10,710 --> 00:20:14,350 او چاپ مقادیر Zamyla شد و در برخی از نقطه او ضربه این تقسیم بندی 399 00:20:14,350 --> 00:20:17,990 گسل. بنابراین شما احتمالا شاهد شود بسیاری از گسل تقسیم بندی به عنوان شما 400 00:20:17,990 --> 00:20:20,530 اجرای برخی از مجموعه مسائل. 401 00:20:20,530 --> 00:20:24,950 اما این یکی از راه های است که در آن شما می توانید یک تقسیم بندی روبرو می شوند 402 00:20:24,950 --> 00:20:28,540 گسل، هنگامی که شما شروع به دسترسی حافظه در راه هایی که شما باید باشد. 403 00:20:28,540 --> 00:20:34,117 بنابراین ما دسترسی به ندارد این مکان و این یک اشکال است. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> بنابراین این بهتر است. 406 00:20:40,190 --> 00:20:45,820 در حال حاضر هنوز وجود دارد کوچک موضوع را با این کد. 407 00:20:45,820 --> 00:20:50,720 و اساسا این است که ما هنوز در چهار دانشجو گیر کرده است. 408 00:20:50,720 --> 00:20:52,940 در حال حاضر اگر من می خواهم به استفاده از هشت دانشجو، OK. 409 00:20:52,940 --> 00:20:54,350 آن است که بزرگ یک معامله نیست. 410 00:20:54,350 --> 00:20:58,120 من در می توانید بروید، تغییر نظر، و تغییر N. 411 00:20:58,120 --> 00:20:59,760 در حال حاضر این با هشت دانشجو کار خواهد کرد. 412 00:20:59,760 --> 00:21:02,190 اگر من این را کامپایل و اجرا این، آن را نشان می دهد me-- 413 00:21:02,190 --> 00:21:07,870 آن را اعداد صحیح به مدت هشت درخواست دانش آموزان و آن را فقط کار خواهد کرد. 414 00:21:07,870 --> 00:21:11,850 اما آن را کمتر از ایده آل به نیاز به کامپایل مجدد برنامه در هر زمان تنها 415 00:21:11,850 --> 00:21:15,960 من می خواهم به تغییر تعدادی از دانش آموزان که من می خواهم برای ورود به سنین برای. 416 00:21:15,960 --> 00:21:22,990 >> بنابراین بهبود نهایی در این، همانطور که خواهیم دید here-- ما 417 00:21:22,990 --> 00:21:26,177 رفتن به درخواست تعداد زیادی از مردم. 418 00:21:26,177 --> 00:21:28,010 در اینجا ما یک تعداد از مردم در اتاق 419 00:21:28,010 --> 00:21:29,880 و یا هر سنین از مردم در اتاق. 420 00:21:29,880 --> 00:21:33,300 اما ما قصد داریم به درخواست تعداد از مردم در اتاق از کاربر. 421 00:21:33,300 --> 00:21:36,171 بنابراین این دقیقا همان انجام دهند در حالی است حلقه که ما قبل از دیده می شود. 422 00:21:36,171 --> 00:21:37,920 این همان دقیق انجام دهند در حالی که شما حلقه 423 00:21:37,920 --> 00:21:40,050 ممکن است اجرای در مجموعه مشکل. 424 00:21:40,050 --> 00:21:43,102 بنابراین تا زمانی که آنها ورود به N کمتر از 1، 425 00:21:43,102 --> 00:21:45,310 بنابراین را باید به در می شود وجود دارد حداقل یک نفر در اتاق. 426 00:21:45,310 --> 00:21:47,407 تا زمانی که آنها ورود به N کمتر از 1، 427 00:21:47,407 --> 00:21:48,990 پس از آن ما قصد داریم برای حفظ دوباره درخواست. 428 00:21:48,990 --> 00:21:50,906 لطفا عدد را وارد کنید از مردم در اتاق. 429 00:21:50,906 --> 00:21:53,550 در حال حاضر، زمانی که ما تعداد از مردم در room-- 430 00:21:53,550 --> 00:21:58,020 بنابراین من وجود دارد ممکن است وارد کنید که 200 نفر در این اتاق می باشد. 431 00:21:58,020 --> 00:22:05,480 سپس در اینجا ما در حال رفتن به آمده و اعلام آرایه ای از حجم 200. 432 00:22:05,480 --> 00:22:10,220 ما در حال اعلام آرایه که به اندازه کافی بزرگ برای نگهداری 200 سنین. 433 00:22:10,220 --> 00:22:15,370 پایین آمدن، آن را از حلقه for که شما را از بسیار استفاده می شود. 434 00:22:15,370 --> 00:22:19,490 بنابراین تکرار بیش از این آرایه، اختصاص به هر مکان 435 00:22:19,490 --> 00:22:23,020 در آن آرایه یک عدد صحیح، و و سپس در نهایت در اینجا ما 436 00:22:23,020 --> 00:22:28,340 فقط یک مثال از تکرار بیش از آن آرایه، برای تخصیص مقادیر نیست، 437 00:22:28,340 --> 00:22:30,150 اما به ارزش دسترسی داشته باشید. 438 00:22:30,150 --> 00:22:33,810 >> بنابراین در اینجا ما می بینیم که ما می گویند، یک سال از هم اکنون، 439 00:22:33,810 --> 00:22:40,470 فرد٪ من خواهد بود٪ من سال، که در آن اولین٪ من به علاوه 1 است. 440 00:22:40,470 --> 00:22:43,010 بنابراین من این متغیر شاخص است. 441 00:22:43,010 --> 00:22:49,420 و٪ دوم من است برای رفتن به مقدار ذخیره شده در آرایه سنین به علاوه 1. 442 00:22:49,420 --> 00:22:54,217 بنابراین این به علاوه 1 است فقط به خاطر اینکه ما saying-- این به علاوه 1، سنین من به علاوه 1. 443 00:22:54,217 --> 00:22:57,050 این به علاوه 1 است فقط به خاطر اینکه ما گفت: یک سال از حالا فرد 444 00:22:57,050 --> 00:22:58,280 خواهد بود این است. 445 00:22:58,280 --> 00:23:01,080 >> پس چرا این من به علاوه 1 است؟ 446 00:23:01,080 --> 00:23:04,064 دلیل است که یک به علاوه 1 وجود دارد؟ 447 00:23:04,064 --> 00:23:04,564 آره. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 بله. 450 00:23:07,930 --> 00:23:10,510 بنابراین به یاد داشته باشید آرایه ها صفر شدهاند. 451 00:23:10,510 --> 00:23:14,840 بنابراین اگر ما در حال چاپ این را برای کسی که به فقط خواندن خروجی، 452 00:23:14,840 --> 00:23:19,380 پس از آن احتمالا آنها می خواهند برای دیدن چیزی مانند فرد یک، فرد شماره یک، 453 00:23:19,380 --> 00:23:21,160 خواهد بود 20 ساله است. 454 00:23:21,160 --> 00:23:23,570 تعداد فرد دو خواهد بود 15 سال دارند. 455 00:23:23,570 --> 00:23:27,420 آنها ترجیح فرد را ببینید عدد صفر 15 ساله است. 456 00:23:27,420 --> 00:23:36,460 >> بنابراین تدوین این و فقط از دیدن آنچه به نظر می رسد like-- ایجاد فضایی. 457 00:23:36,460 --> 00:23:43,560 را سنین کامپایل. 458 00:23:43,560 --> 00:23:45,080 در حال اجرا سنین. 459 00:23:45,080 --> 00:23:46,580 ما می بینیم که تعداد افراد در اتاق. 460 00:23:46,580 --> 00:23:48,850 بنابراین من می گویند وجود دارد سه نفر در اتاق. 461 00:23:48,850 --> 00:23:54,000 سن فرد شماره یک، اجازه دهید بگویم 15، 20، 25. 462 00:23:54,000 --> 00:23:59,680 و اکنون من یک سال از گویند در حال حاضر آنها خواهد بود 16، 21، 26. 463 00:23:59,680 --> 00:24:02,900 بیایید ببینید که این کار با یک n است که به 3 برابر نیست. 464 00:24:02,900 --> 00:24:07,940 بنابراین اگر من می گویند تعدادی از مردم 5 است، یکی، دو، سه، دو، یک، یک سال از هم اکنون 465 00:24:07,940 --> 00:24:11,170 آنها خواهید بود دو، سه، چهار، سه، دو ساله است. 466 00:24:11,170 --> 00:24:16,500 بنابراین من می تواند فقط به عنوان به راحتی اند N 10،000 شود. 467 00:24:16,500 --> 00:24:21,270 در حال حاضر من نشسته در اینجا کاملا در حالی که ورود به سنین، اما این کار می کند. 468 00:24:21,270 --> 00:24:26,000 >> بنابراین در حال حاضر در حافظه جایی که ما یک آرایه از اندازه 10،000، 469 00:24:26,000 --> 00:24:28,830 بنابراین در نهایت 40،000 بایت، زیرا هستند 470 00:24:28,830 --> 00:24:31,222 چهار بایت برای هر یک از این اعداد صحیح است. 471 00:24:31,222 --> 00:24:33,180 بنابراین آرایه ای از وجود دارد اندازه 10،000 که در آن ما می توانیم 472 00:24:33,180 --> 00:24:36,201 ذخیره سنین آن 10،000 نفر. 473 00:24:36,201 --> 00:24:36,700 خیلی خوب. 474 00:24:36,700 --> 00:24:40,070 سوال در مورد هر یک از این؟ 475 00:24:40,070 --> 00:24:41,892 آره. 476 00:24:41,892 --> 00:24:43,350 اگر شما یک عدد منفی داد؟ 477 00:24:43,350 --> 00:24:44,870 بذار ببینیم چه اتفاقی میافتد. 478 00:24:44,870 --> 00:24:49,320 بنابراین در این تعداد case-- خاص از مردم در اتاق، یک منفی است. 479 00:24:49,320 --> 00:24:52,580 آن را رد کرد که، چون تا اینجا ما اتفاق می افتد 480 00:24:52,580 --> 00:24:57,180 به دست زدن به این واقعیت است که اگر n کمتر از یک ما در حال رفتن به درخواست دوباره. 481 00:24:57,180 --> 00:25:01,780 اگر شما سعی می کنید به اعلام مجموعه ای از اندازه منفی، 482 00:25:01,780 --> 00:25:03,950 به طور کلی کار نمی کند. 483 00:25:03,950 --> 00:25:05,570 >> بنابراین سعی کنید. 484 00:25:05,570 --> 00:25:08,000 بیایید چشم پوشی هر ارزش آنها برای n ورودی 485 00:25:08,000 --> 00:25:10,571 و فقط می گویند سنین INT دیگری منفی است. 486 00:25:10,571 --> 00:25:12,410 بیایید ببینید که اگر آن را حتی کامپایل. 487 00:25:12,410 --> 00:25:14,100 مطمئن نیستم. 488 00:25:14,100 --> 00:25:14,920 شماره 489 00:25:14,920 --> 00:25:18,280 بنابراین سنین به عنوان یک اعلام آرایه با اندازه منفی است. 490 00:25:18,280 --> 00:25:22,540 بنابراین در صف مقابل آن یک آرایه به رسمیت می شناسد می تواند اندازه منفی باشد و آن را رد می کند. 491 00:25:22,540 --> 00:25:26,840 در حال حاضر، اگر ما رسیدگی نمی کند این حلقه انجام دهند در حالی به درستی، 492 00:25:26,840 --> 00:25:28,810 اگر ما چک کردن نیست اگر n کمتر از 1-- است 493 00:25:28,810 --> 00:25:32,690 اجازه دهید ما می گویند فقط این ندارد در همه 494 00:25:32,690 --> 00:25:35,940 و به جای آن ما فقط گرفتن یک عدد صحیح. 495 00:25:35,940 --> 00:25:40,710 مهم نیست که چه که عدد صحیح است، ما اعلام می کنیم که مجموعه ای از اندازه. 496 00:25:40,710 --> 00:25:44,250 >> بنابراین کامپایلر نمی اکنون احتمالا شکایت دارند. 497 00:25:44,250 --> 00:25:48,780 اگر من کامپایل this-- پس از آن نمی تواند شکایت، 498 00:25:48,780 --> 00:25:51,480 زیرا نمی تواند دانید که من رفتن به وارد یک عدد منفی، 499 00:25:51,480 --> 00:25:52,550 که ممکن است نامعتبر است. 500 00:25:52,550 --> 00:25:54,633 برای همه آن را می داند، من ممکن است وارد کردن یک عدد مثبت، 501 00:25:54,633 --> 00:25:56,000 که است که کاملا معتبر است. 502 00:25:56,000 --> 00:26:01,090 بنابراین من تصور کنید اگر من وارد منفی 1 مردم در اتاق، تقسیم بندی گسل. 503 00:26:01,090 --> 00:26:06,040 >> بنابراین، OK. 504 00:26:06,040 --> 00:26:13,160 بنابراین این افزودنی تماس فقط اجازه دهید نگه داشتن آن چه آن را در اصل بود. 505 00:26:13,160 --> 00:26:15,640 بنابراین سنین است. 506 00:26:15,640 --> 00:26:18,120 حالا اگر من می خواهید یک منفی age-- بنابراین اجازه دهید 507 00:26:18,120 --> 00:26:19,710 می گویند پنج نفر در اتاق وجود دارد. 508 00:26:19,710 --> 00:26:23,180 سن فرد شماره یک منفی 4 نفر سه است، 509 00:26:23,180 --> 00:26:26,500 صفر است، فرد OK three--. 510 00:26:26,500 --> 00:26:29,850 بنابراین در اینجا، یک سال از هم اکنون، تعداد فرد منفی 3 سال خواهد بود. 511 00:26:29,850 --> 00:26:32,830 پس احتمالا معنی ندارد. 512 00:26:32,830 --> 00:26:37,220 اما این فقط به خاطر اینکه به دنبال در کد تمام ما در حال انجام 513 00:26:37,220 --> 00:26:40,260 درخواست GetInt. 514 00:26:40,260 --> 00:26:44,110 >> حال اگر ما را داشتند. عملکرد GetPositiveInt 515 00:26:44,110 --> 00:26:49,690 و یا ما فقط به سادگی این انجام داده بود مرتب سازی بر اساس حلقه در حالی همان پایین وجود دارد، 516 00:26:49,690 --> 00:26:52,340 پس از آن این کاملا خوب کار می کنند. 517 00:26:52,340 --> 00:26:54,200 اما در این خاص مورد، ما فقط نمی کنند 518 00:26:54,200 --> 00:26:57,772 اتفاق می افتد به دست زدن به مقادیر منفی. 519 00:26:57,772 --> 00:26:59,147 هر گونه سوال دیگر در مورد آرایه؟ 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 باشه. 522 00:27:03,250 --> 00:27:09,380 >> بنابراین ما در حال حاضر آرایه دیده می شود. 523 00:27:09,380 --> 00:27:12,500 و ما در حال رفتن به نیاز به استفاده از این آرگومان خط فرمان. 524 00:27:12,500 --> 00:27:14,680 بنابراین در مجموعه ای مشکل two-- من می دانم که بسیاری از شما 525 00:27:14,680 --> 00:27:18,040 هنوز هم ممکن است کار بر روی مجموعه ای مشکل یکی است، اما مشکل تنظیم دو در حال آمدن است. 526 00:27:18,040 --> 00:27:22,260 در مجموعه مسائل دو، شما در حال رفتن به نیاز به خرید و فروش با رشته ها، آرایه ها، 527 00:27:22,260 --> 00:27:23,950 و آرگومان خط فرمان. 528 00:27:23,950 --> 00:27:26,270 >> آرگومان های خط فرمان پس چه هستند؟ 529 00:27:26,270 --> 00:27:29,570 در حال حاضر، شما می توانید در اینجا ببینید پایین تیزر کمی برای دقیقا همان چیزی است 530 00:27:29,570 --> 00:27:30,950 رفتن به رخ دادن است. 531 00:27:30,950 --> 00:27:32,950 ما می بینیم که از نوع int اصلی، تعداد آنها وارز، براکت و argv رشته است. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 بنابراین برای اولین بار اجازه دهید سعی کنید به تفسیر چه که در تلاش برای گفتن دارد. 534 00:27:38,130 --> 00:27:40,800 در حال حاضر خوب. 535 00:27:40,800 --> 00:27:44,637 >> بنابراین در خط فرمان شما باید مورد استفاده قرار گرفتن برخی از این دستورات 536 00:27:44,637 --> 00:27:48,580 در حال حاضر، و شما احتمالا اجرا سی دی در ترمینال قبل. 537 00:27:48,580 --> 00:27:52,100 بنابراین اگر ما می گویند pset1 سی دی، شما می دانید که که باید 538 00:27:52,100 --> 00:27:55,050 در حال تغییر را به دایرکتوری pset1 است. 539 00:27:55,050 --> 00:27:59,120 >> حالا توجه کنید که شما هرگز نوشته شده یک برنامه مثل این قبل از. 540 00:27:59,120 --> 00:28:03,120 هر برنامه ای که شما نوشته شده است، شما می اجرا، می گویند، نقطه اسلش ماریو، 541 00:28:03,120 --> 00:28:06,779 نقطه اسلش حریص، و سپس آن را ممکن است شما را برای ورودی تحریک کند. 542 00:28:06,779 --> 00:28:08,570 در حال حاضر، چه چیزی تغییر دایرکتوری کند. 543 00:28:08,570 --> 00:28:12,770 هنگامی که شما سی دی اجرا، آن را پس از آن می گویند نیست، کدام دایرکتوری شما را به سی دی می خواهید را به؟ 544 00:28:12,770 --> 00:28:17,200 در عوض، شما فقط می گویند، pset1 سی دی، و آن را فقط به دایرکتوری pset1 می رود. 545 00:28:17,200 --> 00:28:20,430 >> پس به طور مشابه ما نمونه های دیگر است. 546 00:28:20,430 --> 00:28:21,540 را خوش آمدید. 547 00:28:21,540 --> 00:28:25,760 هنگامی که شما اجرا را، آن را پس از آن می گویند نیست، که برنامه دوست دارید را به؟ 548 00:28:25,760 --> 00:28:29,620 شما فقط می گویند، در خط فرمان را خوش آمدید. 549 00:28:29,620 --> 00:28:31,060 >> حرکت مثال دیگر است. 550 00:28:31,060 --> 00:28:34,840 این یکی از ما به حرکت mario.c فایل تا یک دایرکتوری. 551 00:28:34,840 --> 00:28:38,060 بنابراین در حال حاضر ما با این مثال می دانیم ما واقعا در حال عبور از دو آرگومان. 552 00:28:38,060 --> 00:28:42,090 این mario.c به عنوان آرگومان اول وجود دارد، و نقطه نقطه آرگومان دوم است. 553 00:28:42,090 --> 00:28:46,140 و پس از آن هنگامی که شما اجرا را، شما دید که فرمان واقعا طولانی line-- 554 00:28:46,140 --> 00:28:50,580 که فرمان واقعا طولانی در خط فرمان چاپ شده است. 555 00:28:50,580 --> 00:28:53,590 به طوری که به مدت طولانی command-- این فقط بخشی کوتاه از آن است، 556 00:28:53,590 --> 00:28:56,090 اما در حال حاضر ما سه آرگومان خط فرمان. 557 00:28:56,090 --> 00:28:59,750 نقطه فاصله صفر، سلام، و hello.c. 558 00:28:59,750 --> 00:29:03,497 >> بنابراین این خط فرمان استدلال، استدلال 559 00:29:03,497 --> 00:29:05,580 که شما در حال عبور در خط فرمان به طوری که آن 560 00:29:05,580 --> 00:29:08,680 ندارد به باعث می شود زمانی که برنامه را اجرا می کنید. 561 00:29:08,680 --> 00:29:13,090 این امر می تواند خسته کننده باشد اگر که شما صدای جرنگ جرنگ فرار آن گفت، "خوب، 562 00:29:13,090 --> 00:29:15,630 که program-- که فایل شما کامپایل می شوند؟ 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 چه پرچم به نظر شما دوست را وارد کنید. O داش. 565 00:29:19,440 --> 00:29:21,190 چه می خواهم شما فایل به نام؟ 566 00:29:21,190 --> 00:29:21,690 سلام. 567 00:29:21,690 --> 00:29:25,290 نه، شما فقط اجرای صدای جرنگ جرنگ فاصله ای سلام hello.c. 568 00:29:25,290 --> 00:29:28,820 >> بنابراین با نگاهی به این. 569 00:29:28,820 --> 00:29:32,920 در حال حاضر تعداد آنها شمارش argc-- استدلال است. 570 00:29:32,920 --> 00:29:36,620 این تعداد خط فرمان استدلال در خط فرمان وارد شده است. 571 00:29:36,620 --> 00:29:39,720 خب، argv-- فنی پنجم مخفف بردار، 572 00:29:39,720 --> 00:29:41,460 که اساسا به معنی آرایه. 573 00:29:41,460 --> 00:29:42,680 اما شما می توانید چشم پوشی است. 574 00:29:42,680 --> 00:29:47,540 Argv-- ما و argv رشته، بنابراین براکت ی argv رشته است. 575 00:29:47,540 --> 00:29:50,150 بنابراین این نوع دیگری از است لوستر شما قبل از دیده می شود. 576 00:29:50,150 --> 00:29:52,300 براکت بنابراین ما دیده ایم نماد که ما گفته ایم، 577 00:29:52,300 --> 00:29:53,970 مانند، رشته ها برابر Zamyla. 578 00:29:53,970 --> 00:29:56,910 براکت 0 دسترسی زهرا شخصیت 579 00:29:56,910 --> 00:30:00,720 >> ما همچنین براکت که دیده ام ما گفت سنین INT پرانتز 5. 580 00:30:00,720 --> 00:30:03,160 که آرایه ای از اندازه 5 اعلام کرد. 581 00:30:03,160 --> 00:30:06,280 بنابراین در اینجا یک نسخه از است براکت ما قبل دیده نمی شود. 582 00:30:06,280 --> 00:30:09,630 بنابراین این نوع و argv رشته ای که می شود به طور کامل آشنا 583 00:30:09,630 --> 00:30:12,050 که آن را فقط می شود یک رشته است. 584 00:30:12,050 --> 00:30:14,520 در حال حاضر نشان می دهد براکت که این یک آرایه است. 585 00:30:14,520 --> 00:30:19,920 بنابراین براکت ی argv رشته ابزار که ی argv آرایه ای از رشته است. 586 00:30:19,920 --> 00:30:22,540 در حال حاضر از لحاظ فنی یک رشته آرایه ای از کاراکتر است. 587 00:30:22,540 --> 00:30:26,400 پس این است که در حال حاضر یک آرایه از آرایه ای از کاراکتر. 588 00:30:26,400 --> 00:30:31,490 اما آن را بسیار آسان تر به فکر کردن در مورد این فقط به عنوان یک آرایه از رشته. 589 00:30:31,490 --> 00:30:34,900 >> پس چرا ممکن براکت خالی باشد؟ 590 00:30:34,900 --> 00:30:38,170 مانند، چرا که نه می توان گفت، براکت 5، براکت N؟ 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 آره. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 آره. 595 00:30:44,230 --> 00:30:46,396 ما نمی دانیم که چگونه بسیاری از ورودی وجود دارد در حال رفتن به. 596 00:30:46,396 --> 00:30:53,560 بنابراین اگر ما در مثال صدای جرنگ جرنگ نگاه کنید، ما می گویند فاصله ای سلام hello.c صدای جرنگ جرنگ. 597 00:30:53,560 --> 00:30:56,710 در این مورد خاص، اتفاق می افتد وجود دارد به سه آرگومان خط فرمان. 598 00:30:56,710 --> 00:31:00,522 و به این ترتیب brackets-- خواهیم دید در یک ثانیه آن را نمی خواهد سه. 599 00:31:00,522 --> 00:31:01,730 از نظر فنی می شود چهار. 600 00:31:01,730 --> 00:31:04,030 اما براکت، ما را مثلا، سه وجود دارد. 601 00:31:04,030 --> 00:31:08,220 اما در حال حاضر اگر ما در حرکت نگاه mario.c نقطه نقطه، براکت 602 00:31:08,220 --> 00:31:09,760 ما می خواهیم برای قرار دادن دو در آنها است. 603 00:31:09,760 --> 00:31:12,884 >> و بسیاری از دستورات وجود دارد که یک تعداد متغیر از خط فرمان 604 00:31:12,884 --> 00:31:13,620 استدلال. 605 00:31:13,620 --> 00:31:17,430 پس چه این نسخه از علامت کروشه نشان می دهد 606 00:31:17,430 --> 00:31:20,820 این است که ی argv آرایه ای از رشته است. 607 00:31:20,820 --> 00:31:24,360 اما ما نمی دانیم که چگونه بسیاری از رشته در آن آرایه می باشد. 608 00:31:24,360 --> 00:31:27,090 و چگونه ما می دانیم که چگونه پس از آن بسیاری از رشته ها در آرایه باشد؟ 609 00:31:27,090 --> 00:31:28,870 که کل تعداد آنها نقطه است. 610 00:31:28,870 --> 00:31:32,300 تعداد آنها به ما می گوید چه مدت و argv است. 611 00:31:32,300 --> 00:31:36,500 >> بنابراین آخرین چیزی برای نگه داشتن در ذهن این است که، از نظر فنی، 612 00:31:36,500 --> 00:31:40,820 دستور خود را بعنوان یک از آرگومان خط فرمان. 613 00:31:40,820 --> 00:31:45,330 بنابراین pset1 سی دی، دو وجود دارد آرگومان خط فرمان. 614 00:31:45,330 --> 00:31:50,260 این برنامه به خودی خود، سی دی، و پس از آن بخش آرگومان واقعی از آن، pset1. 615 00:31:50,260 --> 00:31:54,490 هر برنامه ای که شما نوشته شده است تا کنون تا به حال یک خط فرمان argument-- نقطه 616 00:31:54,490 --> 00:31:55,320 بریده بریده ماریو. 617 00:31:55,320 --> 00:31:57,350 که تنها آرگومان خط فرمان است. 618 00:31:57,350 --> 00:32:00,900 >> بنابراین در حال حاضر در صدای جرنگ جرنگ به دنبال فاصله ای سلام hello.c. 619 00:32:00,900 --> 00:32:01,905 پس چه تعداد آنها است؟ 620 00:32:01,905 --> 00:32:05,260 621 00:32:05,260 --> 00:32:06,080 4. 622 00:32:06,080 --> 00:32:08,140 بنابراین تعداد آنها 4 است. 623 00:32:08,140 --> 00:32:12,140 صدای جرنگ جرنگ، براکت تا ی argv 0 صدای جرنگ جرنگ است. 624 00:32:12,140 --> 00:32:15,630 ی argv براکت 1 فاصله 0 است. 625 00:32:15,630 --> 00:32:21,870 براکت و argv 2 سلام، و ی argv براکت 3 hello.c است. 626 00:32:21,870 --> 00:32:26,813 خوب، پس سوال در این، و پس از آن ما در برخی از نمونه برنامه ریزی کنید. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> باشه. 629 00:32:30,480 --> 00:32:36,260 بنابراین ما یک نگاه hello3.c است. 630 00:32:36,260 --> 00:32:41,890 بنابراین این باید از آشنا باشد یکی از نمونه های C اول 631 00:32:41,890 --> 00:32:45,800 ما تا به حال که در آن ما فقط می گویند، سلام جهان است، اما در حال حاضر این است کلی تر. 632 00:32:45,800 --> 00:32:52,300 بنابراین در اینجا ما گفت: سلام ٪ s را بک اسلش نفر و argv براکت 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- بنابراین تا این نقطه، این است چه فایل قالب من است مانند نگاه کرد. 634 00:32:57,440 --> 00:33:01,800 من تا به حال از نوع int اصلی (خالی)، و پس از آن من انجام کاری در تابع اصلی. 635 00:33:01,800 --> 00:33:05,100 حال حاضر به جای، زمانی که ما شروع خرید و فروش با آرگومان خط فرمان، 636 00:33:05,100 --> 00:33:07,890 ما نیاز به یک دولت شکل دیگری از اصلی. 637 00:33:07,890 --> 00:33:11,930 >> بنابراین به دنبال در hello3 دوباره، اصلی است که 638 00:33:11,930 --> 00:33:15,990 به دو آرگومان now-- تعداد آنها از نوع int، تعداد آرگومان های خط فرمان، 639 00:33:15,990 --> 00:33:20,970 و رشته ی argv براکت، واقعی رشته ها در خط فرمان وارد شده است. 640 00:33:20,970 --> 00:33:26,560 بنابراین من قصد دارم برای تغییر آن قالب را به منعکس کننده این واقعیت. 641 00:33:26,560 --> 00:33:29,060 در حال حاضر هر زمان که شما ارسال یک برنامه، اگر شما نمی 642 00:33:29,060 --> 00:33:33,720 نیاز به هر گونه خط فرمان استدلال، پس از آن فقط از INT اصلی (خالی). 643 00:33:33,720 --> 00:33:37,070 اما در حال حاضر که شما در حال نوشتن برنامه آرگومان خط فرمان، که 644 00:33:37,070 --> 00:33:40,350 شما در حال رفتن به انجام می شود برای مشکل مجموعه two-- پس اکنون که شما در حال اجرا 645 00:33:40,350 --> 00:33:42,630 برنامه هایی که نیاز به آرگومان خط فرمان، 646 00:33:42,630 --> 00:33:45,250 شما نیاز به اصلی این فرم است. 647 00:33:45,250 --> 00:33:51,290 >> بنابراین here-- این استفاده بزرگ است از آرگومان خط فرمان. 648 00:33:51,290 --> 00:33:54,100 بنابراین چاپ و argv 1. 649 00:33:54,100 --> 00:33:59,180 OK بنابراین اجازه دهید کامپایل و اجرای این برنامه. 650 00:33:59,180 --> 00:34:02,440 را hello3. 651 00:34:02,440 --> 00:34:03,570 کامپایل. 652 00:34:03,570 --> 00:34:06,870 نقطه بریده بریده hello3. 653 00:34:06,870 --> 00:34:08,920 و اجازه دهید بگویم، "راب." 654 00:34:08,920 --> 00:34:10,760 سلام راب. 655 00:34:10,760 --> 00:34:14,940 اگر من می گویم، "سلام ماریا،" سلام ماریا. 656 00:34:14,940 --> 00:34:15,719 سلام ماریا. 657 00:34:15,719 --> 00:34:18,639 هانا هنوز هم می گوید، "سلام ماریا، "چون من نمی 658 00:34:18,639 --> 00:34:21,340 انجام هر کاری با ما و argv 2. 659 00:34:21,340 --> 00:34:22,590 ی argv 2 در حال حاضر خواهد بود "هانا." 660 00:34:22,590 --> 00:34:25,030 تعداد آنها خواهد بود 3. 661 00:34:25,030 --> 00:34:27,735 اگر من این را؟ 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 بنابراین سلام تهی. 664 00:34:34,679 --> 00:34:38,760 >> او به طور خلاصه در این واقعیت را لمس کرد که، از نظر فنی، از GetString 665 00:34:38,760 --> 00:34:42,429 ممکن است بازگشت تهی، اما ما می خواهیم یک گرفتن خیلی بیشتر به آنچه null را واقع است. 666 00:34:42,429 --> 00:34:47,449 اما آن را به عنوان یک ماده این واقعیت که هیچ است بد است. 667 00:34:47,449 --> 00:34:50,179 ما اگر چیزی اشتباه است آن را چاپ "سلام تهی." 668 00:34:50,179 --> 00:34:52,179 و به همین دلیل ما انجام داد چیزی اشتباه is-- خوب، 669 00:34:52,179 --> 00:34:56,179 وقتی که من فرار hello3 بریده بریده نقطه، تعداد آنها 1 بود. 670 00:34:56,179 --> 00:34:59,680 به طوری که به معنی طول و argv 1 بود. 671 00:34:59,680 --> 00:35:05,110 اگر یک آرایه است از طول 1، تنها شاخص معتبر صفر است. 672 00:35:05,110 --> 00:35:08,550 و بنابراین در اینجا و argv 1 است که در خارج طیف وسیعی از این آرایه است. 673 00:35:08,550 --> 00:35:13,410 این شبیه به قبل از زمانی که من سعی کردم شد برای ذخیره 6 در خارج از انتهای آرایه. 674 00:35:13,410 --> 00:35:18,100 بنابراین من در تلاش برای دسترسی به چیزی خارج از شمارش ی argv، 675 00:35:18,100 --> 00:35:21,340 و ما در حال گرفتن تهی. 676 00:35:21,340 --> 00:35:24,360 >> بنابراین یک نسخه بهتر از این، بهبود، 677 00:35:24,360 --> 00:35:27,010 به صراحت چک کردن تعداد آنها. 678 00:35:27,010 --> 00:35:33,580 بنابراین اگر تعداد آنها برابر با 2، این بدان معناست که ما فرار چیزی شبیه به hello3 نقطه اسلش راب. 679 00:35:33,580 --> 00:35:36,840 و آن را چاپ خواهد "سلام راب." 680 00:35:36,840 --> 00:35:39,850 اگر تعداد آنها برابر نیست 2، پس از آن آن را فقط 681 00:35:39,850 --> 00:35:42,560 به چشم پوشی از هر آنچه شما را در آرگومان خط فرمان 682 00:35:42,560 --> 00:35:43,960 به عنوان آرگومان خط فرمان. 683 00:35:43,960 --> 00:35:47,168 و یا اگر شما هیچ در همه قرار داده است، آن را فقط رفتن به چشم پوشی از آن و فقط می گویند، 684 00:35:47,168 --> 00:35:47,960 "سلام بر شما درود بر شما." 685 00:35:47,960 --> 00:35:51,490 >> بنابراین تدوین این. 686 00:35:51,490 --> 00:35:54,500 را hello4. 687 00:35:54,500 --> 00:35:56,790 و در حال اجرا hello4. 688 00:35:56,790 --> 00:36:00,010 در حال اجرا به این ترتیب، چه باید چاپ شود؟ 689 00:36:00,010 --> 00:36:01,330 "سلام بر شما درود بر شما." 690 00:36:01,330 --> 00:36:02,810 سلام بر شما درود بر شما. 691 00:36:02,810 --> 00:36:05,870 چه در مورد hello4 راب؟ 692 00:36:05,870 --> 00:36:06,950 "سلام راب." 693 00:36:06,950 --> 00:36:10,580 و در نهایت، سلام راب ماریا فقط "سلام شما" دوباره، 694 00:36:10,580 --> 00:36:13,677 دلیل این که شما واقعا نمی وارد چیزی که آن انتظار می رود. 695 00:36:13,677 --> 00:36:15,510 شما وارد نامهای از آن می تواند اداره کند، 696 00:36:15,510 --> 00:36:19,500 پس از آن فقط به قصور سلام شما رفتار است. 697 00:36:19,500 --> 00:36:23,040 بنابراین سوال این؟ 698 00:36:23,040 --> 00:36:26,290 و یا آرگومان خط فرمان. 699 00:36:26,290 --> 00:36:28,690 >> خوب، پس گرفتن یک نگاه در نمونه زن و شوهر بیشتر از با استفاده از 700 00:36:28,690 --> 00:36:34,230 خط فرمان اول arguments-- ما فاصله 1 نقطه C ی argv. 701 00:36:34,230 --> 00:36:38,510 بنابراین نظر به دور چه این برنامه باید انجام شود. 702 00:36:38,510 --> 00:36:42,460 اما توجه now-- این حلقه، این مسابقات الگوی دقیق 703 00:36:42,460 --> 00:36:43,390 من می گفت قبل از. 704 00:36:43,390 --> 00:36:46,240 ما فقط اتفاق می افتد به با استفاده از تعداد آنها به جای N. 705 00:36:46,240 --> 00:36:48,880 در حال حاضر تعداد آنها واقعا N. 706 00:36:48,880 --> 00:36:51,260 این طول آرایه ی argv است. 707 00:36:51,260 --> 00:36:59,600 بنابراین می تکرار بیش از ی argv آرایه تابع () printf نشستند هر مقدار ی argv. 708 00:36:59,600 --> 00:37:04,730 >> بنابراین اگر من این را. 709 00:37:04,730 --> 00:37:08,232 را ی argv 1. 710 00:37:08,232 --> 00:37:09,940 این کامپایل. 711 00:37:09,940 --> 00:37:11,620 نقطه بریده بریده ی argv 1. 712 00:37:11,620 --> 00:37:15,530 فقط در حال اجرا این، آن را چاپ نقطه بریده بریده ی argv 1 713 00:37:15,530 --> 00:37:18,500 از آنجا که تنها خط فرمان بود argument-- نام برنامه. 714 00:37:18,500 --> 00:37:22,080 وجود دارد همیشه در least-- خواهد بود تعداد آنها نمی تواند کمتر از یک، 715 00:37:22,080 --> 00:37:25,910 از همیشه وجود دارد حداقل به نام برنامه را اجرا کنند. 716 00:37:25,910 --> 00:37:32,040 بنابراین و argv 1 راب را در ی argv 1 چاپ و سپس بر روی خط جدید "راب." 717 00:37:32,040 --> 00:37:36,350 >> بنابراین در تکرار اول از این حلقه، من 0 است. 718 00:37:36,350 --> 00:37:39,090 ی argv 0 نام برنامه است. 719 00:37:39,090 --> 00:37:40,010 نقطه بریده بریده ی argv 1. 720 00:37:40,010 --> 00:37:43,770 و پس از آن و argv 1 اول من است آرگومان خط فرمان است که راب. 721 00:37:43,770 --> 00:37:45,920 در این مرحله، ما برابر با تعداد آنها هستند. 722 00:37:45,920 --> 00:37:48,210 ما از شکستن حلقه و ما در حال انجام است. 723 00:37:48,210 --> 00:37:53,940 بنابراین این برای یک خودسرانه کار خواهد کرد تعداد آرگومان خط فرمان. 724 00:37:53,940 --> 00:37:58,550 توجه داشته باشید آن را چاپ و argv 0، ی argv 1، 2 و argv، argv را 3، 4 و argv. 725 00:37:58,550 --> 00:38:00,150 و هیچ ی argv 5 وجود دارد. 726 00:38:00,150 --> 00:38:01,460 تعداد آنها به 5 برابر است. 727 00:38:01,460 --> 00:38:06,960 بنابراین در argc-- در من برابر با 5، ما از شکستن حلقه. 728 00:38:06,960 --> 00:38:07,950 باشه. 729 00:38:07,950 --> 00:38:11,315 بنابراین سوال که قبل از ما در در یک مثال پیچیده تر نگاه می کنید؟ 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> بنابراین و argv 2. 732 00:38:16,860 --> 00:38:17,830 خیلی خوب. 733 00:38:17,830 --> 00:38:20,610 بنابراین ما در حال هنوز هم چاپ استدلال خط فرمان. 734 00:38:20,610 --> 00:38:23,170 اما در حال حاضر متوجه ما برای حلقه تو در تو. 735 00:38:23,170 --> 00:38:24,670 بنابراین آنچه که این انجام می دهند؟ 736 00:38:24,670 --> 00:38:28,430 بنابراین اولین حلقه در حال انجام است دقیقا آنچه در آن قبل از انجام. 737 00:38:28,430 --> 00:38:30,950 ما هنوز در حال حلقه بیش از هر آرگومان های خط فرمان، 738 00:38:30,950 --> 00:38:34,260 اما در حال حاضر این loop-- دوم ایم همچنین قبلا چیزی شبیه این دیده می شود. 739 00:38:34,260 --> 00:38:38,600 وقتی که او بیش شد تکرار Zamyla چاپ Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 بنابراین این حلقه دوم برای INT j برابر 0، N برابر strlen و argv براکت من. 741 00:38:44,816 --> 00:38:49,170 >> بنابراین اجازه دهید برای اولین بار فکر می کنم the-- اجازه دهید از طریق راه رفتن. 742 00:38:49,170 --> 00:38:53,560 بیایید فکر می کنم آنچه را که کامپیوتر آیا اگر من فرار این برنامه به عنوان فقط نقطه 743 00:38:53,560 --> 00:38:56,030 بریده بریده ی argv داش 2. 744 00:38:56,030 --> 00:39:03,590 بنابراین اگر من فرار این کد، سپس تعداد آنها در حال رفتن به برابر با 1 باشد. 745 00:39:03,590 --> 00:39:07,050 و رشته argv-- تنها وجود دارد رفتن به یکی از شاخص در argv، 746 00:39:07,050 --> 00:39:12,370 و که رفتن مساوی به نقطه باشد بریده بریده ی argv 2-- نام برنامه. 747 00:39:12,370 --> 00:39:19,170 >> OK، بنابراین در حال حاضر من برابر با 0، من کمتر از 1، من به علاوه به علاوه برای INT j برابر 0، 748 00:39:19,170 --> 00:39:23,880 N برابر strlen و argv براکت 0، بنابراین در تکرار اول از این حلقه. ی argv 749 00:39:23,880 --> 00:39:27,250 براکت 0 اسلش دات و argv 2 است. 750 00:39:27,250 --> 00:39:29,320 پس چه طول آن رشته است؟ 751 00:39:29,320 --> 00:39:32,480 خوب، نقطه اسلش A-R-G-V داش 2. 752 00:39:32,480 --> 00:39:35,020 بنابراین strlen که خواهد بود 8. 753 00:39:35,020 --> 00:39:37,500 بنابراین j برابر 0، N برابر با 8. 754 00:39:37,500 --> 00:39:39,530 تا زمانی که J کمتر از 8، J ++ است. 755 00:39:39,530 --> 00:39:44,080 و با که ما در حال رفتن به چاپ یک شخصیت، که 756 00:39:44,080 --> 00:39:47,350 ی argv براکت من پرانتز j است. 757 00:39:47,350 --> 00:39:49,826 >> بنابراین تنها من صفر است. 758 00:39:49,826 --> 00:39:51,700 ما هنوز هم تنها یک داشته آرگومان خط فرمان. 759 00:39:51,700 --> 00:39:53,890 در تکرار اول از حلقه for، ما 760 00:39:53,890 --> 00:39:56,950 رفتن به چاپ ی argv براکت 0 براکت 0. 761 00:39:56,950 --> 00:39:58,325 و سپس J است که به افزایش است. 762 00:39:58,325 --> 00:40:01,650 و ما در حال رفتن به چاپ ی argv براکت 0 براکت 1. 763 00:40:01,650 --> 00:40:04,150 و پس از آن و argv براکت براکت 0 2. 764 00:40:04,150 --> 00:40:09,030 >> بنابراین این اولین برخورد ما است از آرایه های چند بعدی. 765 00:40:09,030 --> 00:40:12,770 پیش از آن یاد داشته باشید که من گفتم که از لحاظ فنی و argv است 766 00:40:12,770 --> 00:40:15,950 آرایه ای از آرایه از شخصیت های. 767 00:40:15,950 --> 00:40:24,360 بنابراین در اینجا اگر من چیزی شبیه به گفت رشته ها ی argv برابر براکت من، 768 00:40:24,360 --> 00:40:29,590 و سپس به من گفت، براکت J، این انجام می شود همین است. 769 00:40:29,590 --> 00:40:31,960 در حال حاضر، شما دیده ام پیش براکت J. 770 00:40:31,960 --> 00:40:36,680 که فقط دسترسی به j ام شخصیت این رشته است. 771 00:40:36,680 --> 00:40:48,010 بنابراین با این، ما در حال گرفتن j ام شخصیت و argv i ام. 772 00:40:48,010 --> 00:40:51,450 >> پس چه باید این در نهایت خروجی؟ 773 00:40:51,450 --> 00:40:53,210 را ی argv 2. 774 00:40:53,210 --> 00:40:54,730 این کامپایل. 775 00:40:54,730 --> 00:40:56,340 نقطه بریده بریده ی argv 2. 776 00:40:56,340 --> 00:41:03,790 "راب ماریا هانا" و ما برخی از اتاق. 777 00:41:03,790 --> 00:41:07,050 بنابراین ما می بینیم که این خروجی نقطه بر روی خط و بریده بریده خود را 778 00:41:07,050 --> 00:41:08,920 در خط خود و در خط خود را دارد. 779 00:41:08,920 --> 00:41:11,260 آن را چاپ کردن هر شخصیت فردی 780 00:41:11,260 --> 00:41:12,950 هر آرگومان خط فرمان. 781 00:41:12,950 --> 00:41:15,960 و سپس در بین آنها، از آنجا که این خط جدید 782 00:41:15,960 --> 00:41:19,380 ما در حال چاپ را در اینجا، در بین آنها آن را یک خط جدید را چاپ کنید. 783 00:41:19,380 --> 00:41:24,540 >> بنابراین این شبیه به ی argv خط تیره قبل 1، 784 00:41:24,540 --> 00:41:26,459 که هر یک از چاپ آرگومان خط فرمان، 785 00:41:26,459 --> 00:41:28,500 اما در حال حاضر ما در حال چاپ استدلال خط فرمان 786 00:41:28,500 --> 00:41:31,950 و پس از آن تکرار از طریق هر یک شخصیت هر آرگومان خط فرمان 787 00:41:31,950 --> 00:41:35,400 برای دریافت این خروجی. 788 00:41:35,400 --> 00:41:36,870 باشه؟ 789 00:41:36,870 --> 00:41:40,570 بنابراین سوال این؟ 790 00:41:40,570 --> 00:41:45,130 >> یک نکته جالب توجه این است که خط فرمان arguments-- 791 00:41:45,130 --> 00:41:49,990 به طوری که آنها را با فاصله از هم جدا شده به عنوان شما به طور طبیعی انتظار می رود آنها را به. 792 00:41:49,990 --> 00:41:53,050 بنابراین یک رشته می تواند فاصله ها را در آن داشته باشد. 793 00:41:53,050 --> 00:41:57,380 این فوق العاده مهم نیست، اما اگر من استدلال خط فرمان سوم آنها هم 794 00:41:57,380 --> 00:42:01,226 به یک فضای در آن، پس از آن من چیزی شبیه به این می گویند. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 باشه؟ 797 00:42:05,550 --> 00:42:12,190 بنابراین این در حال حاضر هنوز هم تنها دارای سه خط فرمان arguments-- خوبی 4. 798 00:42:12,190 --> 00:42:17,620 نقطه بریده بریده ی argv داش 2، راب، ماریا، و هانا بلومبرگ. 799 00:42:17,620 --> 00:42:18,320 باشه. 800 00:42:18,320 --> 00:42:19,310 سوال در مورد این؟ 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> هیچ چیز خاصی وجود دارد در مورد فضای خالی است. 803 00:42:24,894 --> 00:42:27,810 این فقط اتفاق می افتد که می شود خط فرمان رفتار شخصیت فضایی 804 00:42:27,810 --> 00:42:29,226 عنوان چگونه هر یک از استدلال شما هم جدا کنید. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 خیلی خوب. 807 00:42:33,000 --> 00:42:39,950 بنابراین پس از آن مجموعه ای مشکل two-- شما در حال رفتن به 808 00:42:39,950 --> 00:42:43,240 به دنبال در رمزنگاری کلید مخفی. 809 00:42:43,240 --> 00:42:47,700 بنابراین، شبیه به این مثال ما از یک داستان کریسمس را دیدم، 810 00:42:47,700 --> 00:42:52,840 شما در حال رفتن به اجرای برخی الگوریتم های که، با توجه به یک پیام، 811 00:42:52,840 --> 00:42:55,560 شما در حال رفتن به قادر به رمز در آوردن آن پیام 812 00:42:55,560 --> 00:42:58,730 که تنها کسی که با مخفی که کلید، با حلقه رسیور، 813 00:42:58,730 --> 00:43:01,090 باید قادر به رمزگشایی می شود. 814 00:43:01,090 --> 00:43:04,839 >> به طوری که نسخه استاندارد است. 815 00:43:04,839 --> 00:43:07,130 شما در حال رفتن به اجرای شود دو نسخه متفاوت است. 816 00:43:07,130 --> 00:43:09,620 اگر شما اتفاق می افتد را به یک نگاه در هکر edition-- در حال حاضر، 817 00:43:09,620 --> 00:43:12,600 ما در حال رفتن به شما یک رشته مانند این، 818 00:43:12,600 --> 00:43:15,240 که نشان دهنده یک رمز عبور رمزگذاری شده است. 819 00:43:15,240 --> 00:43:19,990 بنابراین هدف شما این است برای کشف کردن رمز عبور رمزگشایی چه چیزی است. 820 00:43:19,990 --> 00:43:26,950 در حال حاضر این است که در واقع چگونه کلمه عبور در بسیاری از رایانه ها ذخیره می شود، 821 00:43:26,950 --> 00:43:31,290 و آن را فقط این فروشگاه رشته تصادفی از شخصیت های. 822 00:43:31,290 --> 00:43:34,440 شما باید به شکل از چگونه برای به دست آوردن از این رشته تصادفی از شخصیت 823 00:43:34,440 --> 00:43:36,140 به کلمه عبور اصلی چه بود. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> و در نهایت، پس از این مجموعه ای مشکل، شما باید 826 00:43:43,290 --> 00:43:46,100 قادر به درک این بدان معنی. 827 00:43:46,100 --> 00:43:51,650 بنابراین به شما خواهد آموخت که چگونه به رمزگشایی این نوع از رشته تصادفی. 828 00:43:51,650 --> 00:43:56,390 به طور مشابه، اگر شما از هفته به یاد داشته باشید 0، شما ممکن است این URL دیده می شود. 829 00:43:56,390 --> 00:44:00,210 و شما باید قادر به رمزگشایی این در نهایت. 830 00:44:00,210 --> 00:44:04,810 شما ممکن است خوشحال می شود وقتی که شما رمزگشایی آن و کلیک بر روی لینک. 831 00:44:04,810 --> 00:44:05,700 خیلی خوب. 832 00:44:05,700 --> 00:44:06,591 که آن را برای امروز. 833 00:44:06,591 --> 00:44:12,095 بنابراین شما می بینید در هفته آینده! 834 00:44:12,095 --> 00:44:18,315 >> [پخش موسیقی الکترونیکی] 835 00:44:18,315 --> 00:47:15,619