SPEAKER: OK، بنابراین، شما آن را باور نمی کند، اما در هفته گذشته، روز دوشنبه، در پیرس، I در زیر زمین بود. من هرگز به سوراخ بروید. و من به عقب هرگز دوباره، چرا که من چیزهای من به تنهایی برای ترک، مانند، پنج دقیقه و یک نفر کامپیوتر و من من به سرقت برده تلفن خارج از کوله پشتی من. این بدان معناست که من آن را کردم به عقب، و پس از کمتر از یک هفته بعد دوباره آن را سرقت رفت. و سپس آن را روشن کردم - یافتن آیفون من ادامه می دهد به سودمند. بنابراین من به تشویق شما را به استفاده از آن نیست. این تبدیل در یک بار، و آن را در MIT بود، مانند 15 دقیقه بعد، و شخص نام این شماره تلفن را که نشان داد در من AT & T ورود به سیستم تماس بگیرید. بنابراین من آنلاین شد، به نام که تلفن تعداد، و آن را مستقیما به این رفت پاسخ دادن به دستگاه در زبان اسپانیایی است. و من نه از آن از سال شنیده می شود. بنابراین من تا به حال برای دریافت جدید کامپیوتر و تلفن. من می دانم. آره. اما اگر شما بچه ها می خواهید به تراشه به من صندوق کامپیوتر پس از این، به همین دلیل است من شما را در اینجا مطرح کرده ام. فقط شوخی. اما این واقعا غم انگیز و دردناک بود. اما این همه پشت در حال حاضر، و به همین دلیل است -p مجموعه 8 زمان برد، چرا که من یک کامپیوتر را ندارد. و کسی آن را دزدید. و من ایمیل فرستاده شده، درخواست آنها درجه می-p مجموعه ای 8 کنید. اما آنها گفتند: نه. و من مانند، می تواند من کامپیوتر من به عقب؟ و آنها مانند باشی. فقط شوخی. OK. در این بخش نهایی ما است، و من یک زن و شوهر از - ما تنها سه دارند همه چیز در دستور کار. ما قصد داریم به بحث کمی در مورد راهنمای Q. سپس ما در حال رفتن به صرف 15 دقیقه بر روی یک نسخه ی نمایشی سرد. سپس ما در حال رفتن به همه می گویند خداحافظی به یکدیگر است. شما واقعا نیاز به کامپیوتر خود را ندارد و یا یک قلم و کاغذ برای یادداشت برداری، و یا به دنبال همراه. بنابراین من فرض اگر شما کامپیوتر شما تا، سپس شما را در فیس بوک است. تنها گفتن. مگر در مواردی که شما در حال پر کردن راهنمای Q، که برای اولین بار. راهنمای Q باز است. شما یک ایمیل در مورد آن داشته ایم. هنگامی که همه چیز Q است که در ارائه پایان سال، من همه از دریافت نظرات Q در نمرات از همه که انتخاب را به من بازخورد بدهد. و تا زمانی که شما در Q بروید - من نمی دانم اگر شما می توانید این کار، جف، دلیل این که شما دانشجوی فرمت هستیم. اما زمانی که شما در Q بروید، اگر شما ندارد قبل از انجام آن، شما انتخاب خود را معلم است که دیوید مالان. شما باید برای او انجام دهد. و سپس شما می توانید TFS انتخاب کنید. و شما می توانید به عنوان بسیاری از را انتخاب کنید TFS به عنوان شما می خواهید. اما 60 از ما وجود دارد. شما لازم نیست به انتخاب همه. شما فقط می توانید من را انتخاب کنید، و یا فقط انتخاب کنید چند نفر دیگر، اگر شما می خواهید، به آنها بازخورد نیز هست. و سپس شما را دریافت نمرات در تمام این محور های مختلف، و سپس شما می توانید ترک بازخورد به آنها. و سپس، مانند یک ماه بعد، من تمام است که بازخورد دریافت کنید. و درست مثل بازخورد شما بوده ام به من در طول ترم، I خواندن تمام آن. و این واقعا مفید است، و آن را کمک می کند من به عنوان یک معلم و به عنوان رشد فردی است. بنابراین، لطفا، برداشتن برخی از زمان برای این کار. ما فقط در حال رفتن به اینجا برای مثل، 30 دقیقه. بنابراین اگر شما می خواهید، در پایان از این، به را پنج دقیقه، و فقط با پر کردن Q، به دلیل آن را نمی کشد زمان هیچ بیشتر از آن. این نیز می تواند فوق العاده، و شما دریافت نمرات خود را سریع تر اگر شما با پر کردن Q. بنابراین بسیاری از شما انجام داده اند که قبل از - و یا نه، در حدود نیمی از شما انجام داده اند که قبل از. اما اگر شما یک دانشجوی سال اول هستید، این چیزی است که که است. این را برای همه کلاس همان. آیا آن را. این پنج دقیقه طول می کشد. اما همچنین، اگر شما آن را انجام دهید کمی به طور جدی، که بدترین چیز نمی در جهان، چرا که من قطعا آن را جدی بگیرید. بنابراین اگر شما به من یک صورت خندان را ترک کنند، من سپاسگذار خواهند بود که. اما من همچنین قدردانی اگر شما من بیش از یک صورت خندان را ترک کرد. اما آن را به شما است. من نمی توانم به شما بگویم - و یا مانند یک لبخند بزرگ روبرو هستند، با سرمایه D. که می خواهم حتی بهتر باشد. OK، که همه من برای Q. اگر شما هر گونه سوال، شما می توانید بپرسید من، اما خود به توضیح بسیار. فقط، لطفا، آن را پر کنید. من واقعا آن را درک، و آن را به معنای زیادی به من. OK، این چیزی است که ما قصد داریم به صرف 15 دقیقه رفتن را از طریق. من قصد دارم به شما چند کد نشان می دهد. من فکر می کنم این واقعا سرد است، و این مرا بیشتر کردم در علوم رایانه هیجان زده. بنابراین من امیدوارم که آن را انجام خواهد داد همین کار را برای همه شما. ما می رویم به باز کردن - و این همه کد من برای شما بعد ارسال کنید. اما ما فقط رفتن به باز کردن - من در ترمینال من - ما قصد داریم برای باز کردن این برنامه به نام [؟ MySum. ؟] آیا می توانم هر کسی به عنوان خوانده شده که، یا باید من آن را تر کند؟ آیا می توانم هر کسی به من بگویید چه این کد انجام وقتی که من آن را اجرا کنید، و یا آنچه این برنامه انجام خواهد داد که من آن را اجرا کنید؟ [؟ AVI،؟] شما چه فکر میکنید آن را انجام دهید؟ جویدن به پایان برسد. شما باید با بحث نیست دهان خود را باز. یک مدعو: آیا آن را یک دسته از استدلال، پیدا کردن حاصل جمع آنها بازگشت خلاصه، و سپس آن را چاپ کنید؟ و یا آن را در دو آرگومان می گیرد، و سپس آن را [نامفهوم]. و سپس آن را چاپ هر نتایج به دست آمده. SPEAKER: بستن، واقعا نزدیک است. هر کسی می خواهید برای اضافه کردن به [؟ چه فرمت Avi؟] گفت؟ آیا شما نیاز به این برنامه هر آرگومان خط فرمان؟ حضار: نه SPEAKER: شماره چه اتفاقی می افتد اگر شما آن را نمی دهد هر آرگومان خط فرمان؟ من فقط ارسال MySum بریده بریده نقطه. یک مدعو: 1 به علاوه 2 برابر 3. SPEAKER: 1 به علاوه 2 برابر 3. و آن را از چاپ است. این دقیقا همان سمت راست. شما که چاپ F را ببینید خط در پایین. آن را به نسخه قابل چاپ کردن، ب، و سپس حاصل جمع a و b. و من حدس می زنم شما فرض کنیم که مجموع درست کار کند. فرض خوب. OK و چه اتفاقی می افتد اگر من آن چه استدلال را؟ [؟ مانو؟ ؟] رسید آن را می خواهیم اضافه کردن به هر آرگومان اول است که به ب. و یا به 2، متاسفم. SPEAKER: راست، به 2. آیا کسی می داند چه strtol می کند؟ این اساسا atoi. Atoi است که در واقع یک نسخه فانتزی از - و یا نسخه ساده تر از strtol. اما آن را در واقع با استفاده از strtol. و متوجه شدم که به خاطر من می خواستم چیزی شبیه به atoi، و سپس وقتی که من به atoi، من در اینجا به عنوان خوانده شده پایین. و من در بر داشت "این رفتار همان "strtol است. پس از آن اساسا atoi برای تمام مفاهیم و اهداف. و شما می بینید من حتی از تهی و 10. این در واقع اجازه می دهد تا شما را به یک رشته، و تبدیل آن به یک عدد باشد، و را انتخاب کنید چه پایه می خواهید به انجام آن شوید بنابراین این پایه 10 حق در اینجا است. من می توانم برای اعشاری پایه دو انجام داده اند، پایه 16 برای مبنای شانزده. آن را کاملا سرد. اما داستان کوتاه مدت، این طول می کشد دو اعداد و آنها را با هم می افزاید. بنابراین اجازه دهید آن را اجرا کنید. و شما نیز متوجه خواهید شد، وجود دارد برخی از چیزهایی است - بنابراین من یک Makefile حق در اینجا، و اگر شما باز که، بعضی چیز ها شما متوجه متفاوت است. به طور خاص، این بحث حق در اینجا، شما احتمالا را دیده اند که قبل از. به طور کلی، ما همه چیز کامپایل با فاصله صفر، صفر است. داش صفر، صفر، به معنی انجام نمی هر گونه بهینه سازی، کامپایلر. سعی نکنید و هر چیزی فانتزی، و یا را هر چیزی اجرا سریع تر، و یا از متغیر های که لازم است، خلاص شوید. این بهینه سازی کد را نه در همه، من برای سطح سوم درخواست بهینه سازی. پس من کامپایلر درخواست را به انجام بسیاری از بهینه سازی. شما می توانید در makefile در تغییر است که زمانی که شما باید این کد، اگر شما می خواهید برای دیدن چیزهای مختلف. که ما آن را در یک ثانیه نشان می دهد. بنابراین ما جمع من 1 به علاوه 2 به علاوه 3 را اجرا کنید. یکی دو آرگومان به من بدهد. یک مدعو: 4 و 5. SPEAKER: 4 و 5. متشکرم. بزرگ، کار می کند. برخی از استدلال های خوب دیگر چه هستند را امتحان کنید، مطمئن شوید این کار می کند؟ هر کسی؟ یک مدعو: 0. SPEAKER: 0 و؟ یک مدعو: منفی 3. SPEAKER: این کار می کند. اما کسانی که انتخاب های خوبی بودند. OK، پس بیایید به عقب برگرده اینجا. این mysum.c است. شما باید توجه کنید همچنین چیزی وجود دارد نام sumfunction.c. و این می گوید، آه، چیزی وجود دارد تعریف شده در sumfunction.c. من این فایل را در اینجا شامل نمی شود چون من لازم نیست. اما من آن را پیوند دارند را در زمانی که من کامپایل، که شما متوجه است. اجازه دهید تا رفته. ما شاهد بودیم زمانی که ما mysum، سمت راست وارد وجود دارد، ما در دوگانه از مرتبط sumfunction.o. و من فایل هدر نیاز ندارد چرا که، البته، وجود دارد اعلان تابع. بنابراین شدید عبارتند از به طور معمول تنها می گذارد در اعلان تابع. در اینجا من فقط آن را قرار داده ام مستقیم در کد. و بنابراین من نیاز به انجام پیوند می باشد در دودویی، که من انجام دهد. هر گونه حدس بزند برای چه است در sumfunction.c؟ چه کد من نوشته شده است در sumfunction.c؟ یک مدعو: [نامفهوم]. SPEAKER: هر گونه حدس بزند؟ آره؟ یک مدعو: من فکر می کنم، تعریف برخی از [نامفهوم]. SPEAKER: بله. بنابراین من نوشتن جمع اعضای هیات هوشمند. من نوشتن این خط، و پس از آن من باز آکولاد بسته آکولاد. شما چه فکر میکنید من در داخل آن ارسال آکولاد، در داخل آن تابع؟ آره؟ یک مدعو: بازگشت برابر. PROCESSOR: این یک حدس است واقعا خوب است. چه کسی فکر می کند [؟ مانو؟] درست است؟ این گزارش می گوید بازگشت به علاوه ب. OK، نه همه. [؟ Akshar،؟] شما، بیش از حد؟ شما مطمئن هستید؟ OK. چه؟ یک مدعو: شما آن را وارد کردید اشتباه است. SPEAKER: نه، من نیست. آره، فقط شوخی. حق با شماست. این دقیقا همان چیزی است که آن را می گوید. این بازگشت به علاوه ب. که باعث می شود بسیاری از حس. خوب، اجازه دهید به عقب برگرده اینجا. ما می بینیم که چگونه هدر - که نوع بازگشت است. به یاد داشته باشید، ما آن روز دیده ام یک، بازگشت نوع تابع، اما می رود قبل از نام تابع هوشمند. در اینجا، من هوشمند نوشته شده است. شما چه فکر میکنید اتفاقی خواهد افتاد اگر در این تابع، من نمی هوشمند نوشتن نیست، اما من ارسال بدون علامت؟ تفاوت، البته، این بود که بدون علامت نشان دهنده تنها مثبت اعداد صحیح و هوشمند می تواند مثبت یا منفی. بنابراین من از بازگشت تغییر داده اید نوع این تابع. این کد می کند مطابقت ندارد این بازگشت در اینجا تایپ کنید. شما چه فکر میکنید اتفاق خواهد افتاد وقتی که من کامپایل؟ شما باید به من داد. بدون فریاد. چه در مورد زمانی که من این برنامه را اجرا کنید؟ اجازه دهید قبل 0 منفی انجام 3، یا منفی 1. این هنوز هم کار می کند، حتی اگر من گفت: آن را بازگشت به یک عدد صحیح بدون علامت. واضح است آن را بازگشت نمی یک عدد صحیح بدون علامت. این بازگشت یک عدد صحیح را امضا کردند. این بازگشت منفی 1. OK، که عجیب و غریب. چه اگر من در به در اینجا و در انجام این کار؟ پس من همه چیز را تغییر داده اید از اعضای هیات به امضا نشده. این فقط می تواند عدد صحیح بدون علامت است. اما ما هنوز فکر می کنم آن را اجرا کنید؟ حضار: بله. SPEAKER: این خواهد شد. این دیوانه. و ما در وضوح اختصاص عبور عدد صحیح، ما می توانیم دو پاس امضا عدد صحیح، آن را هنوز هم کار می کند. OK، هر گونه ایده ها و به همین دلیل آن را هنوز هم کار می کند، و یا چه خبر است؟ آره، جف. یک مدعو: این چیزی است که به انجام است با بهینه سازی خود را که شما برجسته شده است. SPEAKER: شماره ما می تواند به بهینه سازی را تغییر دهید، آن را هنوز هم کار می کنند. من می توانم که برای شما انجام دهد، اما - یک مدعو: من کلمه خود را برای آن را. SPEAKER: آره. اگر شما برای باز کردن در Makefile حق در اینجا، I بهینه سازی تغییر کرده است. بنابراین شما می توانید فاصله صفر، صفر انجام دهد. این هنوز هم کار می کنند. دیگر افکار؟ شما بچه ها همه انتظار می رود به کار، تا چرا شما انتظار می رود آن را به کار می کند؟ هیچ؟ سکوت. OK. من باید صبر کنید هفت ثانیه، چرا که من یک سوال. بنابراین نکته جالب در مورد C، و شما شما - احتمالا پیش از آن تجربه ممکن است، این ممکن نیست اولین بار. اما همانطور که همه شما می دانید، زمانی که من ارسال چیزی در C، آن را مثل ذخیره کند این در کامپیوتر است. این به عنوان یک و صفر را نجات داد. این از کد C به کد اسمبلی می رود. تا به هر کسی دیده می شود کد اسمبلی، قبل از، کد اسمبلی ماشین؟ ما به در یک ثانیه نگاه کنید. این از کد C به کد اسمبلی می رود. و شما بچه ها می دانید مراحل از مجموعه. شما تا به حال به حفظ که برای مسابقه یک، و سپس آن را ارسال کردن در مسابقه صفر است. اکثر مردم به آن اشتباه است. من فکر می کنم شما بچه ها آن را به میخ. اما، شما بچه ها هستند که بهترین بخش برای آزمونها، به هر حال. که بسیار جذاب است. آن را به شما صدمه دیده است. آیا نمی شود نگران است. اما این واقعا سرد است. کار خوب. پس از آن به زبان اسمبلی می رود، و سپس آن را به یک و صفر می رود. و یک و صفر بر نجات داد کامپیوتر، و این چیزی است که در ذخیره a.out، و یا در این مورد، فایل اجرایی. و کامپیوتر اجرا می شود یک و صفر. درست است؟ ما پیش از این یاد گرفته ام. بنابراین چیزی که جالب است، این علامت ایده، ایده از انواع نوع داده int بدون علامت، و غیره، و غیره، که در اینجا به زبان C. کسانی که وجود داشته باشد. اما نوع را در وجود ندارد یک و صفر. انواع حتی واقعا در وجود سطح زبان اسمبلی. به طوری که چیزی است که در C موجود به شمار می جهان اما در کامپیوتر وجود ندارد جهان یا پردازنده جهان است. که برخی از انتزاع است که C زبان شامل، به ما زندگی آسان تر است. بنابراین در پایان روز، من می توانم ارسال بسیاری از چیزهای مختلف در اینجا، و آن را چه تغییری ایجاد نمی کند. از آنجا که تنها وجود دارد در جهان C. این کار در وجود ندارد یک و صفر جهان است. و برنامه ما اجرا در یک و صفر جهان است. پس ذهن خود را به وضوح دمیده نشده است. اما من فکر می کنم که هوا خنک است. آره، جف. رسید بنابراین، اگر به جای آن از انجام هوشمند، شما کاراکتر. و شما - SPEAKER: بیایید آن را انجام دهد در یک ثانیه. رسید چون شما دریافت بدون علامت رفتن از منفی 128 به 127 یا 0 تا 255. SPEAKER: بنابراین کاراکتر مشکل ساز است. آیا کسی می داند که چرا کاراکتر خواهد بود مشکل، و آن را در واقع همه چیز در آنهایی که تغییر و صفر جهان؟ رسید: با توجه به اندازه کاراکتر. SPEAKER: حجم از کاراکترها 1 است. بنابراین بدون علامت نیز 4 بایت. بنابراین کاراکتر می تا چیز پیچ. اما آنچه که 4 بایت که است مربوط به کاراکتر؟ و یا در آن اضافه می کند یکی اضافه - شما می توانید یکی از شخصیت ها قرار داده بعد از کاراکتر. یک مدعو: چهار ستاره. SPEAKER: چهار ستاره دارای 4 بایت. بنابراین اجازه دهید کاری انجام دهد که یک ستاره کاراکتر است. پس این احتمالا کار می کنند، اما ما به انجام کاری حتی crazier این از این. به نظر من، می کنی. من در حال حاضر نوشته شده است یک تابع که برمی گرداند یک اشاره گر، و طول می کشد اشاره گر و مقدار بدون علامت - ما به تغییر این برگشت به اعضای هیات بنابراین ما نیست ساخت بیش از حد بسیاری از تغییرات در یک بار. و آن را تا یک آرایه به نام، شاخص در آرایه، و بازده آدرس. ما دیده ایم این اپراتور قبل از. این، چیزی است که شما فکر می کنید این است که برای انجام این کار، در عوض، زمانی که من آن را اجرا کنید؟ شما چه فکر میکنید آن را انجام دهید؟ هر گونه حدس بزند؟ یک مدعو: Segfault. SPEAKER: چه؟ Segfault؟ این یک حدس خوب است. تام می گوید: همین. هر گونه حدس بزند دیگر؟ چه کسی فکر می کند آن را به همین کار را؟ چه کسی فکر می کند آن را به segfault؟ این همین کار. متأسفم. اما، البته، ما در 1 و 2 قرار داده است. و آن هر دو معتبر است، درست است؟ بیایید ببینید، ما می توانیم به به مقام دوم از یک آرایه. اما اگر ما ساخته شده ب یک عدد منفی؟ این است که احتمالا حدس می زنم بهتر برای چیزی segfaulting. این هنوز هم کار می کند. OK، این است که اکنون دیوانه. این تابع مجموع به همان اندازه معتبر است. این که نتیجه ای مشابه به عنوان بازگشت a و b. آیا می توانم هر کسی توضیح دهد که چرا این خوب است خلاصه عملکرد، و یا چرا این کار می کند؟ آنچه اتفاق می افتد در اینجا؟ چرا این کار همان دقیق چیزی که به عنوان تابع جمع قدیمی ما؟ [؟ Akshar،؟] چه خبر است؟ رسید آنجا که هنگامی که شما به که آدرس به این حافظه محل - و هنگامی که شما آن & را داشتند، آن به آن آدرس حافظه می رود. و هنگامی که شما را به به ب، به شما نوع است حرکت گام از آن آدرس حافظه، شما در حال بازگشت است. بنابراین شما در واقع هستید، در واقع، اضافه کردن a و b [نامفهوم]. که در آن عملیات استاندارد در آن بازگشت؟ مانند، که در آن از پرانتز قرار می گیرند؟ آیا از بازگشت از آدرس در قبل و بعد از [نامفهوم]؟ SPEAKER: این خبر به صفحه اول به ب - و یا شاخص به - و پس از آن آدرس بازگشت. خوب، پس همه فهمیدند چه؟ Akshar؟] گفت و توضیح داد، چرا این کار می کند؟ من، اولین بار کسی نمی این به من توضیح داد. آیا کسی می خواهم یک عکس برای توضیح این؟ ما قصد داریم برای رسم یک تصویر، با هیچ نشانگر، فوق العاده است. یافت برخی از. بنابراین ما باید یک آرایه که یک سری از جعبه. اول یک شاخص 0، شاخص است 1، 2، 3، 4، نقطه، نقطه، نقطه. آرایه معمولی. و علاوه بر دارا بودن شاخص ها، همه آنها آدرس حافظه است. بنابراین اجازه دهید این آدرس حافظه را 13، 14، 15، 16، 17، و غیره. همه در اینجا تا کنون. بنابراین یک آدرس است. نام یک آرایه، یک اشاره گر شده است وجود دارد را نجات داد. این یک اشاره گر، آن را در محل حافظه از شروع آرایه. بنابراین اگر این آرایه بود، خواهد بود مقدار 13. و، البته، ما می تواند به هر مقدار ما می خواهیم. چهار ستاره، ما می توانیم به هر آدرس حافظه ما می خواهیم. ما می توانیم آن را به 0 را، ما می توانیم آن را منفی 1 - منفی 1 وجود ندارد، به طوری که احتمالا مشکل ساز است، اما شما را دیدم که هنوز هم کار می کرد. بنابراین ما می توانیم هر تعداد که ما می خواهیم را، هر آدرس حافظه ما می خواهیم. پس از آن، اعضای هیات ب می گوید، OK، به این تعداد از در آرایه مراحل. بنابراین اگر B برابر 2، و برابر با 13، ما در آدرس حافظه 13 است. و ما به دو مرحله در، و ما اینجا هستیم. و آن & را داشتند به معنی بازگشت آدرس این مکان. و آدرس است، البته، 15. بنابراین ما 13 به علاوه 2 یا ب به علاوه، که 15. سوال این است، هر چند - من متاسفم. آیا این روشن همه چیز برای این که چرا این کار می کند؟ یک مدعو: چرا آن را به کار رفتن - بنابراین شما می توانید یک آرایه و به یک شاخص منفی برود؟ SPEAKER: راست. پس ما اعداد منفی داد، به طوری که - این را حس هر چند، برای اولین بار، [؟ AVI،؟] برای شما؟ یک مدعو: آره من فقط [نامفهوم]، اما - SPEAKER: آره، این 15 بازگشت. اگر 13 بود، و ب 2، این 15 بازگشت. رسید بنابراین نمایه سازی صفر نمی کند تبدیل به یک مسئله، درست است؟ از آنجا که شما در حال حرکت از 0. SPEAKER: راست. بنابراین شما در حال حرکت - بنابراین اگر B 0، شما نمی هر نقطه حرکت می کند. و شما فقط می خواهم به بازگشت آدرس - اگر ب 0 بود، که در اصل بازگشت که آدرس یک. پس از گذشت در کاراکتر ستاره و بازگشت آدرس یک است فقط بازگشت، اساسا. OK، سوال این است که چرا اعداد منفی کار می کند؟ و این چیزی که واقعا جالب در مورد این این، چرا که این باید segfault. و این امر می segfault اگر ما چیزی شبیه به این بود. بیایید می گویند، اعضای هیات. بنابراین این کد به نظر می رسد یکسان و باید یکسان رفتار می کنند. اساسا، X یک متغیر زباله، و بنابراین این باید یکسان رفتار می کنند. اجازه دهید این را - اوه - در ستاره است. OK، ما در حال حاضر به گرفتن خطاها در اینجا، چرا که در حال حاضر برای رفتن به عصبانی به من، به خاطر آن در حال حاضر می داند چه آینده. به طور خاص، یک ثانیه. آدرس حافظه انباشته مرتبط با یک متغیر محلی است. اساسا، من قصد دارم به کامپایل این، و سپس من قصد دارم به خنثیسازی انجام آنچه که ما فقط. اما از آنجا که ما در واقع هرگز هستید دسترسی به آنچه که در حافظه مکان، آن را به segfault. ما در واقع هرگز در آنچه که به دنبال در کادر دوم و چه در هر جعبه از این آرایه. ما فقط می گویید، در اینجا آدرس است از چیزی که ما به دنبال و بازگشت به همان آدرس. ما در واقع هرگز به رفتن مجموعه ای که در آن مکان است. و چون ما هرگز حافظه لمس، ما در مشکل می کنید. ما segfault می کنید. اگر ما به سعی کردم، دوباره، لمس که حافظه، لمس آنچه که در یک یا ب بود - یا ب براکت، و با فرض 0 و - اگر 0 بود، حتی، که بسیار است بد است، چرا که ما نمی توانیم به تمام راه وجود دارد. اگر a و b هر دو 0 بود، و ما به تلاش لمس آنچه آنجا بود، سپس ما را در دردسر. اما اگر ما را لمس کنید چه چیزی وجود دارد، ما فقط آدرس بازگشت، آن است که در واقع رفتن به segfault به دلیل آن را به شما اجازه می دهد انجام این عملیات. این تنها دیوانه در شما می شود، و می شود فوق العاده عصبانی، زمانی که شما سعی می کنید و لمس واقعی حافظه و بازگشت چه در آن محل حافظه است. آیا این را حس؟ این تنها بخشی دیوانه از C. بنابراین، ما باید یکی بیشتر از این. چه کسی فکر می کند این سرد است؟ مردم بیشتر. این خوب است. OK، از این گذشته ما است. و من می خواهم شما به من بگویید که آیا یا نه شما فکر می کنم این است که برای انجام کار مشابه. من این در جایی نوشته شده است. من آنها را حفظ نیست. بیایید ببینید، 8، ب 4، 4، 2، 4، 0، 8، 0، 3، 4، 4، 2، 4، 0، 4. بنابراین این یک آرایه است، در حال حاضر، نه وظیفه. و آن را به یک آرایه این دلیل است که ما باید مربع براکت، آکولاد نیست. و آن را به یک آرایه از چه نوع است؟ هر کس، HMM؟ یک مدعو: اعداد هگزادسیمال آنها؟ SPEAKER: اما چه نوع C است؟ تمام آنها اعداد مبنای شانزده است. نوع C چیست؟ این به شما می گوید. یک مدعو: این کاراکتر بدون علامت است. SPEAKER: راست، کاراکتر بدون علامت. و دو عدد مبنای شانزده یک بایت است. پس این 1، 2، 3، 4، 5، 6، 7، 8، 9 بایت. این مجموعه ای از 9 بایت است. OK، شما احتمالا در حال حاضر پاسخ به این سوال. اما، چه چیزی شما فکر می کنم اتفاق می افتد وقتی که من این اجرا؟ من می گویم، دوباره، در mysum.c، من در انتظار یک تابع که دو عدد صحیح را می گیرد. و من به جای اعلام کرد که مبلغ آرایه ای از کاراکتر ها است. چه اتفاق خواهد افتاد وقتی که I / mysum اجرا و؟ خب، اول، بسیاری از شما احتمالا موافق است که - آه نه، فقط شوخی. What'd من اشتباه انجام دهید؟ اوه اوه. است که باید به آکولاد باشد. این که شما چگونه مقداردهی اولیه آرایه ای. من بد است. بنابراین ما در حال حاضر قبل از آن نوع دید یک انتزاع سطح C است، نه یک سطوح انتزاع کامپیوتر است. بنابراین بسیاری از شما احتمالا آن را به انتظار را، و یا فرض کنید که آن را به. اما آنچه که من. / mysum اجرا؟ چه اتفاقی خواهد افتاد؟ هر گونه حدس بزند؟ یک مدعو: این رفتن به نسخه قابل چاپ کردن یک کلمه. SPEAKER: این رفتن به نسخه قابل چاپ کردن یک کلمه. چه کلمه ای؟ یک مدعو: [نامفهوم]. SPEAKER: هر گونه حدس بزند دیگر؟ OK، از چاپ یک عبارت. شما می توانید هر عبارت را داشته باشد. خواهد شد که در کنار شما. هر کسی که دارای یک حدس های مختلف؟ آنا، چه حدس شما چیست؟ رسید آن را چاپ کنید - دو نامه، و یا [نامفهوم] یک نامه. SPEAKER: یک نامه. یک مدعو: آیا من می توانم شمارش بسیاری از [نامفهوم]؟ SPEAKER: نه. خوب، من قصد دارم آن را اجرا کنید. این که نتیجه ای مشابه. این می افزاید: دو عدد با هم. خوب، اجازه دهید عبور دو آرگومان. این استدلال را ندارد. بنابراین من نمی دانم که در آن می تواند احتمالا این استدلال دریافت کنید. اما اجازه دهید در 100 و 0 منتقل می کند. و اضافه می کند 100 و 0. این احمقانه است. من فکر می کنم تا. منفی 4، که با این نسخهها کار بیش از حد. شما می توانید هر چیزی که می خواهید انجام دهید. این یک تابع مجموع به همان اندازه معتبر است. این تابع جمع است. اما، نه، شما می گویید آن را آرایه ای از بایت. بنابراین آنچه در جریان است در اینجا؟ پس، دوباره، اجازه بازگشت به این ایده که ما در آغاز گفت. شما از کد های سطح C، به مونتاژ زبان، به یک و صفر. این مبنای شانزده است. اما این واقعا تنها بسیاری از آنهایی که و صفر. این 72 یک و صفر است، درست است؟ 72 یک و صفر. 9 کلمه در ادامه متن. هر بایت 8 بیت است. هر بیت یک و یا صفر است. بنابراین 72 آنهایی که یا صفر. من فقط آنها نوشته شده است، مثل این - به جای نوشتن آن را به عنوان بسیاری از یک و صفر. اما این را از سطح C بروید زبان، به مونتاژ زبان، به کد. و این از چاپ در کد، در جایی، این 72 یک و صفر که من اینجا نوشته شده است. بنابراین در جایی که - اجازه دهید به اینجا بروید - جایی در mysum، برنامه، وجود دارد است این 72 یک و صفر است که من نوشته شده و در آن گفت: برای ارسال. در حال حاضر، هر حدس بزند برای چه کسانی 72 یک و صفر چیست؟ یک مدعو: احتمالا همان چیزی که به عنوان یک به علاوه ب بازگشت. SPEAKER: احتمالا همان چیزی که به عنوان یک به علاوه ب بازگشت. بیایید بررسی کنید که. اجازه بدهید بفهمند که چگونه من این کار را کرد. بنابراین اگر شما برگردید در اینجا، من به شما بگویم برای اجرای این فرمان، objdump-S sumfunction.o. اجازه دهید به آن را اجرا کنید. objdump - OBJ، کمپرسی. در واقع می توان آن را به من بدهد هر آنچه من می خواهم برای دیدن. این می تواند به من زبان اسمبلی می دهد. این می تواند به من یک و صفر می دهد. این یک تن از پرچم. این یکی از ما در حال رفتن است به در حال حاضر استفاده کنید. نقطه - که شما در اسلاید را ببینید - پایتخت فاصله S می گوید، پراکنده، کد منبع - این خط را از C - با مونتاژ کد و با آنهایی که و صفر. و ما قصد داریم برای اجرای آن را در sumfunction.o. از آنجا که آن را ساده تر خواهد بود برای دیدن. باز هم - HMM؟ یک مدعو: شما آن را وارد کردید اشتباه است. SPEAKER: اما من می خواهم به آن روشن برای یک ثانیه. من برای اولین بار رفتن به باز کردن فقط sumfuntion.o. یک مدعو: شما آن را وارد کردید اشتباه اولین بار. SPEAKER: کلاسیک. مجموع - که یک کلمه سخت است، هر چند. شما می شود شگفت زده کرد. OK، بنابراین این sumfunction.o است. من نمی تواند حتی به شما بگویم. در بسیاری از صفر وجود دارد، به وضوح زیادی از صفر، و در برخی دیگر وجود دارد چیزهایی که صفر نیست. اما عمدتا صفر. به نظر می رسد در برخی از آنهایی که وجود دارد. بنابراین به وضوح، این سخت به خواندن است. که زبان باینری است. اکنون بیایید آن را باز کنید - چه؟ چه هستم من انجام شده؟ آیا من آن را به درستی هجی؟ OK، از این بی دست و پا است. من نیاز به یک دوم به شکل از آنچه من انجام می دهند اشتباه است. این یک خطا است. که عجیب و غریب. آه، که به همین دلیل است. من قصد دارم برای رفتن به اولیه ما یک، بنابراین ما می توانید در فروم کد شی از این. از آنجا که واقعا وجود دارد رفتن به نمی هر چیزی زمانی که ما فقط با قرار دادن یک و صفر شوید وجود دارد می کنیم. OK، بنابراین هر کسی می تواند این را ببینید. این تابع، به من گفت، را از خط C - منبع خط کد - با برخی از دستورالعمل مونتاژ. در اینجا خط کد منبع ما است. در اینجا یکی است، در اینجا دیگر. در اینجا آموزش مونتاژ است. این چیزی است که آنها شبیه. دستورالعمل نصب و راه اندازی - شما می توانید بیشتر از این یاد بگیرید اگر شما را دیگر کلاس های CS، اما آنها به طور کلی یک دستورالعمل. و پس از آن منبع و مقصد. و پس از آن در اینجا کد دودویی است که مربوط به مونتاژ دستورالعمل. همانگونه که مشاهده می کنید، این تابع مجموع، در پایان روز، سه است دستورالعمل مونتاژ. فقط سه. یکی ویدئویی - این m-O-v برای حرکت است. اضافه کردن غرفه برای اضافه کردن. و R-e-T مخفف بازگشت. به همین دلیل یک ویدئویی، یک افزودنی، یکی بازگشت. و این، اینجا، از صفر و یک آنهایی که به آن کد مطابقت دارد. بنابراین کسانی که صفر و یک، اگر شما می دانم آن، شما فقط می توانید آن را مستقیما وارد و سپس آن را انجام دهد یک چیز دقیق. از آنجا که، در پایان روز، تمام شما در حال اجرا یک سری طولانی از است صفر و یک. و این چیزی است که کد شما واقعا است. و دلیل - اجازه دهید نگاهی به یک چیز نگاه کنند. آیا من در Makefile باز؟ بنابراین اگر ما رفت و برگشت به فاصله صفر، صفر تا اینجا - با عرض پوزش، درجه سرمایه، سرمایه درجه صفر، صفر، صفر است. و ما را انجام داد، آن را هنوز هم همان کار می کنند. اما در حال حاضر شما متوجه است که یک وجود دارد دستورالعمل مونتاژ خیلی بیشتر. این به آن دلیل، دوباره، من پرسید: کامپایلر برای انجام هر گونه بهینه سازی نیست. پس من هنوز هم می تواند همه این را صفر و یک، و پرتاب آنها را در، و که کار می کنند. من فقط بهینه سازی، به دلیل آن را کمی آسان تر است، پس از آن، برای نوشتن که آرایه. اما این کار فقط به عنوان خوب. OK، ما قصد داریم به یک چیز نهایی، چرا که من فکر می کنم جالبترین بخش این است. حتی اگر همه به وضوح در حال حاضر دمیده و لال. ذهن ما دمیده. [نامفهوم] بنابراین، این از یک کلاس مختلف CS می باشد، که فوق العاده جالب، که من گرفته اند - CS61. من به شدت شما را تشویق به آن را. اما نکته جالب در مورد این واقعیت، که همه چیز فقط صفر و یک، است که همه چیز است صفر و یک. بنابراین شما می توانید یک فایل است که گرفتن صفر درست و آنهایی که شما می خواهید جایی در آن، و استفاده از آن بخش از صفر و یک به عنوان یک تابع مجموع. چه می توانم در آن چیست؟ منظورم این است که شما می توانید یک فایل تصویری را که دارای سری صحیح صفر و یک آنهایی که چاپ چیزی به یک تصویر. و یک برنامه ممکن است تفسیر است تصویر، اما شما می توانید آن را اگر تفسیر، شما می خواهید، به عنوان یک تابع مجموع. بنابراین اگر ما می خواستیم برای باز کردن، برای به عنوان مثال، این تصویر. بریم، سلام بچه گربه. تصویر فوق العاده کم است. در اینجا این است که رشته وجود دارد از صفر و یک. کسانی که 72 صفر و یک در این تصویر وجود داشته باشد. پس چه می توانم انجام دهم، پس از آن است، ارسال - من را به یاد داشته باشید که در آن آنها می باشد. من باید دریابید که در یک ثانیه. اما ما انجام می دهیم - به من اجازه پیدا کردن جایی که آنها هستند. یک ثانیه. اجازه دهید - یک مدعو: [نامفهوم]. SPEAKER: تشکر. بنابراین ما اگر این برنامه اجرا شود، که به جای آن در یک فایل می خواند، سپس آن را می رود در این شاخص در فایل. و بعد، دوباره، درست مثل mysum، دو عدد طول می کشد. ما می توانیم اعداد دقیقا همان اضافه کنید ما قبل از انجام شدند، می رود که به شما نشان دهد چگونه این واقعیت است که، در پایان روز، تمام این چیزها صفر و یک. و آن را فقط به چگونه شما را انتخاب کنید که آنها را تفسیر. و اگر شما در واقع نگاه در این تصویر - اجازه دهید در کمی زوم. آیا می توانم هر کسی آن را ببینید؟ شما در اینجا توجه، وجود دارد برخی از لکه های عجیب و غریب. بریم - این تصویر اصلی است. شما باید توجه کنید در اینجا هیچ لکه وجود دارد. این کد برای تابع جمع است، این است که لکه کمی سمت راست وجود دارد. و در واقع، دوباره، اگر شما اطلاعات بیشتر در این مورد، به شما متوجه است که این سلام بچه گربه، که حتی بزرگتر سیاه شدن، دارای کد است که می تواند بیش از یک را کامپیوتر اگر آن را محافظت نمی مناسب. پس در واقع شما می توانید این را اجرا کنید. من قصد ندارم آن را اجرا کنید در حال حاضر. اما شما می توانید این اجرا خوش آمدید زن سبک و جلف تصویر، و آن را می توانید بر روی کامپیوتر خود را. به طوری که همه برای نسخه ی نمایشی. آیا هر کسی هر گونه سوال، نظرات، نگرانی؟ من فکر می کنم این مسائل جذاب است. این الهام بخش من برای کسب اطلاعات بیشتر. من به شدت توصیه، اگر شما علاقه مند در تمام در CS، برای من صحبت کنید. حتی اگر من یک مطالعات اجتماعی هستم متمرکز، I CS هستم، متوسطه، پس من هنوز هم کمی می دانم. اما من قطعا می دانم چه کلاس ها شما باید بگیرند. من فکر می کنم این همه واقعا جالب است، و من شما را تشویق، قطعا، به اطلاعات بیشتر اگر شما علاقه مند است. OK، من یک چیز نهایی داشته باشد. متأسفم. هر گونه سؤال؟ من مکث و نه صبر کردن اگر کسی هر گونه سوال در مورد آن بود. آیا کسی خواهد بود متمرکز CS؟ و یا فکر کردن در مورد آن؟ یک، دو، سه، چهار. یکی از - تنها یکی. آنا سوی فقط این است مطرح مقتدرانه. OK، که هوا خنک است. آسام، چه می خواهید کاری انجام دهید؟ یک مدعو: [نامفهوم]. SPEAKER: کنستانتین؟ یک مدعو: فیزیک. SPEAKER: اوه، که سریع بود. شما تا به حال تجربه بد در CS50؟ [نامفهوم]، چه می خواهید کاری انجام دهید؟ یک مدعو: من هیچ نظری ندارم. SPEAKER: کوتاه و مختصر؟ یک مدعو: اقتصاد و یا CS. SPEAKER: اقتصاد و یا CS. تام؟ رسید من انجام آمار. SPEAKER: آمار؟ OK. شما را چه هستند؟ یک مدعو: ذخیره؟ SPEAKER: آره. یک مدعو: آمار. SPEAKER: آمار. اوه، وجود دارد که شما بروید. تام، بحث را به آلدن. امیلی، آنچه شما هستند؟ یک مدعو: پزشکی - SPEAKER: آیا شما در این بخش؟ حضار: نه SPEAKER: OK، که امیلی است. او دوست من است. واضح است که خوب است از یک دوست نیست، چرا که او یک زمان سخت به من می دهد. شما می توانید بهتر به من در مقابل از همه، دانش آموزان من - رسید من انجام می دهند راهنمای Q خود را. SPEAKER: واقعا؟ اوه اوه. OK، شما شگفت انگیز است. من شما را دوست دارم خیلی. آه پسر. به هر حال، من، شب گذشته، مثل همه چیز - من مطمئن هستم که همه به نظر می رسد واقعا در حال حاضر تاکید کرد. من نمی دانم، دانشجوی سال اول - در حال شما بچه ها استرس؟ من احساس تاکید کرد. آن را مانند، از رفتن به خانه بود برای شکرگزاری. دوست دارید، من قصد دارم به هستی انجام تمام این کارها. رسید آن خیلی متفاوت است. SPEAKER: آره، و به شما باز می گردد. جف، شما که راه را احساس نمی کند؟ یک مدعو: من فقط فکر من می خواهم کمی انجام دهد. SPEAKER: OK، بزرگ است. بنابراین من به پشت، و من ندارد هر چیزی انجام می شود. و این همه فوق العاده پر تنش باشد. و من نگران هستم، واقعا مربوط می شود، در مورد اینکه آیا یا نه من رفتن به پایان همه چیز من را داشته باشد. اما شب گذشته، من تاکید نمی شد، من فقط یک کمی غمگین بود. بنابراین من در مجله من در مورد نوشت: آنچه که من ناراحت بود. و من غمگین در مورد این بخش بود در این کلاس به پایان. بنابراین من فقط رفتن بود برای شما بچه ها به عنوان خوانده شده یک قطعه کوچک از مجله من، از شب گذشته. آیا می توانم برخی از دستمال سفره، برخی از بافت های از تام؟ نه، من قصد دارم به گریه. من گریه نکن. نه این که شما نمی توانید گریه، من فقط گریه نکن. من حتی نمی دانم اگر اشک من غدد کار - مجرای اشک آور. من در مدت زمان طولانی گریه کرد. یک مدعو: [نامفهوم]. SPEAKER: OK، به لطف. OK، یک مقدمه کمی وجود دارد - در برخی بخش های دیگر مجله من وجود دارد ورود، چرا که من به مجله سعی کنید هر شب قبل از اینکه به رختخواب کردم. من به شدت توصیه به نوشتن یادداشتهای روزانه. این کمک می کند تا شما روند چیز، و همچنین تواند بسیار سپاسگزار از روز خود را. و این باعث می شود آن را بسیار آسان تر به نگاه و در تاریخ روز خود و تحقق بخشیدن به آن بودند بسیاری از خوب وجود دارد چیزهایی که اتفاق افتاده است. حتی اگر شما احساس می کنید واقعا تاکید در شب و یا واقعا ناراحت و یا واقعا غم انگیز و یا خسته می شوند. اوه، خدای من. من حتی نمی دانم اگر آن را نوشته شده است که به خوبی به خاطر من آن را ویرایش نیست. اما ما آن را بخوانید. من معمولا نمی خوانند من مجله، بدیهی است. "فردا، من آخر آموزش بخش CS50 سال است. این دیوانه چگونه زمان سریع پرواز. با این حال، من تنها با نحوه های مختلف زده تجربه من تدریس در این سال بود از زمانی که من دانشجوی سال دوم بود. برای شروع، من قطعا می دانیم که مواد بهتر است. اما اولین گروه من نگو از دانش آموزان که. از همه مهمتر، با این حال، متوجه شدم که شادی که از جایگاه می آید در مقابل یک اتاق از چه شروع می شود به غریبه ها، اما به پایان می رسد به عنوان، در حداقل، دوستان در فیس بوک است نه یک اتفاق سال اول. در عوض، آن را از دانستن آن، در برخی از راه های کوچک، شما در حال کمک با استعداد، با ملاحظه، لذت، و مردم پرشور کمی بیشتر یاد بگیرند در مورد علم کامپیوتر است. شما در حال تغییر است که لامپ تنها کمی در سوکت خود را، به طوری که آن را قادر به درخشش روشن تر از شما، و یا آنها، می توانست در شروع ترم تصور می کرد. شما در حال کمک به نوبه خود آن اخم کردن را میآموزند صعودی کردن و پرسیدن سوال است که ارائه پشتیبانی، اما هنوز هم اجازه می دهد دانش آموزان به ایستادن در خود را دارند. مطمئنا اغراق نمی می گویند که این بخش های مورد علاقه من است بخشی از هفته است. و یا حتی که من دریغ می گویند، که همه، در 05:30 در هر هفته، دانستن که آن خواهید بود راه بیش از حد طولانی تا زمانی که ما دوباره ملاقات کند. با این حال، من فوق العاده به خدا را شکر می کنم هر کسی که به من داده شده این فرصت برای خدمت به دیگران است. به دیوید، برای صبر و اعتماد او. به فیلم و تولید خدمه، برای ساخت به من نگاه تا حدودی قابل احترام است. و مهمتر از همه، به دانش آموزان من، بدون که من می خواهم بدون هیچ دلیلی به صرف 10 ساعت تا بدانند بهترین راه به منظور جلب اشاره گر و یا پخش کردن جدول دلفین ها، از طریق جاوا اسکریپت. مثل همیشه، آن را یک نعمت است. " بنابراین با توجه به، با تشکر از شما بچه ها. من از همه شما خواهید دید در نمایشگاه CS50، و hackathon، اگر شما وجود دارد. و اگر سوالی دارید، من می چسبد اطراف تا هیچ بیشتر وجود دارد. اما من از شما متشکرم بچه ها برای یک سال فوق العاده است. [تشویق حضار] SPEAKER: من ممکن است گریه.