1 00:00:00,000 --> 00:00:11,320 2 00:00:11,320 --> 00:00:13,260 >> دیوید مالان: خوش آمدید و خوش آمدید به CS50. 3 00:00:13,260 --> 00:00:14,860 بنابراین این پایان هفته چهار است. 4 00:00:14,860 --> 00:00:16,680 فقط یک اعلام اول. 5 00:00:16,680 --> 00:00:19,600 بنابراین به اصطلاح پنجم دوشنبه است بالا آمدن این دوشنبه آینده. 6 00:00:19,600 --> 00:00:22,800 این فرصت برای تغییر است SAT / UNSAT: به نمره، و یا از 7 00:00:22,800 --> 00:00:24,130 درجه نامه SAT / UNSAT:. 8 00:00:24,130 --> 00:00:27,130 آزاردهنده، این فرآیند نیاز به یک امضا، دلیل این که شما باید برای پر کردن 9 00:00:27,130 --> 00:00:28,770 از یکی از کسانی که اضافه / قطره فرم های صورتی. 10 00:00:28,770 --> 00:00:31,680 >> از آنجا که از لحاظ فنی، SAT / UNSAT نسخه و نامه نسخه درجه 11 00:00:31,680 --> 00:00:33,320 دارای شماره مجزا کاتولوگ. 12 00:00:33,320 --> 00:00:34,240 اما هیچ معامله بزرگ است. 13 00:00:34,240 --> 00:00:36,620 فقط می آیند تا به من و یا به راب یا به لورن در هر نقطه. 14 00:00:36,620 --> 00:00:39,550 یا به ما ایمیل اگر شما نوع ندارد از کاغذ بازی که شما امروز به آن نیاز است، و ما 15 00:00:39,550 --> 00:00:43,410 مطمئن باشید به شما کمک کند را مراقبت از آن قبل از دوشنبه. 16 00:00:43,410 --> 00:00:45,780 >> همه حق است، بنابراین امروز - 17 00:00:45,780 --> 00:00:47,630 در واقع، یک بیت از اکو وجود دارد. 18 00:00:47,630 --> 00:00:51,070 آیا می توانیم تن من پایین کمی؟ 19 00:00:51,070 --> 00:00:51,730 OK را بزنید. 20 00:00:51,730 --> 00:00:54,850 بنابراین، امروز، معرفی می کنیم یک موضوع شناخته شده به عنوان اشاره گر. 21 00:00:54,850 --> 00:00:57,770 و من قبول دارم که این یکی از موضوعات پیچیده تر است که ما تمایل به 22 00:00:57,770 --> 00:01:00,960 پوشش در این کلاس، یا واقعا دوره مقدماتی است که با استفاده از C. 23 00:01:00,960 --> 00:01:05,510 >> اما کلمه من برای آن، به خصوص اگر ذهن خود را احساس می کند کمی بیشتر خم 24 00:01:05,510 --> 00:01:07,100 امروز و در هفته می آیند. 25 00:01:07,100 --> 00:01:10,340 این نماینده شما گرفتن نیست بدتر در این حالت فقط بدان معناست که 26 00:01:10,340 --> 00:01:13,360 این موضوع به ویژه پیچیده که قول می دهم، چند هفته 27 00:01:13,360 --> 00:01:17,610 از این رو، به نظر می رسد بیش از حد چشمگیری سر راست در نگاه به گذشته. 28 00:01:17,610 --> 00:01:18,720 >> من هنوز هم به این روز به یاد داشته باشید. 29 00:01:18,720 --> 00:01:22,190 من در سالن ناهار خوری الیوت نشسته بود، نشسته در کنار من TF Nishat مهتا، 30 00:01:22,190 --> 00:01:24,070 که ساکن خانه الیوت بود. 31 00:01:24,070 --> 00:01:26,340 و برای برخی از این دلیل، این موضوع فقط کلیک. 32 00:01:26,340 --> 00:01:29,430 که است که می گویند که من خیلی تلاش با آن را برای برخی از مقدار زمان، اما من 33 00:01:29,430 --> 00:01:33,610 بهترین من برای کمک به جلوگیری از هر گونه مبارزه با یک موضوع است که در نهایت 34 00:01:33,610 --> 00:01:34,580 بسیار قدرتمند است. 35 00:01:34,580 --> 00:01:37,350 >> در واقع، یکی از موضوعات ما را مورد بحث در هفته آمده است این است که 36 00:01:37,350 --> 00:01:41,130 امنیت، و چگونه شما می توانید در واقع بهره برداری از ماشین آلات در راه 37 00:01:41,130 --> 00:01:42,320 که در نظر گرفته نمی شد. 38 00:01:42,320 --> 00:01:45,850 و کسانی که بهره برداری معمولا نتیجه از اشکالات، اشتباهات است که ما 39 00:01:45,850 --> 00:01:49,740 مردم با برخی درک نیست را پیاده سازی اساسی 40 00:01:49,740 --> 00:01:52,250 جزئیات از طریق آن برنامه ها ساخته شده است. 41 00:01:52,250 --> 00:01:55,410 >> در حال حاضر به نظر می رسد بیشتر کاربر دوستانه، من فکر کردم من می خواهم 10 بازی 42 00:01:55,410 --> 00:01:59,680 پیش نمایش دوم یک claymation کوچک شکل به نام Binky که به آورده شد 43 00:01:59,680 --> 00:02:03,020 زندگی توسط یکی از دوستان ما در دانشگاه استنفورد، استاد نیک Parlante. 44 00:02:03,020 --> 00:02:06,753 پس اجازه دهید تا شما این را تیزر از Binky اینجا. 45 00:02:06,753 --> 00:02:09,520 >> [پخش ویدئو] 46 00:02:09,520 --> 00:02:10,380 >> ، با سلام، Binky. 47 00:02:10,380 --> 00:02:11,050 از خواب بیدار. 48 00:02:11,050 --> 00:02:13,610 این زمان برای تفریح ​​اشاره گر است. 49 00:02:13,610 --> 00:02:14,741 >> چه خبر؟ 50 00:02:14,741 --> 00:02:16,440 اطلاعات در مورد اشاره گر؟ 51 00:02:16,440 --> 00:02:17,928 اوه، goodie. 52 00:02:17,928 --> 00:02:18,920 >> [END پخش ویدئو] 53 00:02:18,920 --> 00:02:20,670 >> دیوید مالان است که دانشگاه استنفورد علم کامپیوتر است. 54 00:02:20,670 --> 00:02:23,194 بنابراین بیشتر در آمده است. 55 00:02:23,194 --> 00:02:24,930 >> [تشویق حضار] 56 00:02:24,930 --> 00:02:26,660 >> دیوید مالان: با عرض پوزش، نیک. 57 00:02:26,660 --> 00:02:30,680 >> به طوری که آخرین باری که ما در پایان یاد این مطلب یا داستان جالب واقعا هیجان انگیز است 58 00:02:30,680 --> 00:02:32,960 به موجب آن این تابع فقط کار نمی کند. 59 00:02:32,960 --> 00:02:34,960 حداقل به طور مستقیم آن را احساس مانند آن باید کار کند. 60 00:02:34,960 --> 00:02:37,600 نگران نباشید، مبادله ارزش از دو عدد صحیح. 61 00:02:37,600 --> 00:02:40,915 اما به یاد می آورند که زمانی که ما چاپ ارزش های اصلی در اصلی، و 62 00:02:40,915 --> 00:02:44,210 دو، آنها هنوز هم یک و دو و دو و یک است. 63 00:02:44,210 --> 00:02:46,070 >> پس اجازه دهید من در واقع تغییر دهید را به دستگاه. 64 00:02:46,070 --> 00:02:50,180 و نوشتم تا کمی از کد اسکلتی در پیشبرد اینجا، جایی که من ادعا می کنند که x 65 00:02:50,180 --> 00:02:52,500 خواهد شد 1، Y خواهد بود 2. 66 00:02:52,500 --> 00:02:54,810 من پس از آن نسخه قابل چاپ کردن هر دو خود ارزش با چاپ ج. 67 00:02:54,810 --> 00:02:57,540 >> من پس از آن ادعا می کنند که در اینجا ما قصد داریم به آنها مبادله. 68 00:02:57,540 --> 00:03:00,800 من یک نقطه خالی برای ما به سمت چپ پر در امروز در فقط یک لحظه. 69 00:03:00,800 --> 00:03:03,380 سپس، من قصد دارم ادعا می کنند که دو متغیر عوض شده است. 70 00:03:03,380 --> 00:03:04,770 سپس من قصد دارم برای چاپ آنها را دوباره. 71 00:03:04,770 --> 00:03:07,090 و بنابراین امیدوارم، من باید 1 را ببینید 2. 72 00:03:07,090 --> 00:03:07,380 2، 1. 73 00:03:07,380 --> 00:03:09,830 که فوق العاده ساده هدف در حال حاضر. 74 00:03:09,830 --> 00:03:12,430 >> پس چگونه ما در مورد مبادله دو متغیر؟ 75 00:03:12,430 --> 00:03:17,220 خوب اگر من پیشنهاد می کنم که این فنجان ممکن است نشان دادن حافظه در یک کامپیوتر است. 76 00:03:17,220 --> 00:03:19,070 این چند گزش است، این یکی دیگر از چند نیش است. 77 00:03:19,070 --> 00:03:23,260 آیا ما می توانستیم یک داوطلب در بالا می آیند و مخلوط ما مقداری نوشیدنی، اگر آشنا؟ 78 00:03:23,260 --> 00:03:23,920 بیا بالا. 79 00:03:23,920 --> 00:03:24,815 نام شما چیست؟ 80 00:03:24,815 --> 00:03:25,260 >> JESS: جس. 81 00:03:25,260 --> 00:03:25,690 >> دیوید مالان: جس؟ 82 00:03:25,690 --> 00:03:26,540 بیا بالا، جس. 83 00:03:26,540 --> 00:03:29,180 اگر برای شما مهم نیست، ما باید برای قرار دادن گوگل شیشه ای بر شما بنابراین ما می توانیم 84 00:03:29,180 --> 00:03:30,430 جاوید. 85 00:03:30,430 --> 00:03:32,800 86 00:03:32,800 --> 00:03:34,670 OK، شیشه. 87 00:03:34,670 --> 00:03:37,250 ضبط ویدئو. 88 00:03:37,250 --> 00:03:43,103 و خوب، ما خوب هستند با جس اینجا بروید. 89 00:03:43,103 --> 00:03:43,810 بسیار خوب. 90 00:03:43,810 --> 00:03:45,120 از ملاقات شما خوشبختم. 91 00:03:45,120 --> 00:03:47,720 >> بنابراین آنچه که من می خواهم شما را در اینجا - اگر شما می توانید، کاملا به سرعت - 92 00:03:47,720 --> 00:03:51,040 فقط به ما هرچه نصف لیوان پرتقال آب و نصف یک لیوان شیر، 93 00:03:51,040 --> 00:03:55,710 نمایندگی موثر اعداد 1 در یک فنجان و 2 در فنجان دیگر. 94 00:03:55,710 --> 00:04:01,380 95 00:04:01,380 --> 00:04:02,630 >> این است که به فیلم خوب است. 96 00:04:02,630 --> 00:04:04,910 97 00:04:04,910 --> 00:04:05,860 >> JESS: با عرض پوزش. 98 00:04:05,860 --> 00:04:06,330 >> مالان دیوید: نه، نه. 99 00:04:06,330 --> 00:04:08,703 آن را OK. 100 00:04:08,703 --> 00:04:10,120 خوب است. 101 00:04:10,120 --> 00:04:12,950 همه حق است، بنابراین ما باید چهار بایت ارزش آب پرتقال. 102 00:04:12,950 --> 00:04:14,460 ما آن را به نام ارزش 1. 103 00:04:14,460 --> 00:04:16,579 در حال حاضر چهار بایت دیگر به ارزش شیر است. 104 00:04:16,579 --> 00:04:18,519 آیا تماس بگیرید آن ارزش قائل 2. 105 00:04:18,519 --> 00:04:20,440 پس x و y به دست آمد. 106 00:04:20,440 --> 00:04:23,450 >> همه حق است، بنابراین در حال حاضر اگر کاری که در دست - برای شما، جس، در مقابل از همه 107 00:04:23,450 --> 00:04:24,270 از همکلاسی های شما - 108 00:04:24,270 --> 00:04:28,510 به مبادله مقادیر x و y از جمله که ما می خواهیم آب پرتقال در 109 00:04:28,510 --> 00:04:32,070 دیگر فنجان و شیر در این جام، چگونه ممکن است شما را - قبل از اینکه شما در واقع انجام 110 00:04:32,070 --> 00:04:34,020 - در مورد انجام این کار بروید؟ 111 00:04:34,020 --> 00:04:35,220 >> خوب، تصمیم عاقلانه. 112 00:04:35,220 --> 00:04:36,340 بنابراین شما نیاز دارید که حافظه کمی بیشتر. 113 00:04:36,340 --> 00:04:38,190 بنابراین به طور موقت اختصاص دهید فنجان، اگر شما خواهد شد. 114 00:04:38,190 --> 00:04:40,540 و در حال حاضر اقدام به مبادله x و y. 115 00:04:40,540 --> 00:04:52,950 116 00:04:52,950 --> 00:04:53,530 >> بسیار عالی است. 117 00:04:53,530 --> 00:04:54,420 بنابراین به خوبی انجام می شود. 118 00:04:54,420 --> 00:04:55,670 از شما بسیار سپاسگزارم، جس. 119 00:04:55,670 --> 00:04:59,520 120 00:04:59,520 --> 00:05:00,020 بفرمایید. 121 00:05:00,020 --> 00:05:01,950 یک سوغات کمی. 122 00:05:01,950 --> 00:05:04,350 >> OK، بنابراین بدیهی است که ایده فوق العاده ساده است. 123 00:05:04,350 --> 00:05:07,500 کاملا بصری است که ما نیاز به یک کمی فضای ذخیره سازی بیشتر - در این فرم، 124 00:05:07,500 --> 00:05:09,750 یک فنجان - اگر ما در واقع می خواهم به مبادله این دو متغیر است. 125 00:05:09,750 --> 00:05:11,110 بنابراین اجازه دهید که دقیقا. 126 00:05:11,110 --> 00:05:14,330 تا اینجا در بین جایی که من ادعا می کنند من رفتن به انجام برخی از مبادله، من 127 00:05:14,330 --> 00:05:15,720 برو جلو و اعلام دما. 128 00:05:15,720 --> 00:05:17,980 و من آن را به، می گویند، X برابر تنظیم کنید. 129 00:05:17,980 --> 00:05:21,110 >> سپس من قصد دارم برای تغییر مقدار * درست مثل جس در اینجا با 130 00:05:21,110 --> 00:05:23,200 شیر و آب پرتقال به برابر به y. 131 00:05:23,200 --> 00:05:27,460 و من قصد دارم برای تغییر Y برابر نه *، چون در حال حاضر ما خواهد بود 132 00:05:27,460 --> 00:05:29,530 گیر در یک دایره، بلکه TEMP. 133 00:05:29,530 --> 00:05:33,170 جایی که من به طور موقت - و یا که در آن جس به طور موقت با قرار دادن آب پرتقال 134 00:05:33,170 --> 00:05:35,460 قبل از clobbering که جام حذفی را با شیر. 135 00:05:35,460 --> 00:05:37,250 >> بنابراین اجازه دهید من جلو بروید و این. 136 00:05:37,250 --> 00:05:39,210 آن را به نام noswap.c. 137 00:05:39,210 --> 00:05:41,190 و در حال حاضر اجازه دهید من هیچ مبادله را اجرا کنید. 138 00:05:41,190 --> 00:05:43,910 و در واقع من می بینم، اگر من گسترش پنجره یک کمی، که 139 00:05:43,910 --> 00:05:45,160 X 1، Y 2 است. 140 00:05:45,160 --> 00:05:47,230 و آنگاه x 2، Y 1 است. 141 00:05:47,230 --> 00:05:51,910 >> اما به یاد بیاورید که در روز دوشنبه ما از همه چیز کمی متفاوت به موجب آن من 142 00:05:51,910 --> 00:05:56,760 به جای یک تابع کمکی اجرا، اگر شما خواهد شد، که در واقع از درجه اعتبار ساقط است. 143 00:05:56,760 --> 00:05:58,010 من نام آن را مبادله. 144 00:05:58,010 --> 00:06:01,600 من به آن دو پارامتر، و من به نام آنها و من نام آنها را ب. 145 00:06:01,600 --> 00:06:04,380 >> صادقانه بگویم، من می توانم آنها را x و y تماس بگیرید. 146 00:06:04,380 --> 00:06:06,040 هیچ چیز مانع وجود دارد من از انجام این کار. 147 00:06:06,040 --> 00:06:08,140 اما من استدلال می کنند سپس کمی مبهم است. 148 00:06:08,140 --> 00:06:11,910 از آنجا که فراخوان برای روز دوشنبه که ما ادعا کرد که این پارامترها شامل 149 00:06:11,910 --> 00:06:13,650 کپی از مقادیر گذشت. 150 00:06:13,650 --> 00:06:15,640 پس از آن فقط messes خود را با ذهن، من فکر می کنم، اگر شما با استفاده از 151 00:06:15,640 --> 00:06:17,370 دقیقا همان متغیر. 152 00:06:17,370 --> 00:06:20,150 >> بنابراین من به جای آنها تماس بگیرید و b، فقط برای وضوح. 153 00:06:20,150 --> 00:06:21,840 اما ما می توانیم آنها را بیشتر تماس بگیرید هر چیزی که ما می خواهیم. 154 00:06:21,840 --> 00:06:26,280 و من قصد دارم به کپی و چسباندن به طور موثر این کد از وجود دارد 155 00:06:26,280 --> 00:06:27,170 پایین به اینجا. 156 00:06:27,170 --> 00:06:29,110 از آنجا که من فقط دیدم که در آن کار می کند. 157 00:06:29,110 --> 00:06:30,790 به طوری که در شکل بسیار خوب است. 158 00:06:30,790 --> 00:06:37,390 و من ایکس من، X من را تغییر دهید به، Y من به B و Y من به ب. 159 00:06:37,390 --> 00:06:39,130 >> بنابراین به عبارت دیگر، منطق دقیق همان. 160 00:06:39,130 --> 00:06:40,850 همان چیزی که دقیق که جس انجام داد. 161 00:06:40,850 --> 00:06:44,350 و سپس یکی از چیزهایی است که من باید انجام دهید تا در اینجا، البته، در حال حاضر این استناد 162 00:06:44,350 --> 00:06:45,990 تابع، و یا فراخوانی این تابع. 163 00:06:45,990 --> 00:06:50,430 بنابراین من این تابع با دو تماس بگیرید ورودی، X و Y، و ضربه ذخیره کنید. 164 00:06:50,430 --> 00:06:52,300 >> همه حق است، بنابراین اساسا همین. 165 00:06:52,300 --> 00:06:55,570 در واقع، من احتمالا ساخته شده است برنامه بی ارزش پیچیده 166 00:06:55,570 --> 00:07:00,820 نوشتن یک تابع است که تنها با در نظر گرفتن حدود شش خط از کد را در حالی که من 167 00:07:00,820 --> 00:07:02,970 قبلا اجرا شده بود این در تنها سه. 168 00:07:02,970 --> 00:07:06,230 >> پس اجازه دهید من به جلو در حال حاضر و در بازسازی این، هیچ مبادله. 169 00:07:06,230 --> 00:07:07,920 همه حق است، من screwed تا اینجا. 170 00:07:07,920 --> 00:07:11,290 این باید خطا باشد که شما ممکن است به طور فزاینده ای معمول خود را به عنوان 171 00:07:11,290 --> 00:07:12,380 برنامه های پیچیده تر کنید. 172 00:07:12,380 --> 00:07:13,470 اما حل ساده وجود دارد. 173 00:07:13,470 --> 00:07:15,650 اجازه دهید من حرکت به بالا و در اینجا. 174 00:07:15,650 --> 00:07:18,190 >> و آنچه را که برای اولین بار از خطای من دیدن؟ 175 00:07:18,190 --> 00:07:19,520 اعلام ضمنی. 176 00:07:19,520 --> 00:07:21,466 چه که به طور معمول نشان می دهد؟ 177 00:07:21,466 --> 00:07:22,830 آه، من، نمونه را فراموش کرده ام. 178 00:07:22,830 --> 00:07:26,900 من را فراموش کرده برای تدریس به کامپایلر که مبادله رفتن به وجود داشته باشد حتی اگر او 179 00:07:26,900 --> 00:07:28,920 در همان ابتدا وجود ندارد از برنامه است. 180 00:07:28,920 --> 00:07:35,780 بنابراین من فقط رفتن به می گویند از درجه اعتبار ساقط، مبادله، هوشمند، ب هوشمند، نقطه و ویرگول بدین شکل است. 181 00:07:35,780 --> 00:07:37,280 >> بنابراین من قصد ندارم به آن reimplement. 182 00:07:37,280 --> 00:07:39,140 اما در حال حاضر آن را منطبق آنچه که در اینجا. 183 00:07:39,140 --> 00:07:42,530 و توجه، عدم وجود یک نقطه و ویرگول در اینجا، است که لازم نیست که 184 00:07:42,530 --> 00:07:43,200 پیاده سازی است. 185 00:07:43,200 --> 00:07:46,010 >> بنابراین اجازه دهید من بسازی، بهترین استفاده را مبادله. 186 00:07:46,010 --> 00:07:46,910 شکل بسیار بهتر است. 187 00:07:46,910 --> 00:07:48,130 اجرای مبادله. 188 00:07:48,130 --> 00:07:48,740 و آن را لعنت کند. 189 00:07:48,740 --> 00:07:51,650 حالا ما به جایی برگردان که در آن ما در روز دوشنبه، که در آن چیزی مبادله نیست. 190 00:07:51,650 --> 00:07:55,410 >> و آنچه را که توضیح بصری که چرا این طور است؟ 191 00:07:55,410 --> 00:07:56,380 آره؟ 192 00:07:56,380 --> 00:07:57,630 >> دانشجو: [نامفهوم]. 193 00:07:57,630 --> 00:08:04,140 194 00:08:04,140 --> 00:08:05,230 >> دیوید مالان: دقیقا. 195 00:08:05,230 --> 00:08:07,330 بنابراین a و b کپی از x و y هستند. 196 00:08:07,330 --> 00:08:10,680 و در واقع، هر زمان که شما بوده ام فراخوانی یک تابع تا کنون است که 197 00:08:10,680 --> 00:08:12,540 عبور متغیر مانند نوع داده int - 198 00:08:12,540 --> 00:08:14,470 فقط به عنوان مبادله انتظار در اینجا - 199 00:08:14,470 --> 00:08:16,270 شما بچه ها شده اند در نسخه های عبور. 200 00:08:16,270 --> 00:08:19,150 >> در حال حاضر که به معنی آن کمی طول می کشد از زمان، قسمتی از ثانیه، برای 201 00:08:19,150 --> 00:08:23,270 کامپیوتر برای کپی کردن بیت از یک متغیر به بیت دیگری. 202 00:08:23,270 --> 00:08:24,610 اما این چنین یک معامله بزرگ نیست. 203 00:08:24,610 --> 00:08:25,920 اما آنها با این وجود یک کپی. 204 00:08:25,920 --> 00:08:30,020 >> و به همین ترتیب در حال حاضر، در زمینه مبادله، من در واقع با موفقیت 205 00:08:30,020 --> 00:08:31,180 تغییر a و b. 206 00:08:31,180 --> 00:08:33,000 در واقع، اجازه دهید انجام سریع سلامت عقل را بررسی کنید. 207 00:08:33,000 --> 00:08:36,830 نسخه قابل چاپ F٪ من، خط جدید است. 208 00:08:36,830 --> 00:08:38,770 و بیایید در پلاگین. 209 00:08:38,770 --> 00:08:41,830 حالا اجازه دهید همین کار را با ب. 210 00:08:41,830 --> 00:08:43,640 و اجازه دهید همین کار را در اینجا. 211 00:08:43,640 --> 00:08:47,260 >> و در حال حاضر، اجازه دهید من همان خطوط را کپی کنید دوباره در انتهای تابع 212 00:08:47,260 --> 00:08:51,250 پس از سه خط من جالب می تواند اعدام کرده اند، و 213 00:08:51,250 --> 00:08:53,270 چاپ a و b هنوز دوباره. 214 00:08:53,270 --> 00:08:56,030 بنابراین در حال حاضر اجازه دهید این کار، هیچ مبادله. 215 00:08:56,030 --> 00:08:58,430 اجازه دهید پنجره ترمینال کمی بلندتر است، به طوری که ما می توانید ببینید 216 00:08:58,430 --> 00:08:59,520 بیشتر از آن را در یک بار. 217 00:08:59,520 --> 00:09:00,860 >> و اجرای هیچ مبادله. 218 00:09:00,860 --> 00:09:04,000 X 1، Y 2 است. 1، ب 2 است. 219 00:09:04,000 --> 00:09:06,070 و پس از آن، 2، ب 1 است. 220 00:09:06,070 --> 00:09:09,390 پس از آن کار می کند، درست مثل جس اینجا داخل مبادله. 221 00:09:09,390 --> 00:09:13,090 اما البته، آن را بدون داشتن اثر در متغیر در اصلی. 222 00:09:13,090 --> 00:09:15,360 >> بنابراین ما شاهد یک ترفند به موجب آن ما می تواند این را تعمیر کنید، درست است؟ 223 00:09:15,360 --> 00:09:19,560 وقتی که شما با این هدف گذاری مواجه موضوع، شما فقط می تواند توپ فوتبال را قبل از تماس با زمین زدن و ایجاد * 224 00:09:19,560 --> 00:09:22,400 و y چه نوع متغیر به جای؟ 225 00:09:22,400 --> 00:09:23,390 >> شما می توانید آنها را جهانی کند. 226 00:09:23,390 --> 00:09:27,560 آنها را در بالای فایل قرار دهید همانطور که ما حتی در 15 بازی انجام داد،. 227 00:09:27,560 --> 00:09:28,890 ما با استفاده از یک متغیر جهانی. 228 00:09:28,890 --> 00:09:32,420 اما در زمینه بازی 15، آن را معقول و منطقی به جهانی 229 00:09:32,420 --> 00:09:37,170 در متغیر به نمایندگی از هیئت مدیره، به دلیل تمامیت 15.c تمام 230 00:09:37,170 --> 00:09:38,650 در مورد اجرای این بازی. 231 00:09:38,650 --> 00:09:41,470 این چیزی است که فایل وجود دارد، انجام دهد. 232 00:09:41,470 --> 00:09:44,170 >> اما در این مورد در اینجا، من هستم خواستار مبادله عملکرد. 233 00:09:44,170 --> 00:09:45,380 من می خواهم به مبادله دو متغیر است. 234 00:09:45,380 --> 00:09:48,950 و آن را باید شروع به احساس فقط درهم و برهم اگر راه حلی برای همه ما 235 00:09:48,950 --> 00:09:51,300 مشکلات زمانی که ما را به حوزه اجرا مسائل مربوط به آن را در سطح جهانی است. 236 00:09:51,300 --> 00:09:54,730 از آنجا که بسیار به سرعت برنامه های ما است رفتن به تبدیل شدن کاملا ظروف سرباز یا مسافر. 237 00:09:54,730 --> 00:09:57,760 و ما این کار را انجام دادیم بسیار صرفهجویی به عنوان یک نتیجه در 15.c. 238 00:09:57,760 --> 00:10:00,470 >> اما معلوم راه بهتری در دسترس نباشد. 239 00:10:00,470 --> 00:10:05,600 اجازه دهید من در واقع به عقب برگردید و حذف چاپ F، فقط به ساده این کد. 240 00:10:05,600 --> 00:10:09,160 و اجازه دهید به من پیشنهاد که این، در واقع، بد است. 241 00:10:09,160 --> 00:10:15,990 اما اگر من به جای آن در برخی از ستاره و ستاره ها، من می توانم به جای این به نوبه خود 242 00:10:15,990 --> 00:10:18,670 تابع به یکی که در واقع عملیاتی است. 243 00:10:18,670 --> 00:10:25,020 >> پس اجازه دهید من به عقب برگردید و اعتراف گفت: ستاره همیشه دشوار است، 244 00:10:25,020 --> 00:10:26,170 بنابراین من ستاره می گویند. 245 00:10:26,170 --> 00:10:27,660 من فقط نم تا که یکی. 246 00:10:27,660 --> 00:10:28,190 بسیار خوب. 247 00:10:28,190 --> 00:10:30,190 و در حال حاضر، چه هستم من که به جای؟ 248 00:10:30,190 --> 00:10:34,130 >> بنابراین اول از همه، من قصد دارم مشخص که به جای عبور از نوع int به 249 00:10:34,130 --> 00:10:37,980 تابع swap، من به جای هستم رفتن به می گویند ستاره نوع int است. 250 00:10:37,980 --> 00:10:39,170 در حال حاضر، چه ستاره نشان می دهد؟ 251 00:10:39,170 --> 00:10:41,970 این است که مفهوم یک اشاره گر است که Binky، شخصیت claymation، 252 00:10:41,970 --> 00:10:43,465 اشاره به یک لحظه قبل در دیتا بیس ثبت شده است. 253 00:10:43,465 --> 00:10:47,610 >> بنابراین اگر ما می گویند ستاره نوع int، به معنی این در حال حاضر این است که قصد ندارم به 254 00:10:47,610 --> 00:10:49,110 با ارزش خود را به تصویب رسید. 255 00:10:49,110 --> 00:10:50,350 آن را نمی توان کپی شده شوید. 256 00:10:50,350 --> 00:10:54,700 در عوض، آدرس یک رفتن به منتقل می شوید. 257 00:10:54,700 --> 00:10:57,840 >> به طوری که در داخل کامپیوتر خود را به یاد یک دسته کامل از حافظه است، در غیر این صورت 258 00:10:57,840 --> 00:10:58,760 شناخته شده به عنوان رم. 259 00:10:58,760 --> 00:11:00,520 و این رم فقط یک تمام دسته از کلمه در ادامه متن. 260 00:11:00,520 --> 00:11:03,320 بنابراین اگر مک شما و یا کامپیوتر خود را دو گیگابایت، شما 2 261 00:11:03,320 --> 00:11:05,760 میلیارد بایت از حافظه است. 262 00:11:05,760 --> 00:11:08,440 >> حالا اجازه دهید فقط فرض کنید که فقط به همه چیز مرتب و منظم نگه دارید، ما 263 00:11:08,440 --> 00:11:09,450 اختصاص یک آدرس - 264 00:11:09,450 --> 00:11:10,170 تعداد - 265 00:11:10,170 --> 00:11:12,270 به هر بایت از حافظه (RAM) در کامپیوتر شما. 266 00:11:12,270 --> 00:11:15,410 بایت اول آن 2 میلیارد عدد صفر. 267 00:11:15,410 --> 00:11:18,572 بعد شماره بایت، تعداد دو راه در بالا، نقطه نقطه 268 00:11:18,572 --> 00:11:20,530 نقطه، به حدود 2 میلیارد. 269 00:11:20,530 --> 00:11:23,640 >> بنابراین شما می توانید تعدادی از کلمه در ادامه متن حافظه در کامپیوتر شما. 270 00:11:23,640 --> 00:11:26,460 پس فرض کنیم که این چه ما آدرس متوسط. 271 00:11:26,460 --> 00:11:31,360 بنابراین، وقتی می بینم اعضای هیات ستاره، چه خبر است توان به مبادله گذشت است 272 00:11:31,360 --> 00:11:32,830 آدرس. 273 00:11:32,830 --> 00:11:37,150 ارزش خود را، اما هر پستی را آدرس، پس به صحبت می کنند - 274 00:11:37,150 --> 00:11:38,810 محل آن در حافظه. 275 00:11:38,810 --> 00:11:41,250 >> و به همین ترتیب برای ب، من قصد دارم می گویند همین است. 276 00:11:41,250 --> 00:11:42,720 INT، ستاره، ب. 277 00:11:42,720 --> 00:11:46,350 همانطور که به کنار، از نظر فنی ستاره می تواند در مکان های دیگر بروید. 278 00:11:46,350 --> 00:11:50,140 اما ما را در ستاره بودن استاندارد درست در کنار به نوع داده. 279 00:11:50,140 --> 00:11:54,080 >> بنابراین مبادله امضا در حال حاضر به معنی، من را آدرس بین المللی، و تماس 280 00:11:54,080 --> 00:11:55,400 که آدرس. 281 00:11:55,400 --> 00:11:58,690 و به من آدرس دیگری بدهد int و تماس که آدرس ب. 282 00:11:58,690 --> 00:12:01,120 >> اما در حال حاضر کد من در اینجا باید تغییر کند. 283 00:12:01,120 --> 00:12:03,470 از آنجا که اگر اعلام اعضای هیات دما - 284 00:12:03,470 --> 00:12:05,580 است که هنوز هم از نوع int - 285 00:12:05,580 --> 00:12:08,700 اما من در آن ذخیره، چه نوع ارزش؟ 286 00:12:08,700 --> 00:12:12,870 برای روشن، من قرار دادن با کد عنوان در حال حاضر نوشته شده است؟ 287 00:12:12,870 --> 00:12:14,360 >> من قرار دادن در محل. 288 00:12:14,360 --> 00:12:16,500 اما من در مورد مهم نیست محل سکونت: در حال حاضر، درست است؟ 289 00:12:16,500 --> 00:12:21,940 درجه حرارت فقط فنجان سوم جس وجود دارد وجود داشته است، با چه هدفی؟ 290 00:12:21,940 --> 00:12:23,090 برای ذخیره یک مقدار. 291 00:12:23,090 --> 00:12:24,830 شیر یا آب پرتقال. 292 00:12:24,830 --> 00:12:28,520 به واقع آدرس ذخیره هر یک از آن چیزهایی است که احساس 293 00:12:28,520 --> 00:12:31,200 کمی مزخرف در این واقعی بافت کشورهای جهان به هر حال. 294 00:12:31,200 --> 00:12:34,990 >> پس در واقع، آنچه که من می خواهم برای قرار دادن در درجه حرارت آدرس یک، اما نه 295 00:12:34,990 --> 00:12:36,180 محتویات یک. 296 00:12:36,180 --> 00:12:41,930 بنابراین اگر یک تعداد مثل 123 است، این است 123 بایت از حافظه است که فقط 297 00:12:41,930 --> 00:12:45,090 اتفاق می افتد به اشغالگر، که ارزش در یک اتفاق می افتد به اشغالگر. 298 00:12:45,090 --> 00:12:49,040 >> اگر من می خواهم برای رفتن به آن آدرس، من نیاز به گفتن نیست ستاره. 299 00:12:49,040 --> 00:12:52,610 به طور مشابه، اگر من به تغییر چه در آدرس را عوض کنم 300 00:12:52,610 --> 00:12:53,570 این برای شروع. 301 00:12:53,570 --> 00:12:58,185 اگر من می خواهم برای ذخیره در آنچه در محل با آنچه در محل 302 00:12:58,185 --> 00:13:02,180 در ب، ستاره ستاره ب. 303 00:13:02,180 --> 00:13:05,340 >> بنابراین در کوتاه مدت، حتی در صورتی که این کاملا غرق شدن در رتبهدهی نشده است - و من انتظار می رود 304 00:13:05,340 --> 00:13:06,560 که آن را اینقدر تند و سریع - 305 00:13:06,560 --> 00:13:11,100 متوجه است که من انجام پیشوند این ستاره به متغیرهای من، 306 00:13:11,100 --> 00:13:13,350 گفت، ارزش گرفتن ندارد. 307 00:13:13,350 --> 00:13:14,520 آیا ارزش ها را تغییر دهید. 308 00:13:14,520 --> 00:13:17,600 اما نه، به این آدرس بروید و بدست آوردن مقدار. 309 00:13:17,600 --> 00:13:21,430 برو به این آدرس و تغییر ارزش وجود دارد. 310 00:13:21,430 --> 00:13:25,500 >> بنابراین در حال حاضر اجازه دهید من رفته تا بالا، فقط به تعمیر این خط در اینجا، به 311 00:13:25,500 --> 00:13:27,690 تغییر نمونه برای مطابقت. 312 00:13:27,690 --> 00:13:30,280 اما من در حال حاضر نیاز به انجام یک چیز دیگر است. 313 00:13:30,280 --> 00:13:35,500 به طور مستقیم، اگر من انواع تغییر داده اید از استدلال که مبادله انتظار، 314 00:13:35,500 --> 00:13:37,245 چه چیز دیگری می توانم نیاز به تغییر در کد من؟ 315 00:13:37,245 --> 00:13:39,750 316 00:13:39,750 --> 00:13:40,840 >> وقتی که من مبادله می نامیم. 317 00:13:40,840 --> 00:13:43,340 چون در حال حاضر، آنچه که هستم من به عبور به مبادله هنوز؟ 318 00:13:43,340 --> 00:13:47,450 ایکس و مقدار Y، یا شیر و آب پرتقال. 319 00:13:47,450 --> 00:13:48,510 اما من نمی خواهم به انجام این کار. 320 00:13:48,510 --> 00:13:51,060 من به جای می خواهید به تصویب در چه؟ 321 00:13:51,060 --> 00:13:53,050 محل x و محل Y. 322 00:13:53,050 --> 00:13:55,300 آدرس پستی آنها چه کسانی هستند، پس به صحبت می کنند. 323 00:13:55,300 --> 00:13:57,600 >> بنابراین برای انجام این کار، یک علامت وجود دارد. 324 00:13:57,600 --> 00:13:59,260 نوع آمپرسند برای تلفن های موبایل مانند آدرس. 325 00:13:59,260 --> 00:14:03,240 بنابراین N، علامت، آدرس * و آدرس Y. 326 00:14:03,240 --> 00:14:06,790 پس از آن عمدی که استفاده می کنیم آمپرسندهای کاربردی در هنگام فراخوانی تابع، 327 00:14:06,790 --> 00:14:10,230 و ستاره ها در هنگام اعلام و هنگامی که اجرای تابع. 328 00:14:10,230 --> 00:14:14,220 >> و فقط از علامت "فکر می کنم به عنوان آدرس اپراتور، و ستاره به عنوان 329 00:14:14,220 --> 00:14:15,490 رفتن اپراتور وجود دارد - 330 00:14:15,490 --> 00:14:18,640 یا، به درستی، اپراتور dereference. 331 00:14:18,640 --> 00:14:23,480 به طوری که تعداد زیادی از کل کلمات فقط به می گویند که در حال حاضر، امیدوارم، مبادله در حال رفتن 332 00:14:23,480 --> 00:14:24,440 تواند درست باشد. 333 00:14:24,440 --> 00:14:26,550 >> اجازه دهید من جلو بروید و مطمئن - 334 00:14:26,550 --> 00:14:30,940 اجازه دهید در واقع تغییر نام فایل، مبادا این برنامه هنوز هم می تواند به نام هیچ مبادله. 335 00:14:30,940 --> 00:14:33,240 من ادعا می کنند که ما در حال حاضر می خواهید آن را swap.c تماس بگیرید. 336 00:14:33,240 --> 00:14:35,670 بنابراین، مبادله. 337 00:14:35,670 --> 00:14:37,520 نقطه، بریده بریده، مبادله. 338 00:14:37,520 --> 00:14:40,210 >> و در حال حاضر در واقع، X 1، Y 2 است. 339 00:14:40,210 --> 00:14:44,040 و سپس، X 2، Y یکی است. 340 00:14:44,040 --> 00:14:46,500 خوب بیایید ببینیم که اگر ما می توانید انجام دهید این است که یک کمی متفاوت به آن چه که 341 00:14:46,500 --> 00:14:47,180 در اینجا. 342 00:14:47,180 --> 00:14:51,250 اول، اجازه دهید به من زوم در ما طراحی صفحه نمایش در اینجا. 343 00:14:51,250 --> 00:14:54,160 و اجازه دهید من برای یک لحظه پیشنهاد - و هر زمان که من در اینجا رسم منعکس خواهد شد 344 00:14:54,160 --> 00:14:58,660 تا حال حاضر وجود دارد - اجازه بدهید من پیشنهاد می کنم که در اینجا یک دسته کامل از حافظه، و یا 345 00:14:58,660 --> 00:15:00,540 RAM، داخل کامپیوتر من. 346 00:15:00,540 --> 00:15:04,140 >> و این خواهد بود تعداد گزش، اجازه دهید بگویم، 1. 347 00:15:04,140 --> 00:15:05,720 این خواهد بود که تعداد بایت 2. 348 00:15:05,720 --> 00:15:08,220 و من یک دسته کامل انجام دهد، و سپس یک دسته از نقطه نقطه نقطه 349 00:15:08,220 --> 00:15:10,880 نشان می دهد که 2 میلیارد وجود دارد از این چیزها. 350 00:15:10,880 --> 00:15:13,520 4، 5، و غیره. 351 00:15:13,520 --> 00:15:17,055 >> بنابراین پنج بایت اول وجود دارد از حافظه کامپیوتر من. 352 00:15:17,055 --> 00:15:17,560 همه درست است؟ 353 00:15:17,560 --> 00:15:19,060 تعداد بسیار کمی از 2 میلیارد. 354 00:15:19,060 --> 00:15:21,120 اما در حال حاضر من قصد دارم به پیشنهاد شرح زیر است. 355 00:15:21,120 --> 00:15:27,490 من قصد دارم به پیشنهاد که x رفتن به ذخیره شماره 1 و y است 356 00:15:27,490 --> 00:15:29,690 برای ذخیره تعداد 2. 357 00:15:29,690 --> 00:15:35,000 و اجازه دهید من جلو بروید در حال حاضر و این مقادیر به شرح زیر است. 358 00:15:35,000 --> 00:15:41,510 >> بیایید این کار را به شرح زیر است. 359 00:15:41,510 --> 00:15:42,870 من فقط یک ثانیه بده. 360 00:15:42,870 --> 00:15:44,150 یک دوم. 361 00:15:44,150 --> 00:15:45,680 OK را بزنید. 362 00:15:45,680 --> 00:15:47,560 من می خواهم این است که یک کمی - 363 00:15:47,560 --> 00:15:50,440 اجازه دهید این کار را دوباره. 364 00:15:50,440 --> 00:15:53,250 در غیر این صورت من قصد دارم و با استفاده از اعداد همان، غیر عمدی، 365 00:15:53,250 --> 00:15:54,230 چند بار. 366 00:15:54,230 --> 00:15:57,320 >> پس فقط بنابراین ما باید شماره های مختلف به بحث در مورد، اجازه دهید این بایت تماس بگیرید 367 00:15:57,320 --> 00:16:03,391 شماره 123، 124، 125، 126، و نقطه نقطه نقطه. 368 00:16:03,391 --> 00:16:08,400 و اجازه دهید من ادعا می کنند در حال حاضر که من قصد دارم به قرار دادن مقدار 1 در اینجا، و مقدار 2 369 00:16:08,400 --> 00:16:11,990 در اینجا، در غیر این صورت به عنوان x و y شناخته شده است. 370 00:16:11,990 --> 00:16:15,300 پس از آن فقط اتفاق می افتد که این X است، این y است. 371 00:16:15,300 --> 00:16:18,180 >> و تنها با برخی از شانس تصادفی، کامپیوتر، سیستم عامل، 372 00:16:18,180 --> 00:16:21,890 اتفاق افتاده برای قرار دادن x در محل شماره 123. 373 00:16:21,890 --> 00:16:25,590 و Y به پایان رسید تا در مکان 124 - 374 00:16:25,590 --> 00:16:26,330 لعنت. 375 00:16:26,330 --> 00:16:28,700 من باید ثابت. 376 00:16:28,700 --> 00:16:34,040 آه، مرد، آیا من واقعا می خواهم به انجام این کار؟ 377 00:16:34,040 --> 00:16:37,340 بله، من می خواهم این مشکل را برطرف و ب در مورد این امروز مناسب. 378 00:16:37,340 --> 00:16:39,950 با عرض پوزش، در این. 379 00:16:39,950 --> 00:16:45,020 >> 127، 131، و من می خواهم به این پیچیده است، اما به همین دلیل تغییر من 380 00:16:45,020 --> 00:16:46,340 اعداد وجود دارد؟ 381 00:16:46,340 --> 00:16:48,360 از آنجا که من می خواهم نوع داده int به در واقع چهار بایت. 382 00:16:48,360 --> 00:16:49,810 پس باشد مقعد فوق العاده در این مورد دهید. 383 00:16:49,810 --> 00:16:53,800 به طوری که اگر 1 اتفاق می افتد به آنها رسیدگی شود 123، 2 رفتن به آدرس 384 00:16:53,800 --> 00:16:55,730 127 به دلیل آن تنها 4 byes دور. 385 00:16:55,730 --> 00:16:56,210 که همه. 386 00:16:56,210 --> 00:16:58,640 و ما را در مورد همه را فراموش کرده ام آدرس های دیگر در جهان است. 387 00:16:58,640 --> 00:17:03,320 >> بنابراین X است در محل 123، Y در محل 127. 388 00:17:03,320 --> 00:17:05,770 و در حال حاضر، آنچه را می توانم در واقع می خواهم کاری انجام دهید؟ 389 00:17:05,770 --> 00:17:10,099 هنگامی که من اسمش مبادله در حال حاضر، چه چیزی در واقع رفتن؟ 390 00:17:10,099 --> 00:17:14,920 خوب، وقتی که من مبادله می نامیم، من عبور در آدرس x و آدرس Y. 391 00:17:14,920 --> 00:17:18,540 بنابراین برای مثال، اگر این دو قطعه کاغذ در حال حاضر نشان دهنده دو 392 00:17:18,540 --> 00:17:23,510 استدلال a و b به مبادله، چه من رفتن به نوشتن اولین بار از این، 393 00:17:23,510 --> 00:17:27,720 که من قصد دارم به تماس به عنوان یک مراجعه کنید؟ 394 00:17:27,720 --> 00:17:30,610 >> دقیقا، 123. 395 00:17:30,610 --> 00:17:31,905 بنابراین این ادعا است. 396 00:17:31,905 --> 00:17:32,955 این پارامتر است. 397 00:17:32,955 --> 00:17:35,856 من قرار دادن آدرس * در آن وجود دارد. 398 00:17:35,856 --> 00:17:38,152 >> چه خبر؟ 399 00:17:38,152 --> 00:17:40,890 >> چه خبر؟ 400 00:17:40,890 --> 00:17:41,190 >> نه، نه. 401 00:17:41,190 --> 00:17:41,720 OK. 402 00:17:41,720 --> 00:17:42,570 هنوز هم خوب است، هنوز هم خوب است. 403 00:17:42,570 --> 00:17:43,530 بنابراین این یک. 404 00:17:43,530 --> 00:17:46,240 و در حال حاضر در قطعه دوم از مقاله، این است که رفتن به b و چه هستم 405 00:17:46,240 --> 00:17:49,010 رفتن به نوشتن این قطعه از کاغذ؟ 406 00:17:49,010 --> 00:17:50,080 127. 407 00:17:50,080 --> 00:17:53,720 >> بنابراین تنها چیزی که از تغییر گفتن قبلی ما از این داستان است، 408 00:17:53,720 --> 00:17:58,590 به جای به معنای واقعی کلمه 1 و 2، من رفتن به تصویب در 123 و 127. 409 00:17:58,590 --> 00:18:02,130 و من در حال حاضر به رفتن به قرار دادن این داخل از این کادر، همه درست است؟ 410 00:18:02,130 --> 00:18:04,640 به طوری که جعبه سیاه در حال حاضر تابع swap. 411 00:18:04,640 --> 00:18:07,230 >> در همین حال، اجازه دهید در حال حاضر کسی پیاده سازی تابع swap. 412 00:18:07,230 --> 00:18:09,090 آیا کسی در اینجا خواهید داوطلب شوید؟ 413 00:18:09,090 --> 00:18:09,560 بیا بالا. 414 00:18:09,560 --> 00:18:11,080 نام شما چیست؟ 415 00:18:11,080 --> 00:18:11,460 چارلی. 416 00:18:11,460 --> 00:18:12,080 همه حق است، چارلی. 417 00:18:12,080 --> 00:18:14,810 بیا بالا. 418 00:18:14,810 --> 00:18:17,310 >> بنابراین چارلی رفتن به بازی نقش جعبه سیاه ما. 419 00:18:17,310 --> 00:18:21,460 و چارلی، آنچه من می خواهم شما را به انجام در حال حاضر پیاده سازی مبادله در چنین راهی 420 00:18:21,460 --> 00:18:25,320 که، با توجه به این دو آدرس، شما در واقع قرار بود 421 00:18:25,320 --> 00:18:26,330 برای تغییر ارزش ها. 422 00:18:26,330 --> 00:18:28,290 و من در گوش شما زمزمه چگونه برای اجرای تلویزیون در اینجا. 423 00:18:28,290 --> 00:18:29,930 >> پس پیش بروید و شما جعبه سیاه هستید. 424 00:18:29,930 --> 00:18:30,920 رسیدن در آن وجود دارد. 425 00:18:30,920 --> 00:18:34,054 چه ارزش شما را برای یک و چه ارزش شما را برای ب بینید؟ 426 00:18:34,054 --> 00:18:36,740 >> چارلی: 123 و ب 127 است. 427 00:18:36,740 --> 00:18:37,530 >> دیوید مالان: خوب، دقیقا. 428 00:18:37,530 --> 00:18:38,940 در حال حاضر مکث وجود دارد فقط برای یک لحظه. 429 00:18:38,940 --> 00:18:41,680 اولین چیزی که شما در حال رفتن به در حال حاضر، با توجه به کد - که 430 00:18:41,680 --> 00:18:43,220 من در حال حاضر می خواهید بکشید تا بر روی صفحه نمایش - 431 00:18:43,220 --> 00:18:46,750 رفتن به اختصاص کمی کمی از حافظه به نام دما. 432 00:18:46,750 --> 00:18:48,850 بنابراین من قصد دارم به جلو بروید و شما که حافظه را به من بدهید. 433 00:18:48,850 --> 00:18:52,210 >> بنابراین این است برای رفتن به یک متغیر سوم که شما باید در دسترس 434 00:18:52,210 --> 00:18:54,080 شما به نام دما. 435 00:18:54,080 --> 00:18:57,120 و چه چیزی می خواهید برای نوشتن در درجه حرارت قطعه کاغذ؟ 436 00:18:57,120 --> 00:19:02,524 437 00:19:02,524 --> 00:19:03,470 >> چارلی: اشاره گرها، درست است؟ 438 00:19:03,470 --> 00:19:04,790 >> دیوید مالان: خوب، خوبی نمی لزوما اشاره گر. 439 00:19:04,790 --> 00:19:07,230 بنابراین خط از کد که من برجسته در سمت راست، 440 00:19:07,230 --> 00:19:07,900 بیایید شروع وجود دارد. 441 00:19:07,900 --> 00:19:08,890 این گزارش می گوید ستاره. 442 00:19:08,890 --> 00:19:11,670 بنابراین در حال حاضر ذخیره سازی تعداد 123. 443 00:19:11,670 --> 00:19:16,660 و فقط به طور مستقیم، چه ستاره 123 معنی؟ 444 00:19:16,660 --> 00:19:21,630 >> اما به طور خاص، اگر یک 123، ستاره یعنی چه؟ 445 00:19:21,630 --> 00:19:22,560 ارزش. 446 00:19:22,560 --> 00:19:24,580 یا خودمانی تر، وجود دارد. 447 00:19:24,580 --> 00:19:28,620 بنابراین اجازه دهید به من پیشنهاد آن، نگه داشتن در دست خود را، جلو بروید و درمان 448 00:19:28,620 --> 00:19:29,430 هر چند به عنوان یک نقشه در آن است. 449 00:19:29,430 --> 00:19:32,940 و راه رفتن خود را به کامپیوتر حافظه، و ما را پیدا کردن آنچه 450 00:19:32,940 --> 00:19:36,520 در محل 123. 451 00:19:36,520 --> 00:19:37,720 دقیقا. 452 00:19:37,720 --> 00:19:41,100 >> بنابراین ما در موقعیت 123 را ببینید همان چیزی است که، بدیهی است؟ 453 00:19:41,100 --> 00:19:44,240 خوب، پس چه مقدار در حال حاضر شما رفتن به به درجه حرارت قرار داده است؟ 454 00:19:44,240 --> 00:19:44,750 دقیقا. 455 00:19:44,750 --> 00:19:45,600 پس پیش بروید و انجام این کار. 456 00:19:45,600 --> 00:19:51,280 و نوشتن عدد 1 در قطعه مقاله که در حال حاضر به عنوان درجه حرارت. 457 00:19:51,280 --> 00:19:53,540 >> و در حال حاضر گام بعدی است که شما قصد به پیاده سازی 458 00:19:53,540 --> 00:19:54,310 رفتن به آنچه. 459 00:19:54,310 --> 00:19:57,820 خوب، در سمت راست خط بعدی کد ستاره ب است. ب، 460 00:19:57,820 --> 00:19:59,260 البته، فروشگاه آدرس. 461 00:19:59,260 --> 00:20:02,270 که آدرس 127. 462 00:20:02,270 --> 00:20:06,620 ستاره ب یعنی چه، معمولی صحبت کردن؟ 463 00:20:06,620 --> 00:20:08,700 >> برو به آن مکان. 464 00:20:08,700 --> 00:20:14,988 پس پیش بروید و به ما چه در محل 127. 465 00:20:14,988 --> 00:20:15,480 OK را بزنید. 466 00:20:15,480 --> 00:20:19,170 البته، در محل 127، است هنوز ارزش 2. 467 00:20:19,170 --> 00:20:24,060 پس آنچه از شما که در حال حاضر فروشگاه در هر آنچه را در محل؟ 468 00:20:24,060 --> 00:20:26,860 بنابراین ستاره به معنای به محل بروید. 469 00:20:26,860 --> 00:20:29,770 محل چیست؟ 470 00:20:29,770 --> 00:20:30,430 >> دقیقا. 471 00:20:30,430 --> 00:20:34,190 بنابراین در حال حاضر، اگر شما می خواهید به تغییر آنچه در آن محل - 472 00:20:34,190 --> 00:20:36,470 من میام جلو و اجرا پاک کن اینجا. 473 00:20:36,470 --> 00:20:37,760 و در حال حاضر آن را به عقب بر روی قلم مو. 474 00:20:37,760 --> 00:20:42,190 چه تعداد می خواهید برای نوشتن در آن جعبه خالی در حال حاضر؟ 475 00:20:42,190 --> 00:20:42,850 >> دقیقا. 476 00:20:42,850 --> 00:20:46,470 بنابراین این خط از کد، به روشن - اجازه من مکث چه انجام چارلی و 477 00:20:46,470 --> 00:20:51,730 اشاره در اینجا، آنچه او انجام داده است نوشتن به آن جعبه در محل 123 478 00:20:51,730 --> 00:20:55,150 ارزش که قبلا در ب بود. 479 00:20:55,150 --> 00:20:59,140 و بنابراین ما در حال حاضر اجرا کرده ایم در واقع این خط دوم از کد. 480 00:20:59,140 --> 00:21:01,920 >> حالا متاسفانه، وجود دارد هنوز هم یک خط باقی مانده است. 481 00:21:01,920 --> 00:21:04,900 آنچه اکنون در درجه حرارت، به معنای واقعی کلمه است؟ 482 00:21:04,900 --> 00:21:06,200 این بدیهی است که شماره یک است. 483 00:21:06,200 --> 00:21:07,020 این آدرس نیست. 484 00:21:07,020 --> 00:21:09,380 این فقط یک شماره است، مرتب از یک متغیر از هفته اول. 485 00:21:09,380 --> 00:21:13,520 >> و در حال حاضر زمانی که به شما می گویند ستاره ب، این بدان معناست که رفتن به آدرس ب، است که از 486 00:21:13,520 --> 00:21:15,090 البته در اینجا. 487 00:21:15,090 --> 00:21:16,020 بنابراین هنگامی که شما وجود دارد - 488 00:21:16,020 --> 00:21:18,320 من میام جلو و پاک کردن آنچه در واقع شما و آنچه وجود دارد - 489 00:21:18,320 --> 00:21:20,820 رفتن به نوشتن در حال حاضر در 127 مکان؟ 490 00:21:20,820 --> 00:21:22,010 >> چارلی: دما، که یکی. 491 00:21:22,010 --> 00:21:23,430 >> دیوید مالان: دما، که یکی. 492 00:21:23,430 --> 00:21:25,670 و آنچه به دما اتفاق می افتد در پایان؟ 493 00:21:25,670 --> 00:21:26,600 خب، ما واقعا نمی دانند. 494 00:21:26,600 --> 00:21:27,420 ما واقعا نمی مراقبت. 495 00:21:27,420 --> 00:21:31,090 هر زمان ما یک تابع اجرا کرده ام تا کنون، هر متغیر محلی شما 496 00:21:31,090 --> 00:21:31,890 در واقع محلی است. 497 00:21:31,890 --> 00:21:33,060 و آنها فقط ناپدید می شوند. 498 00:21:33,060 --> 00:21:35,040 آنها توسط عامل اصلاح سیستم در نهایت. 499 00:21:35,040 --> 00:21:39,800 >> بنابراین این واقعیت است که درجه حرارت هنوز ارزش 1 مرتب کردن بر اساس اساسا 500 00:21:39,800 --> 00:21:41,150 با غیر برای ما. 501 00:21:41,150 --> 00:21:43,100 همه حق است، بنابراین دور از تشویق اگر ما می تواند برای چارلی. 502 00:21:43,100 --> 00:21:46,400 خیلی خوب انجام می شود. 503 00:21:46,400 --> 00:21:51,520 >> همه حق است، پس چه بیشتر می کند این به این معنی ما می توانیم انجام دهیم؟ 504 00:21:51,520 --> 00:21:54,400 بنابراین معلوم است که ما بوده ام گفتن چند دروغ های سفید 505 00:21:54,400 --> 00:21:55,540 برای مدتی. 506 00:21:55,540 --> 00:21:59,990 در واقع، معلوم است که یک رشته، همه از این زمان است، واقعا نمی 507 00:21:59,990 --> 00:22:02,190 دنباله ای از کاراکتر ها فی نفسه. 508 00:22:02,190 --> 00:22:03,980 این نوع است که به طور مستقیم. 509 00:22:03,980 --> 00:22:08,270 >> اما از نظر فنی زبان، رشته نوع داده هایی را که ما در داخل اعلام کرد 510 00:22:08,270 --> 00:22:12,170 کتابخانه CS50 به ساده جهان برای چند هفته اول کلاس. 511 00:22:12,170 --> 00:22:20,130 آدرس یک رشته واقعا شخصیت جایی در رم. 512 00:22:20,130 --> 00:22:25,530 رشته واقعا یک عدد باشد، مانند 123 یا 127، است که اتفاق می افتد مشخص 513 00:22:25,530 --> 00:22:28,420 که در آن رشته شروع می شود حافظه کامپیوتر شما. 514 00:22:28,420 --> 00:22:31,870 >> اما آن را نمایندگی نمی رشته، فی نفسه، به خودی خود. 515 00:22:31,870 --> 00:22:33,460 و ما می توانیم این به شرح زیر است. 516 00:22:33,460 --> 00:22:35,980 اجازه دهید من به جلو و باز کردن برخی از کد است که در میان 517 00:22:35,980 --> 00:22:38,340 نمونه کد منبع امروز. 518 00:22:38,340 --> 00:22:42,225 و من قصد دارم به جلو بروید و باز تا، اجازه دهید بگویم، است مقایسه 0.c. 519 00:22:42,225 --> 00:22:44,830 520 00:22:44,830 --> 00:22:48,790 این برنامه حشره دار است که رفتن است به شرح زیر اجرا شود. 521 00:22:48,790 --> 00:22:49,040 >> برای اولین بار. 522 00:22:49,040 --> 00:22:50,420 من قصد دارم به چیزی می گویند. 523 00:22:50,420 --> 00:22:52,660 سپس من قصد دارم به جلو بروید و دریافت یک رشته از کاربر 524 00:22:52,660 --> 00:22:53,750 در آن خط بعدی. 525 00:22:53,750 --> 00:22:55,370 سپس من قصد دارم دوباره آن را می گویند. 526 00:22:55,370 --> 00:22:57,540 سپس من قصد دارم برای گرفتن یکی دیگر رشته از کاربر. 527 00:22:57,540 --> 00:23:00,390 >> و توجه من نشان دادن یکی از رشته در متغیر نامیده میشود، و 528 00:23:00,390 --> 00:23:03,040 یکی دیگر از این رشته در یک متغیر به نام تی. 529 00:23:03,040 --> 00:23:07,480 و در حال حاضر من قصد دارم ادعا می کنند، بسیار منطقی است که اگر برابر با معادل T، 530 00:23:07,480 --> 00:23:08,940 رشته ها یکسان هستند. 531 00:23:08,940 --> 00:23:09,970 شما همان چیزی تایپ کنید. 532 00:23:09,970 --> 00:23:11,830 دیگری، رشته ها همین. 533 00:23:11,830 --> 00:23:15,440 >> پس از همه، اگر ما ورودی دو نوع داده int، دو کاراکتر، دو شناور، دو برابر، از هر یک از 534 00:23:15,440 --> 00:23:18,400 انواع داده ایم در مورد صحبت تا کنون آنها را مقایسه کنید - 535 00:23:18,400 --> 00:23:22,070 به یاد می کنیم در حالی که پیش روشن ساخته شده که شما این کار را نکنید، زیرا یک 536 00:23:22,070 --> 00:23:25,840 علامت برابر است البته عملگر انتساب است. 537 00:23:25,840 --> 00:23:26,820 به طوری که می تواند یک اشکال است. 538 00:23:26,820 --> 00:23:29,260 >> ما با استفاده از علامت مساوی برابر، که در واقع مقایسه 539 00:23:29,260 --> 00:23:31,050 همه چیز برای برابری واقعی. 540 00:23:31,050 --> 00:23:32,275 اما من ادعا می کنند این حشره دار است. 541 00:23:32,275 --> 00:23:37,400 اگر من به جلو و به آن صفر مقایسه، و سپس نقطه اسلش مقایسه صفر. 542 00:23:37,400 --> 00:23:39,700 و من در تایپ، اجازه دهید بگویم، سلام. 543 00:23:39,700 --> 00:23:41,590 و سپس اجازه دهید دوباره سلام. 544 00:23:41,590 --> 00:23:46,040 به معنای واقعی کلمه همین، کامپیوتر ادعا می کند من چیزهای مختلف تایپ شده است. 545 00:23:46,040 --> 00:23:47,640 >> حالا شاید من فقط mistyped چیزی. 546 00:23:47,640 --> 00:23:49,910 من نام من این زمان تایپ کنید. 547 00:23:49,910 --> 00:23:52,580 منظور من، سلام. 548 00:23:52,580 --> 00:23:54,770 خوش آمدید. 549 00:23:54,770 --> 00:23:57,360 هر زمان تنها متفاوت است. 550 00:23:57,360 --> 00:23:58,430 >> خوب، این است که چرا؟ 551 00:23:58,430 --> 00:24:00,140 چه چیزی واقعا در رفتن در زیر هود؟ 552 00:24:00,140 --> 00:24:03,270 خوب، آنچه که واقعا در رفتن در زیر هود رشته پس از آن است 553 00:24:03,270 --> 00:24:07,410 من در آن زمان برای اولین بار عنوان مثال تایپ کلمه سلام، البته. 554 00:24:07,410 --> 00:24:11,660 اما اگر ما این نشان دهنده زیر هود، به یاد بیاورید که یک 555 00:24:11,660 --> 00:24:13,470 رشته در یک آرایه است. 556 00:24:13,470 --> 00:24:15,040 و ما به عنوان های زیادی را در گذشته گفته ام. 557 00:24:15,040 --> 00:24:20,200 >> بنابراین اگر من قرعه کشی که مجموعه ای شبیه به این، من رفتن به نمایندگی چیزی کاملا 558 00:24:20,200 --> 00:24:23,030 شبیه به چیزی است که ما یک لحظه پیش بود. 559 00:24:23,030 --> 00:24:25,390 و در واقع چیزی وجود دارد که خاص در اینجا، بیش از حد. 560 00:24:25,390 --> 00:24:28,090 چیزی که ما تعیین شد در پایان از هر رشته؟ 561 00:24:28,090 --> 00:24:30,760 آره، این صفر ممیز معکوس است، که تنها راه نمایندگی، 562 00:24:30,760 --> 00:24:33,610 به معنای واقعی کلمه، 00000000. 563 00:24:33,610 --> 00:24:35,680 هشت 0 بیت در یک ردیف. 564 00:24:35,680 --> 00:24:37,610 >> من نمی دانم، رک و پوست کنده، آنچه پس از این است. 565 00:24:37,610 --> 00:24:40,090 که فقط یک دسته RAM بیشتر در داخل کامپیوتر من. 566 00:24:40,090 --> 00:24:40,970 اما این آرایه است. 567 00:24:40,970 --> 00:24:42,260 ما در مورد آرایه های قبل صحبت کرد. 568 00:24:42,260 --> 00:24:45,010 و ما به طور معمول در مورد آرایه ها صحبت عنوان محل سکونت صفر، 569 00:24:45,010 --> 00:24:46,580 پس از آن یکی، پس از آن دو. 570 00:24:46,580 --> 00:24:47,950 اما این فقط برای راحتی است. 571 00:24:47,950 --> 00:24:49,380 و این کاملا نسبی است. 572 00:24:49,380 --> 00:24:53,010 >> هنگامی که شما در واقع گرفتن حافظه از کامپیوتر، آن را البته هر 573 00:24:53,010 --> 00:24:55,450 2 میلیارد برخی از بایت های عجیب و غریب، به طور بالقوه. 574 00:24:55,450 --> 00:24:59,100 پس در واقع در زیر هود، تمام این مدت، بله. 575 00:24:59,100 --> 00:25:01,670 این خیلی خوب ممکن است صفر براکت. 576 00:25:01,670 --> 00:25:04,780 اما اگر شما حفاری حتی عمیق تر در زیر هود، که واقعا 577 00:25:04,780 --> 00:25:07,000 شماره 123. 578 00:25:07,000 --> 00:25:09,150 این آدرس 124 است. 579 00:25:09,150 --> 00:25:11,040 این آدرس 125 است. 580 00:25:11,040 --> 00:25:12,540 >> و من پیچ تا این زمان. 581 00:25:12,540 --> 00:25:15,840 این در حال حاضر یک بایت جدا برای چه دلیلی؟ 582 00:25:15,840 --> 00:25:17,930 چقدر بزرگ کاراکتر است؟ 583 00:25:17,930 --> 00:25:19,170 کاراکتر یک بایت است. 584 00:25:19,170 --> 00:25:20,570 بین المللی است که به طور معمول چهار بایت است. 585 00:25:20,570 --> 00:25:24,850 به طوری که به همین دلیل من ساخته شده آن را 123، 127، 131 و غیره. 586 00:25:24,850 --> 00:25:27,560 در حال حاضر من می تواند ریاضی را ساده نگه دارید و فقط انجام به علاوه 1. 587 00:25:27,560 --> 00:25:30,510 و این در حال حاضر آنچه که واقعا در رفتن در زیر هود. 588 00:25:30,510 --> 00:25:37,760 >> بنابراین، هنگامی که شما چیزی شبیه به این اعلام، رشته ها، این است که در واقع - 589 00:25:37,760 --> 00:25:39,170 آن معلوم است - 590 00:25:39,170 --> 00:25:41,190 ستاره کاراکتر. 591 00:25:41,190 --> 00:25:44,640 ستاره، البته، به معنای آدرس، اشاره گر با نام مستعار. 592 00:25:44,640 --> 00:25:46,200 پس از آن آدرس از چیزی است. 593 00:25:46,200 --> 00:25:47,510 آنچه در آن است آدرس؟ 594 00:25:47,510 --> 00:25:47,760 >> خوب - 595 00:25:47,760 --> 00:25:51,680 من تنها کسی بود که می تواند بسیار هستم نکته مهم من ساخت، و یا فکر می کنم 596 00:25:51,680 --> 00:25:52,560 من ساخت. 597 00:25:52,560 --> 00:25:55,270 بنابراین رشته - 598 00:25:55,270 --> 00:25:57,180 نکته غم انگیز این است من یک مانیتور سمت راست وجود دارد که در آن من 599 00:25:57,180 --> 00:25:58,100 می توانست دیده می شود که. 600 00:25:58,100 --> 00:26:00,990 >> همه حق است، بنابراین رشته ها همان چیزی است که من قبلا اعلام کرد. 601 00:26:00,990 --> 00:26:04,600 اما معلوم است، به لطف کمی سحر و جادو در کتابخانه CS50، این همه 602 00:26:04,600 --> 00:26:08,780 رشته زمان به معنای واقعی کلمه ستاره کاراکتر. 603 00:26:08,780 --> 00:26:11,310 ستاره دوباره به معنی اشاره گر یا آدرس. 604 00:26:11,310 --> 00:26:14,180 حقیقت آن است که طرفین این کاراکتر کلمه به معنی آن را 605 00:26:14,180 --> 00:26:15,970 آدرس یک شخصیت. 606 00:26:15,970 --> 00:26:23,100 >> بنابراین اگر رشته نامیده می شود، و من تایپ در H-E-L-L-O، در حال حاضر پیشنهاد آنچه را که دریافت 607 00:26:23,100 --> 00:26:27,330 رشته به معنای واقعی کلمه است بازگشت همه این زمان، حتی اگر ما به جای ام 608 00:26:27,330 --> 00:26:29,980 ساده انگاری بیش از حد جهان است؟ 609 00:26:29,980 --> 00:26:33,310 چه رشته ای در واقع بازگشت به عنوان مقدار بازگشتی آن؟ 610 00:26:33,310 --> 00:26:35,830 611 00:26:35,830 --> 00:26:38,720 >> 123 در این مورد، به عنوان مثال. 612 00:26:38,720 --> 00:26:42,630 ما قبلا گفته ام که رشته به سادگی یک رشته برمی گرداند، دنباله ای از 613 00:26:42,630 --> 00:26:43,300 حرف می باشد. 614 00:26:43,300 --> 00:26:44,790 اما این یک بیت از یک دروغ سفید است. 615 00:26:44,790 --> 00:26:48,010 راه گرفتن رشته واقعا کار می کند در زیر هود از آن می شود 616 00:26:48,010 --> 00:26:48,930 رشته از کاربر. 617 00:26:48,930 --> 00:26:51,530 این plops کاراکترهایی که او در انواع حافظه. 618 00:26:51,530 --> 00:26:54,680 این نهاد یک بک اسلش صفر در پایان کسانی که دنباله ای از کاراکتر ها است. 619 00:26:54,680 --> 00:26:57,310 >> اما پس از آن چه رشته به معنای واقعی کلمه بازگشت؟ 620 00:26:57,310 --> 00:27:02,710 این به معنای واقعی کلمه در آدرس باز می گرداند اولین کلمه در ادامه متن در RAM که 621 00:27:02,710 --> 00:27:04,130 آن را که برای قدرت استفاده می شود. 622 00:27:04,130 --> 00:27:07,500 و معلوم است که تنها با بازگشت یک آدرس 623 00:27:07,500 --> 00:27:12,120 اولین حرف رشته است، که برای یافتن تمامیت کافی است 624 00:27:12,120 --> 00:27:12,630 رشته. 625 00:27:12,630 --> 00:27:16,930 >> به عبارت دیگر، رشته اختصاص ندارد برای بازگشت 123 و 124 و 125. 626 00:27:16,930 --> 00:27:19,950 ندارد به من طولانی لیستی از همه از کلمه در ادامه متن که 627 00:27:19,950 --> 00:27:20,740 رشته من استفاده کرده است. 628 00:27:20,740 --> 00:27:22,670 به خاطر یکی، همه آنها بازگشت به عقب هستیم. 629 00:27:22,670 --> 00:27:28,160 و دو، در آدرس اول، من توانند بفهمند که در آن رشته به پایان می رسد. 630 00:27:28,160 --> 00:27:29,910 چگونه؟ 631 00:27:29,910 --> 00:27:33,490 >> شخصیت تهی خاص، بک اسلش صفر در پایان. 632 00:27:33,490 --> 00:27:35,430 بنابراین به عبارت دیگر، اگر شما در اطراف عبور - 633 00:27:35,430 --> 00:27:36,530 داخل متغیر - 634 00:27:36,530 --> 00:27:41,300 آدرس یک کاراکتر، و شما فرض که در پایان از هر رشته، هر 635 00:27:41,300 --> 00:27:45,040 دنباله ای از شخصیت ما را به عنوان انسان فکر می کنم از رشته ها، اگر فرض کنیم که 636 00:27:45,040 --> 00:27:48,600 در پایان از هر رشته هایی وجود دارد صفر بک اسلش، شما طلایی رنگ هستید. 637 00:27:48,600 --> 00:27:52,430 از آنجا که شما همیشه می توانید پیدا کنید پایان یک رشته. 638 00:27:52,430 --> 00:27:54,870 >> در حال حاضر آنچه واقعا سپس رفتن در این برنامه؟ 639 00:27:54,870 --> 00:27:59,990 چرا این برنامه است، به مقایسه 0.c، نوعی درشکه سبک یک اسبه؟ 640 00:27:59,990 --> 00:28:01,690 آنچه که در واقع در مقایسه با؟ 641 00:28:01,690 --> 00:28:02,420 آره؟ 642 00:28:02,420 --> 00:28:05,000 >> دانشجو: [نامفهوم]. 643 00:28:05,000 --> 00:28:05,730 >> دیوید مالان: دقیقا. 644 00:28:05,730 --> 00:28:08,350 این مقایسه مکان رشته. 645 00:28:08,350 --> 00:28:12,420 بنابراین در صورتی که کاربر در تایپ سلام یک بار، به عنوان من، حافظه ممکن است در نهایت 646 00:28:12,420 --> 00:28:13,430 به دنبال این را دوست دارند. 647 00:28:13,430 --> 00:28:18,210 اگر پس از آن کاربر نوع در سلام دوباره، اما با فراخوانی رشته دوباره، ج 648 00:28:18,210 --> 00:28:21,800 به خصوص هوشمندانه نیست مگر اینکه شما یاد می دهد آن را به صورت هوشمندانه با نوشتن کد. 649 00:28:21,800 --> 00:28:22,430 >> C - 650 00:28:22,430 --> 00:28:23,860 و به طور کلی کامپیوترهای - 651 00:28:23,860 --> 00:28:27,370 اگر شما در تایپ کلمه سلام دوباره، شما می دانید آنچه شما قصد دریافت. 652 00:28:27,370 --> 00:28:31,480 شما فقط رفتن به یک آرایه دوم از حافظه که، بله، اتفاق می افتد 653 00:28:31,480 --> 00:28:35,510 ذخیره سازی H-E-L-L-O و غیره. 654 00:28:35,510 --> 00:28:38,240 >> آن را به نگاه همان ما انسان ها، اما این آدرس 655 00:28:38,240 --> 00:28:39,460 ممکن است 123. 656 00:28:39,460 --> 00:28:42,470 آن را فقط ممکن است اتفاق می افتد که سیستم عامل تا به برخی از دسترس است 657 00:28:42,470 --> 00:28:45,430 فضا برای نمونه در محل - 658 00:28:45,430 --> 00:28:49,820 اجازه دهید چیزی دلخواه می گویند، مثل این محل 200 است. 659 00:28:49,820 --> 00:28:51,620 و این محل 201 است. 660 00:28:51,620 --> 00:28:53,060 و این محل 202 است. 661 00:28:53,060 --> 00:28:55,730 ما هیچ ایده که در آن است که در رفتن به در حافظه می شود. 662 00:28:55,730 --> 00:28:59,110 >> اما این بدان معنی است که آنچه که رفتن به نهایت ذخیره شده؟ 663 00:28:59,110 --> 00:29:00,750 تعداد 123. 664 00:29:00,750 --> 00:29:04,860 چه خبر است در تی شود ذخیره می شود، در این مثال دلخواه؟ 665 00:29:04,860 --> 00:29:06,300 تعداد 200. 666 00:29:06,300 --> 00:29:11,410 و این بدان معناست که پس از آن است که، 123 برابر 200 نیست. 667 00:29:11,410 --> 00:29:14,940 و بنابراین این شرط هرگز ارزیابی درست. 668 00:29:14,940 --> 00:29:18,430 از آنجا که رشته GET های مختلف با استفاده از تکه های حافظه در هر زمان. 669 00:29:18,430 --> 00:29:20,360 >> در حال حاضر ما می توانیم این را دوباره ببینم در یک مثال دیگر. 670 00:29:20,360 --> 00:29:23,764 اجازه دهید من به جلو و باز کردن کپی 0.c. 671 00:29:23,764 --> 00:29:28,770 من ادعا می کنند که در این مثال در حال رفتن به امتحان کنید - اما شکست - برای کپی دو رشته 672 00:29:28,770 --> 00:29:29,910 به شرح زیر است. 673 00:29:29,910 --> 00:29:31,730 >> من قصد دارم به چیزی می گویند به کاربر. 674 00:29:31,730 --> 00:29:34,490 من پس از رفتن به رشته و آن. 675 00:29:34,490 --> 00:29:36,400 و در حال حاضر، من در انجام این چک در اینجا. 676 00:29:36,400 --> 00:29:37,990 ما با اشاره به این حالی که به عقب. 677 00:29:37,990 --> 00:29:42,490 اما زمانی که ممکن است به رشته تهی بازگشت، یکی دیگر از شخصیت خاص، و یا ویژه 678 00:29:42,490 --> 00:29:45,050 نماد بیایید می گویند. 679 00:29:45,050 --> 00:29:45,900 اگر آن را از حافظه. 680 00:29:45,900 --> 00:29:48,970 >> به عنوان مثال، اگر کاربر واقعا بودن دشوار و انواع بی رحم است 681 00:29:48,970 --> 00:29:51,220 تعدادی از شخصیت های در صفحه کلید و بازدیدها را وارد کنید. 682 00:29:51,220 --> 00:29:54,580 در صورتی که تعدادی از شخصیت نه تنها می تواند مناسب در RAM برای هر دیوانه 683 00:29:54,580 --> 00:29:57,820 دلیل، به خوبی رشته ممکن است به خوبی بازگشت به تهی. 684 00:29:57,820 --> 00:30:01,080 >> یا اگر برنامه خود را به خودی خود انجام بسیاری از چیزهای دیگر و فقط وجود دارد 685 00:30:01,080 --> 00:30:03,790 حافظه به اندازه کافی برای رشته GET برای موفقیت، این ممکن است در نهایت 686 00:30:03,790 --> 00:30:05,240 تا بازگشت به تهی. 687 00:30:05,240 --> 00:30:07,160 اما اجازه دهید در این مورد دقیق تر به این چیست. 688 00:30:07,160 --> 00:30:10,280 ها نوع داده ها چیست واقعا؟ 689 00:30:10,280 --> 00:30:11,610 ستاره چار. 690 00:30:11,610 --> 00:30:14,560 >> پس از آن معلوم است، در حال حاضر ما می توانید پوست لایه تهی عقب. 691 00:30:14,560 --> 00:30:17,500 معلوم است، تهی است - بله، بدیهی است یک نماد خاص است. 692 00:30:17,500 --> 00:30:19,190 اما آنچه در آن است واقعا؟ 693 00:30:19,190 --> 00:30:25,220 واقعا، تهی فقط یک نماد است که ما انسان با استفاده از به نمایندگی از صفر و همچنین. 694 00:30:25,220 --> 00:30:29,010 >> بنابراین نویسندگان C، و کامپیوتر به طور کلی، تصمیم گرفت سال پیش 695 00:30:29,010 --> 00:30:30,010 که، می دانید چه. 696 00:30:30,010 --> 00:30:34,850 چرا ما اطمینان حاصل شود که هیچ کاربر داده است تا کنون، هرگز، هرگز 697 00:30:34,850 --> 00:30:36,730 ذخیره شده در صفر خداحافظی؟ 698 00:30:36,730 --> 00:30:39,610 در واقع، حتی در مثال دلخواه من قبل از آن، من شروع نکردند شماره 699 00:30:39,610 --> 00:30:40,390 بایت صفر. 700 00:30:40,390 --> 00:30:41,540 من در یک شده. 701 00:30:41,540 --> 00:30:44,950 از آنجا که من در جهان می دانستند که مردم تصمیم گرفته اند به رزرو صفر 702 00:30:44,950 --> 00:30:47,970 بایت در حافظه هر کسی را به عنوان چیزی خاص. 703 00:30:47,970 --> 00:30:52,020 >> به همین دلیل، در هر زمان که شما می خواهید سیگنال است که چیزی اشتباه رفته است 704 00:30:52,020 --> 00:30:55,960 با توجه به آدرس شما بازگردانده تهی - در غیر این صورت به عنوان صفر شناخته می شود - 705 00:30:55,960 --> 00:30:59,410 و چون شما می دانید که وجود ندارد حلال داده ها در آدرس صفر، به وضوح 706 00:30:59,410 --> 00:31:00,400 این بدان معناست که یک خطا. 707 00:31:00,400 --> 00:31:04,080 و به همین دلیل ما، توسط کنوانسیون، بررسی برای چیزی پوچ و بازگشت 708 00:31:04,080 --> 00:31:06,260 مانند یکی از آن موارد است. 709 00:31:06,260 --> 00:31:09,300 >> بنابراین اگر ما در حال حاضر پایین، این فقط سپس برخی از چک کردن خطا، تنها در مورد 710 00:31:09,300 --> 00:31:10,610 چیزی با [اشتباه رفت؟ به قید وثیقه؟] 711 00:31:10,610 --> 00:31:13,470 در دسترس نباشد و ترک برنامه بازگشت زود هنگام است. 712 00:31:13,470 --> 00:31:19,030 این خط در حال حاضر می تواند بازنویسی شود به عنوان این که یعنی چه؟ 713 00:31:19,030 --> 00:31:23,155 در سمت چپ، مرا دیگری به من بدهید اشاره گر به یک شخصیت، و آن را تی. 714 00:31:23,155 --> 00:31:26,935 چه هستم من داخل تی ذخیره سازی، بر اساس در این یک خط از کد؟ 715 00:31:26,935 --> 00:31:30,950 716 00:31:30,950 --> 00:31:32,170 >> من ذخیره کردن یک محل. 717 00:31:32,170 --> 00:31:34,742 به طور خاص در محل که در بود. 718 00:31:34,742 --> 00:31:39,000 بنابراین در صورتی که کاربر در سلام شوند، و که اولین سلام اتفاق می افتد برای پایان دادن به 719 00:31:39,000 --> 00:31:42,567 در اینجا، و سپس 123 عدد است رفتن به دوباره از دریافت 720 00:31:42,567 --> 00:31:43,810 رشته و ذخیره شده - 721 00:31:43,810 --> 00:31:44,780 همانطور که ما قبلا هم گفتم - 722 00:31:44,780 --> 00:31:45,440 در. 723 00:31:45,440 --> 00:31:50,560 >> هنگامی که من در حال حاضر یکی دیگر از اشاره گر به اعلام یک کاراکتر و آنرا را، چه تعداد است 724 00:31:50,560 --> 00:31:53,940 به معنای واقعی کلمه برای پایان دادن به تی با توجه به داستان؟ 725 00:31:53,940 --> 00:31:55,420 بنابراین 123. 726 00:31:55,420 --> 00:32:00,310 >> بنابراین از لحاظ فنی در حال حاضر هر دو و تی با اشاره به دقیق 727 00:32:00,310 --> 00:32:02,410 همان تکه از حافظه است. 728 00:32:02,410 --> 00:32:06,140 بنابراین متوجه آنچه که من قصد دارم در حال حاضر به ثابت کند که این برنامه حشره دار است. 729 00:32:06,140 --> 00:32:08,820 >> اول من قصد دارم ادعا می کنند، با نسخه قابل چاپ F، سرمایه گذاری 730 00:32:08,820 --> 00:32:10,080 کپی از رشته. 731 00:32:10,080 --> 00:32:11,660 سپس من قصد دارم برای انجام یک کمی چک کردن خطا. 732 00:32:11,660 --> 00:32:12,160 من قصد دارم مطمئن شوید. 733 00:32:12,160 --> 00:32:16,710 بیایید مطمئن شوید که رشته T است در حداقل بزرگتر از صفر در طول، 734 00:32:16,710 --> 00:32:19,190 بنابراین برخی از شخصیت وجود دارد در واقع سرمایه گذاری. 735 00:32:19,190 --> 00:32:22,840 >> و سپس شما ممکن است این یاد از نمونه های قبلی است. 736 00:32:22,840 --> 00:32:25,630 2 بالا - که در از فایل ctype.h. 737 00:32:25,630 --> 00:32:30,800 T براکت صفر به من می دهد صفر شخصیت رشته تی. 738 00:32:30,800 --> 00:32:34,360 و 2 بالا که ارزش یکسان، البته، تبدیل آن را به بزرگ. 739 00:32:34,360 --> 00:32:38,230 >> بنابراین به طور مستقیم، این خط برجسته کد سرمایه گذاری برای اولین بار 740 00:32:38,230 --> 00:32:40,250 نامه ای در تی. 741 00:32:40,250 --> 00:32:44,485 اما این سرمایه گذاری نیست، به طور ذاتی، این نامه برای اولین بار در ثانیه است. 742 00:32:44,485 --> 00:32:48,130 اما اگر شما در حال فکر کردن به آینده، چه من برای دیدن زمانی که من این برنامه را اجرا کنید 743 00:32:48,130 --> 00:32:54,220 و نسخه قابل چاپ از هر دو اصلی، ، و کپی اصطلاح، تی؟ 744 00:32:54,220 --> 00:32:55,350 >> آنها در واقع رفتن به همان. 745 00:32:55,350 --> 00:32:56,600 و چرا آنها رفتن به همان؟ 746 00:32:56,600 --> 00:32:58,970 747 00:32:58,970 --> 00:33:01,020 آنها هر دو با اشاره به دقیقا همان چیزی. 748 00:33:01,020 --> 00:33:01,610 بنابراین اجازه دهید این کار را. 749 00:33:01,610 --> 00:33:03,160 >> را صفر را کپی کنید. 750 00:33:03,160 --> 00:33:04,070 این کامپایل OK است. 751 00:33:04,070 --> 00:33:06,500 اجازه من کپی صفر اجرا. 752 00:33:06,500 --> 00:33:10,110 اجازه بدهید من نوع چیزی شبیه سلام در تمام حروف کوچک و سپس ضربه را وارد کنید. 753 00:33:10,110 --> 00:33:16,520 و آن را ادعا می کند که هر دو S اصلی و کپی در واقع یکسان هستند. 754 00:33:16,520 --> 00:33:17,920 >> بنابراین چه چیزی واقعا اتفاق افتاده است که اینجا هستید؟ 755 00:33:17,920 --> 00:33:20,100 اجازه بدهید من این تصویر ترسیم فقط برای گفتن داستان در یک 756 00:33:20,100 --> 00:33:21,340 راه کمی متفاوت است. 757 00:33:21,340 --> 00:33:26,060 چه چیزی واقعا در رفتن زیر هود زمانی که من اعلام می کنم چیزی شبیه به 758 00:33:26,060 --> 00:33:30,410 کاراکتر شروع، و یا رشته ها، من یک اشاره گر - 759 00:33:30,410 --> 00:33:33,090 که اتفاق می افتد به چهار بایت در دستگاه CS50 760 00:33:33,090 --> 00:33:34,410 و در بسیاری از کامپیوتر. 761 00:33:34,410 --> 00:33:36,008 و من قصد دارم به این ثانیه. 762 00:33:36,008 --> 00:33:39,810 و این در حال حاضر برخی از ارزش ناشناخته است. 763 00:33:39,810 --> 00:33:43,900 >> هنگامی که شما یک متغیر، مگر اینکه شما خودتان را یک ارزش وجود دارد، که 764 00:33:43,900 --> 00:33:44,570 می داند آنچه وجود دارد. 765 00:33:44,570 --> 00:33:48,110 این می تواند برخی از دنباله تصادفی بیت از اعدام قبلی. 766 00:33:48,110 --> 00:33:52,490 بنابراین، هنگامی که من در خط من از کد را دریافت کنید رشته و سپس ذخیره بازگشت 767 00:33:52,490 --> 00:33:54,800 ارزش در بازدید کنندگان رشته به نحوی - 768 00:33:54,800 --> 00:33:58,520 و ما در نهایت پوست را کسب می رشته با این نسخهها کار، به نحوی اختصاص 769 00:33:58,520 --> 00:34:00,480 آرایه ای که احتمالا به نظر می رسد کمی شبیه به این. 770 00:34:00,480 --> 00:34:05,390 H-E-L-L-O، بک اسلش صفر. 771 00:34:05,390 --> 00:34:09,510 >> بیایید فرض کنید که این آدرس است 123 فقط قوام. 772 00:34:09,510 --> 00:34:13,000 بنابراین بازده رشته، در هایلایت خط وجود دارد، آن را می گرداند 773 00:34:13,000 --> 00:34:15,000 تعداد ما گفت، 123. 774 00:34:15,000 --> 00:34:17,420 پس آنچه واقعا در داخل از بازدید کنندگان در اینجا می رود؟ 775 00:34:17,420 --> 00:34:26,590 >> خوب، آنچه که واقعا می رود در داخل از S 123 است. 776 00:34:26,590 --> 00:34:29,250 اما صادقانه بگویم، من کمی اشتباه همه از این آدرس ها، 777 00:34:29,250 --> 00:34:30,320 همه این اعداد خودسرانه. 778 00:34:30,320 --> 00:34:32,290 123، 124، 127. 779 00:34:32,290 --> 00:34:34,570 پس اجازه دهید در واقع ساده جهان کمی. 780 00:34:34,570 --> 00:34:38,800 >> هنگامی که ما در مورد اشاره گرها صحبت می کنید، رک و پوست کنده، به ما انسان ها، که هک اهمیت می دهد که در آن 781 00:34:38,800 --> 00:34:39,870 چیزهایی که در حافظه؟ 782 00:34:39,870 --> 00:34:41,080 که کاملا خودسرانه است. 783 00:34:41,080 --> 00:34:43,370 این بستگی به چگونگی بستگی دارد مقدار رم از کاربر است. 784 00:34:43,370 --> 00:34:46,590 رفتن به بستگی دارد که در روز شما برای اجرای این برنامه، شاید، و 785 00:34:46,590 --> 00:34:48,250 چه ورودی کاربر به شما می دهد. 786 00:34:48,250 --> 00:34:50,060 ما خانه به جزئیات بی اهمیت هستید. 787 00:34:50,060 --> 00:34:54,230 >> آنقدر انتزاعی بیایید دور و می گویند که، زمانی که شما برای اجرای یک خط از کد شبیه به این، 788 00:34:54,230 --> 00:34:57,320 کاراکتر ستاره می شود بازگشت ارزش رشته GET. 789 00:34:57,320 --> 00:35:02,720 چرا ما به جای قرعه کشی تنها چیزی است که ما حفظ خواستار یک اشاره گر به عنوان اینکه آن 790 00:35:02,720 --> 00:35:04,140 اشاره در چیزی است؟ 791 00:35:04,140 --> 00:35:07,000 بنابراین من ادعا می کنند که در حال حاضر بازدید کنندگان یک اشاره گر وجود دارد - 792 00:35:07,000 --> 00:35:08,480 در زیر کاپوت آن آدرس است. 793 00:35:08,480 --> 00:35:11,330 اما آن را فقط با اشاره به اولین بایت در 794 00:35:11,330 --> 00:35:12,780 رشته ای که بازگردانده شده است. 795 00:35:12,780 --> 00:35:16,710 >> اگر من در حال حاضر به کد در اینجا، چه خبر است در این خط؟ 796 00:35:16,710 --> 00:35:20,020 خوب، در این خط برجسته در حال حاضر، من اعلام ظاهرا دیگر 797 00:35:20,020 --> 00:35:21,070 متغیر به نام تی. 798 00:35:21,070 --> 00:35:25,700 اما آن را نیز یک اشاره گر، بنابراین من قصد دارم آن را رسم، در تئوری، دقیق 799 00:35:25,700 --> 00:35:26,710 جعبه همان اندازه است. 800 00:35:26,710 --> 00:35:28,160 و من قصد دارم به تماس آن را تی. 801 00:35:28,160 --> 00:35:33,500 >> و در حال حاضر اگر ما به عقب برویم به کد دوباره، وقتی که من ذخیره داخل تی، 802 00:35:33,500 --> 00:35:36,920 چه چیزی هستم قرار دادن داخل تی؟ 803 00:35:36,920 --> 00:35:39,350 خوب از لحاظ فنی، این شماره 123 بود. 804 00:35:39,350 --> 00:35:42,270 پس در واقع من باید نوشتن 123 تعداد وجود دارد. 805 00:35:42,270 --> 00:35:43,900 اما اجازه دهید آن را به سطح بالاتری را. 806 00:35:43,900 --> 00:35:48,090 تی، آن است که اگر فقط یک اشاره گر، به طور مستقیم، این است که فقط. 807 00:35:48,090 --> 00:35:49,800 این همه که در حال ذخیره شده در آن وجود دارد. 808 00:35:49,800 --> 00:35:54,970 >> بنابراین در حال حاضر در آخرین خطوط جالب از کد، زمانی که من در واقع در مورد رفتن 809 00:35:54,970 --> 00:36:00,680 سرمایه گذاری کاراکتر صفر در T، چه می گذرد؟ 810 00:36:00,680 --> 00:36:06,310 خب، تی براکت صفر در حال حاضر با اشاره به چه شخصیت، احتمالا؟ 811 00:36:06,310 --> 00:36:07,460 >> این اشاره به ساعت. 812 00:36:07,460 --> 00:36:08,870 از آنجا که براکت تی صفر - 813 00:36:08,870 --> 00:36:12,490 به یاد بیاورید، این نحو قدیمی است. تی براکت صفر فقط بدان معناست که اگر یک رشته است t 814 00:36:12,490 --> 00:36:15,590 براکت صفر به معنی صفر شخصیت در آن قدرت. 815 00:36:15,590 --> 00:36:18,650 بنابراین آنچه که واقعا به معنای به این آرایه - 816 00:36:18,650 --> 00:36:21,520 و بله، این ممکن است 123، این ممکن است 124. 817 00:36:21,520 --> 00:36:22,790 اما این همه نسبی، به یاد داشته باشید. 818 00:36:22,790 --> 00:36:25,640 هر زمان که صحبت کردن در مورد یک آرایه، ما باید استفاده از صحبت کردن در مورد 819 00:36:25,640 --> 00:36:27,000 شاخص های نسبی. 820 00:36:27,000 --> 00:36:31,120 >> و بنابراین در حال حاضر ما فقط می توانیم فرض کنیم که تی براکت صفر ساعت است. 821 00:36:31,120 --> 00:36:35,090 بنابراین اگر من اسمش 2 بالا بر روی آن، آنچه که واقعا انجام سرمایه گذاری است 822 00:36:35,090 --> 00:36:38,290 ساعت حروف کوچک به بزرگ H. اما البته، چه است؟ 823 00:36:38,290 --> 00:36:41,010 این اشاره به همان رشته رفو. 824 00:36:41,010 --> 00:36:44,200 >> پس این همه که اتفاق می افتد در این کد تا کنون. 825 00:36:44,200 --> 00:36:45,960 پس چه مفهوم؟ 826 00:36:45,960 --> 00:36:48,300 چگونه می توانم این دو مشکلات را حل کنیم؟ 827 00:36:48,300 --> 00:36:50,870 ما چگونه به رشته های واقعی مقایسه کرد؟ 828 00:36:50,870 --> 00:36:53,720 >> خب به طور مستقیم، چگونه می شما در مورد مقایسه دو 829 00:36:53,720 --> 00:36:55,090 رشته ها برای برابری واقعی؟ 830 00:36:55,090 --> 00:36:58,920 831 00:36:58,920 --> 00:37:00,750 >> به چه معنی است اگر دو رشته های برابر هستند؟ 832 00:37:00,750 --> 00:37:04,330 واضح نیست که آدرس خود را برابر در حافظه، چرا که کم 833 00:37:04,330 --> 00:37:06,590 سطح جزئیات پیاده سازی. 834 00:37:06,590 --> 00:37:08,360 تمام شخصیت های یکسان هستند. 835 00:37:08,360 --> 00:37:12,810 بنابراین اجازه دهید به من پیشنهاد، و اجازه دهید معرفی من در نسخه یک compare.c، 836 00:37:12,810 --> 00:37:14,970 در اینجا، بنابراین است مقایسه 1.c. 837 00:37:14,970 --> 00:37:19,590 >> اجازه بدهید من پیشنهاد می کنم که ما هنوز اشاره گر نامیده می شود، و فروشگاه در آن 838 00:37:19,590 --> 00:37:20,610 ارزش رشته GET بازگشت. 839 00:37:20,610 --> 00:37:21,750 اجازه دهید چیزی که همین کار را با T. 840 00:37:21,750 --> 00:37:23,230 بنابراین هیچ یک از کد های مختلف است. 841 00:37:23,230 --> 00:37:25,420 من قصد دارم به اضافه کردن کمی خطا چک کردن در حال حاضر. 842 00:37:25,420 --> 00:37:29,390 بنابراین در حال حاضر که ما نوع لایه برداری به عقب این لایه در CS50 از چه رشته 843 00:37:29,390 --> 00:37:33,520 در واقع، ما باید بیشتر مقعد در مورد اطمینان از ما سوء استفاده 844 00:37:33,520 --> 00:37:35,330 ارزش های نامعتبر مانند تهی. 845 00:37:35,330 --> 00:37:36,440 >> بنابراین من فقط می خواهم به بررسی کنید. 846 00:37:36,440 --> 00:37:41,490 اگر بازدید کنندگان تهی برابر نیست و t ندارد تهی برابر، این بدان معناست که ما در حال OK. 847 00:37:41,490 --> 00:37:44,460 دریافت رشته پیچ تا گرفتن هر کدام از این رشته ها. 848 00:37:44,460 --> 00:37:51,270 و شما شاید در حال حاضر می توانید حدس بزنید، چه STR CMP احتمالا کاری انجام دهید؟ 849 00:37:51,270 --> 00:37:52,000 رشته مقایسه کنید. 850 00:37:52,000 --> 00:37:55,470 >> بنابراین اگر شما برنامه در جاوا قبل از، این مثل این است که از روش برابر در 851 00:37:55,470 --> 00:37:56,490 کلاس رشته. 852 00:37:56,490 --> 00:37:57,890 اما برای کسانی از شما که ندارند قبل از برنامه ریزی، 853 00:37:57,890 --> 00:37:59,320 این فقط یک تابع ج. 854 00:37:59,320 --> 00:38:02,180 این اتفاق می افتد به در آمده است فایل با نام string.h. 855 00:38:02,180 --> 00:38:03,830 که که در آن اعلام شده است. 856 00:38:03,830 --> 00:38:05,110 >> و رشته مقایسه - 857 00:38:05,110 --> 00:38:07,530 من در واقع استفاده از آن را فراموش کرده ام، اما هرگز به ذهن است. 858 00:38:07,530 --> 00:38:10,470 به یاد بیاورید که ما می توانیم انجام دهیم مرد، هم بزنید مقایسه کنید. 859 00:38:10,470 --> 00:38:12,590 و این است که به مطرح کردن کتابچه راهنمای برنامه نویسان لینوکس. 860 00:38:12,590 --> 00:38:14,060 و آن را رک و پوست کنده، کمی مرموز است. 861 00:38:14,060 --> 00:38:15,270 اما من در اینجا می توانید که، بله را ببینید. 862 00:38:15,270 --> 00:38:17,570 من باید شامل string.h. 863 00:38:17,570 --> 00:38:20,590 >> و آن را در اینجا می گوید زیر توصیف " تابع مقایسه رشته مقایسه 864 00:38:20,590 --> 00:38:24,560 دو رشته S1 و S2. "و S1 و S2 ظاهرا این دو 865 00:38:24,560 --> 00:38:26,120 آرگومان شوید. 866 00:38:26,120 --> 00:38:28,650 من واقعا به یاد داشته باشید آنچه توایع است، اما در حال حاضر متوجه - 867 00:38:28,650 --> 00:38:31,480 و شما ممکن است در حال حاضر دیده می شود این کار زمانی که تو استفاده از صفحات man اگر شما 868 00:38:31,480 --> 00:38:32,390 آن را همه - 869 00:38:32,390 --> 00:38:36,220 آن ستاره کاراکتر است فقط مترادف با رشته. 870 00:38:36,220 --> 00:38:40,440 >> پس از آن دو رشته، S1 مقایسه و S2، و آن را می گرداند یک عدد صحیح کمتر 871 00:38:40,440 --> 00:38:44,930 از یا مساوی یا بزرگتر از صفر اگر S1 یافت شده، به ترتیب، به 872 00:38:44,930 --> 00:38:47,450 کمتر از، یا مسابقه، و یا بیشتر از S2. 873 00:38:47,450 --> 00:38:51,220 این فقط یک راه بسیار پیچیده گفت: که رشته مقایسه بازده 874 00:38:51,220 --> 00:38:55,760 صفر اگر دو رشته به طور مستقیم یکسان، شخصیت 875 00:38:55,760 --> 00:38:57,120 شخصیت برای شخصیت. 876 00:38:57,120 --> 00:38:59,970 >> این تابع اگر عدد منفی ، حروف الفبا، قرار است 877 00:38:59,970 --> 00:39:01,010 قبل از تی آمده است. 878 00:39:01,010 --> 00:39:05,300 یا می گرداند یک عدد مثبت است اگر قرار است از t آمده است 879 00:39:05,300 --> 00:39:06,170 بر اساس حروف الفبا. 880 00:39:06,170 --> 00:39:08,360 بنابراین با این تابع ساده، می تواند شما، به عنوان مثال، مرتب 881 00:39:08,360 --> 00:39:09,770 تمام دسته از کلمات؟ 882 00:39:09,770 --> 00:39:13,984 >> بنابراین در این نسخه جدید، من قصد دارم به جلو بروید و را compare1. 883 00:39:13,984 --> 00:39:15,750 نقطه اسلش یکی مقایسه کنید. 884 00:39:15,750 --> 00:39:18,030 من در سلام در تمام حروف کوچک تایپ کنید. 885 00:39:18,030 --> 00:39:20,300 من قصد دارم به نوع در سلام در تمام حروف کوچک دوباره. 886 00:39:20,300 --> 00:39:23,340 و خوشبختانه در حال حاضر آن را متوجه من هم همین را تایپ. 887 00:39:23,340 --> 00:39:27,520 >> در همین حال، اگر من در سلام در پایین تایپ مورد و سلام در مورد بالا و 888 00:39:27,520 --> 00:39:29,710 آنها را مقایسه کنید، من تایپ همه چیز متفاوت است. 889 00:39:29,710 --> 00:39:32,530 زیرا نه تنها آدرس متفاوت است، اما ما در حال مقایسه 890 00:39:32,530 --> 00:39:35,350 شخصیت های مختلف دوباره و دوباره. 891 00:39:35,350 --> 00:39:37,320 >> خوب برویم و رفع دیگر مشکل در حال حاضر. 892 00:39:37,320 --> 00:39:41,590 اجازه دهید من باز کردن نسخه یکی از کپی، که در حال حاضر آدرس 893 00:39:41,590 --> 00:39:42,900 این مسئله به شرح زیر است. 894 00:39:42,900 --> 00:39:45,650 و این یکی رفتن به نگاه کمی پیچیده تر است. 895 00:39:45,650 --> 00:39:49,320 اما اگر شما در مورد چه مشکل فکر می کنم ما نیاز به حل، امیدوارم این خواهد بود که 896 00:39:49,320 --> 00:39:51,870 اکنون مشخص شده فقط در یک لحظه. 897 00:39:51,870 --> 00:39:57,280 >> بنابراین این خط اول، کاراکتر شروع تی، در شرایط خارج از حرفه یا فن خاصی است می تواند کسی پیشنهاد 898 00:39:57,280 --> 00:39:59,450 چه این خط در اینجا به معنای؟ 899 00:39:59,450 --> 00:40:01,050 چهار ستاره T، چه چیزی است که انجام؟ 900 00:40:01,050 --> 00:40:06,660 901 00:40:06,660 --> 00:40:07,210 >> خوب است. 902 00:40:07,210 --> 00:40:09,500 ایجاد یک اشاره گر به برخی نقطه در حافظه است. 903 00:40:09,500 --> 00:40:10,930 و اجازه دهید آن را کمی اصلاح به من. 904 00:40:10,930 --> 00:40:17,180 یک متغیر است که ذخیره آدرس برخی از کاراکتر در حافظه، فقط 905 00:40:17,180 --> 00:40:18,480 به کمی مناسب تر است. 906 00:40:18,480 --> 00:40:21,210 >> خوب، بنابراین در حال حاضر در سمت راست، من هرگز دیده می شود یکی از این توابع 907 00:40:21,210 --> 00:40:22,660 قبل، malloc. 908 00:40:22,660 --> 00:40:26,980 اما آنچه ممکن است که به معنای؟ 909 00:40:26,980 --> 00:40:28,050 تخصیص حافظه. 910 00:40:28,050 --> 00:40:29,410 تخصیص حافظه. 911 00:40:29,410 --> 00:40:33,050 >> پس از آن معلوم است، تا به حال، ما واقعا تا به حال یک راه قدرتمند 912 00:40:33,050 --> 00:40:36,210 درخواست سیستم عامل، برخی از حافظه را به من بدهید. 913 00:40:36,210 --> 00:40:39,980 در عوض، ما در حال حاضر یک تابع به نام malloc می کند که دقیقا همان است که. 914 00:40:39,980 --> 00:40:42,960 حتی اگر این یک بیت از یک حواس پرتی در حال حاضر، توجه کنید که در 915 00:40:42,960 --> 00:40:46,200 بین دو پرانتز است فقط برای رفتن به یک عدد. 916 00:40:46,200 --> 00:40:48,510 جایی که من در سوال تایپ کرده اید علائم می تواند یک عدد است. 917 00:40:48,510 --> 00:40:51,020 >> و این تعداد به این معنی، من 10 بایت می دهد. 918 00:40:51,020 --> 00:40:52,320 من 20 بایت. 919 00:40:52,320 --> 00:40:53,820 من 100 بایت بده. 920 00:40:53,820 --> 00:40:56,500 malloc بهترین های خود را به انجام بپرسید سیستم عامل - 921 00:40:56,500 --> 00:40:57,630 لینوکس، در این مورد - 922 00:40:57,630 --> 00:40:59,630 هی، 100 بایت از حافظه در دسترس؟ 923 00:40:59,630 --> 00:41:04,320 اگر چنین است، بازگشت این کلمه در ادامه متن به من بازگشت آدرس که از 924 00:41:04,320 --> 00:41:06,610 آن دسته از بایت، شاید؟ 925 00:41:06,610 --> 00:41:07,610 برای اولین بار است. 926 00:41:07,610 --> 00:41:10,460 >> بنابراین در اینجا بیش از حد - و این غالب است در C، هر زمان که شما 927 00:41:10,460 --> 00:41:11,680 خرید و فروش با آدرس؟ 928 00:41:11,680 --> 00:41:15,830 شما تقریبا همیشه با خرید و فروش اولین آدرس این ترتیب، مهم نیست چقدر بزرگ 929 00:41:15,830 --> 00:41:19,490 یک تکه از حافظه شما در حال دست، پس به صحبت می کنند. 930 00:41:19,490 --> 00:41:20,880 >> پس بیایید شیرجه رفتن در اینجا. 931 00:41:20,880 --> 00:41:23,940 من در تلاش برای تخصیص چگونه بسیاری از بایت، دقیقا؟ 932 00:41:23,940 --> 00:41:24,080 خوب. 933 00:41:24,080 --> 00:41:26,090 طول رشته - اجازه انجام یک مثال بتن. 934 00:41:26,090 --> 00:41:30,700 اگر است سلام، H-E-L-L-O، چه طول رشته، بدیهی است؟ 935 00:41:30,700 --> 00:41:32,010 پس از آن پنج است. 936 00:41:32,010 --> 00:41:34,590 اما من انجام به علاوه 1 که، چرا؟ 937 00:41:34,590 --> 00:41:37,700 چرا من می خواهم شش بایت به جای پنج؟ 938 00:41:37,700 --> 00:41:38,790 دخشه پوچ. 939 00:41:38,790 --> 00:41:41,210 >> من نمی خواهم به ترک این دخشه پوچ خاص. 940 00:41:41,210 --> 00:41:45,160 از آنجا که اگر من را یک کپی از سلام و فقط انجام H-E-L-L-O، اما من قرار داده نشده 941 00:41:45,160 --> 00:41:50,160 که از کاراکتر ویژه ای، کامپیوتر ممکن است داشته باشد، شانس، یک بک اسلش 942 00:41:50,160 --> 00:41:51,730 صفر برای من. 943 00:41:51,730 --> 00:41:55,570 و بنابراین اگر من در تلاش برای کشف کردن طول کپی، من ممکن است فکر می کنم که 944 00:41:55,570 --> 00:41:59,360 آن 20 حرف طولانی باشد، یا یک میلیون حرف طولانی اگر من فقط هرگز اتفاق می افتد 945 00:41:59,360 --> 00:42:01,050 ضربه یک بک اسلش صفر است. 946 00:42:01,050 --> 00:42:05,780 >> بنابراین ما نیاز به شش بایت برای ذخیره H-E-L-L-O، بک اسلش صفر. 947 00:42:05,780 --> 00:42:07,870 و سپس این فقط به مقعد فوق العاده است. 948 00:42:07,870 --> 00:42:10,700 فرض کنید که من را فراموش کرده ام چه به اندازه یک کاراکتر است. 949 00:42:10,700 --> 00:42:12,020 ما را گفت: آن یک بایت. 950 00:42:12,020 --> 00:42:12,860 و معمولا آن است. 951 00:42:12,860 --> 00:42:15,425 در تئوری، آن می تواند چیزی مختلف، در مک های مختلف و یا 952 00:42:15,425 --> 00:42:16,250 کامپیوتر متفاوت است. 953 00:42:16,250 --> 00:42:19,650 >> پس از آن معلوم میشود که این اپراتور وجود دارد به نام sizeof که اگر شما آن را عبور 954 00:42:19,650 --> 00:42:22,680 نام نوع داده - مانند کاراکتر، یا بین المللی، یا شناور - 955 00:42:22,680 --> 00:42:26,930 آن را به شما بگویم، به صورت پویا، که چگونه بسیاری بایت کاراکتر طول می کشد تا در این 956 00:42:26,930 --> 00:42:28,090 کامپیوتر خاص است. 957 00:42:28,090 --> 00:42:31,360 >> پس این است که به طور موثر تنها ضرب المثل مثل حکایت 1 یا 958 00:42:31,360 --> 00:42:32,440 زمان محلی شما با هیچ چیز در همه. 959 00:42:32,440 --> 00:42:36,340 اما من انجام آن را فقط مقعد فوق العاده، که فقط در مورد کاراکتر متفاوت 960 00:42:36,340 --> 00:42:40,610 بر روی کامپیوتر در مقابل معدن خود را، در این راه ریاضی همیشه به بررسی کنید. 961 00:42:40,610 --> 00:42:43,720 >> در نهایت، در اینجا من را برای تهی تیک بزنید، است که همیشه عمل خوب - دوباره، 962 00:42:43,720 --> 00:42:44,920 هر زمان ما در حال برخورد با اشاره گر. 963 00:42:44,920 --> 00:42:47,520 اگر malloc قادر به دادن نبود من شش byes - که 964 00:42:47,520 --> 00:42:49,210 بعید است، اما تنها در مورد - 965 00:42:49,210 --> 00:42:50,730 یکی بلافاصله بازگشت. 966 00:42:50,730 --> 00:42:53,290 و در حال حاضر، به جلو و کپی رشته به شرح زیر است. 967 00:42:53,290 --> 00:42:57,240 و این نحو آشنا است، البته در نقش های مختلف. 968 00:42:57,240 --> 00:43:01,210 >> من قصد دارم به پیش رفتن و گرفتن رشته طول و ذخیره آن در n. 969 00:43:01,210 --> 00:43:06,620 من پس از رفتن به تکرار از من برابر صفر تا و از جمله N، 970 00:43:06,620 --> 00:43:08,410 بزرگتر یا مساوی با است. 971 00:43:08,410 --> 00:43:13,540 به طوری که در هر تکرار، من به گل شخصیت i ام از در i ام 972 00:43:13,540 --> 00:43:15,380 شخصیت تی. 973 00:43:15,380 --> 00:43:18,190 >> بنابراین آنچه که واقعا در زیر هود در اینجا؟ 974 00:43:18,190 --> 00:43:22,140 خوب اگر این به عنوان مثال، است - 975 00:43:22,140 --> 00:43:26,400 و من در کلمه H-E-L-L-O تایپ و یک بک اسلش صفر وجود دارد. 976 00:43:26,400 --> 00:43:29,020 و دوباره، این است که با اشاره به اینجا. 977 00:43:29,020 --> 00:43:30,830 و در حال حاضر اینجا T است. 978 00:43:30,830 --> 00:43:34,860 >> و این اشاره در حال حاضر به یک کپی از حافظه، درست است؟ 979 00:43:34,860 --> 00:43:37,340 Malloc تا من کل تکه از حافظه است. 980 00:43:37,340 --> 00:43:41,440 من نمی دانم در ابتدا چه در هر یک از این مکان. 981 00:43:41,440 --> 00:43:44,340 بنابراین من قصد دارم از این به عنوان فکر می کنم یک دسته کامل از علامت سوال. 982 00:43:44,340 --> 00:43:50,190 >> اما به محض این که من شروع حلقه از صفر در بالا از طریق طول S، T 983 00:43:50,190 --> 00:43:52,790 براکت صفر و t براکت 1 - 984 00:43:52,790 --> 00:43:55,080 و من این را قرار داده و در حال حاضر در بالای سر - 985 00:43:55,080 --> 00:44:04,190 تی براکت صفر و براکت صفر منظورم که من قصد دارم به کپی کردن 986 00:44:04,190 --> 00:44:09,875 تکراری در اینجا H، E-L-L-O. به علاوه، به خاطر من به همراه 987 00:44:09,875 --> 00:44:12,370 1 اسلش صفر. 988 00:44:12,370 --> 00:44:19,060 >> بنابراین در حال حاضر در مورد مقایسه 1.c، در پایان، اگر من نسخه قابل چاپ 989 00:44:19,060 --> 00:44:24,760 سرمایه تی، ما باید ببینید که بازدید کنندگان بدون تغییر است. 990 00:44:24,760 --> 00:44:26,090 اجازه دهید من جلو بروید و این کار را انجام. 991 00:44:26,090 --> 00:44:28,630 بنابراین copy1. 992 00:44:28,630 --> 00:44:30,860 نقطه اسلش copy1. 993 00:44:30,860 --> 00:44:33,670 من قصد دارم به نوع در سلام، را وارد کنید. 994 00:44:33,670 --> 00:44:37,430 و در حال حاضر متوجه، تنها کپی با حروف بزرگ شده است. 995 00:44:37,430 --> 00:44:40,890 از آنجا که من واقعا دو تکه های حافظه. 996 00:44:40,890 --> 00:44:44,390 >> متاسفانه، شما می توانید برخی از زیبا را انجام دهید همه چیز بد و بسیار خطرناک است در اینجا. 997 00:44:44,390 --> 00:44:49,290 اجازه دهید من بکشد تا به عنوان مثال در حال حاضر اینجا، است که به ما می دهد به عنوان مثال از چند 998 00:44:49,290 --> 00:44:51,540 خطوط مختلف. 999 00:44:51,540 --> 00:44:56,040 پس فقط به طور مستقیم در اینجا، خط اول از کد، اعضای هیات تحریریه ستاره *، اعلام 1000 00:44:56,040 --> 00:44:57,340 یک متغیر به نام *. 1001 00:44:57,340 --> 00:44:58,810 و چه نوع داده که متغیر؟ 1002 00:44:58,810 --> 00:45:01,820 1003 00:45:01,820 --> 00:45:04,290 نوع داده آن متغیر چه خبر؟ 1004 00:45:04,290 --> 00:45:06,980 بود که مطلب یا داستان جالب نیست. 1005 00:45:06,980 --> 00:45:08,350 >> ستاره نوع داده int است. 1006 00:45:08,350 --> 00:45:12,600 پس چه معنا است؟ ایکس آدرس یک int را ذخیره کنید. 1007 00:45:12,600 --> 00:45:13,520 ساده است که به عنوان. 1008 00:45:13,520 --> 00:45:16,220 Y برای ذخیره آدرس بین المللی. 1009 00:45:16,220 --> 00:45:18,390 خط سوم چیست از کد انجام می دهند وجود دارد؟ 1010 00:45:18,390 --> 00:45:21,850 این تخصیص چگونه بسیاری از بایت، به احتمال زیاد؟ 1011 00:45:21,850 --> 00:45:22,350 چهار. 1012 00:45:22,350 --> 00:45:25,460 از آنجا که از اندازه یک int است به طور کلی چهار،، malloc چهار می دهد 1013 00:45:25,460 --> 00:45:29,950 به من آدرس یک تکه حافظه، برای اولین بار است که از بایت است 1014 00:45:29,950 --> 00:45:32,110 در حال حاضر در x ذخیره می شود. 1015 00:45:32,110 --> 00:45:34,410 >> در حال حاضر ما در حال حرکت کمی به سرعت. 1016 00:45:34,410 --> 00:45:35,760 ستاره * یعنی چه؟ 1017 00:45:35,760 --> 00:45:38,480 1018 00:45:38,480 --> 00:45:42,590 این بدان معنی است به این آدرس بروید قرار داده و چه تعداد وجود دارد؟ 1019 00:45:42,590 --> 00:45:43,870 با قرار دادن عدد 42 وجود دارد. 1020 00:45:43,870 --> 00:45:47,590 ستاره Y به معنی رفتن به آنچه در Y قرار داده و عدد 13 وجود دارد. 1021 00:45:47,590 --> 00:45:48,600 >> اما یک دقیقه صبر کنید. 1022 00:45:48,600 --> 00:45:51,640 چیست در Y در حال حاضر؟ 1023 00:45:51,640 --> 00:45:54,950 آدرس Y نگهداری؟ 1024 00:45:54,950 --> 00:45:55,770 ما نمی دانیم، درست است؟ 1025 00:45:55,770 --> 00:45:59,230 ما هرگز یک بار استفاده از انتساب اپراتور شامل Y. 1026 00:45:59,230 --> 00:46:03,370 بنابراین y به خط دوم اعلام کرد فعال است فقط برخی از ارزش زباله، بزرگ 1027 00:46:03,370 --> 00:46:04,760 علامت سؤال پس به صحبت می کنند. 1028 00:46:04,760 --> 00:46:07,230 آن را می توان به طور تصادفی با اشاره به هر چیزی در حافظه، که 1029 00:46:07,230 --> 00:46:08,340 به طور کلی بد است. 1030 00:46:08,340 --> 00:46:13,540 >> تا در اسرع وقت ما که خط وجود دارد، ستاره Y برابر 13، چیزی بد، 1031 00:46:13,540 --> 00:46:17,220 چیزی بسیار بد در مورد اتفاق می افتد به Binky. 1032 00:46:17,220 --> 00:46:25,810 بنابراین اجازه دهید ببینیم چه خبر است برای پایان دادن به اتفاق می افتد به Binky در اینجا در این لحظه 1033 00:46:25,810 --> 00:46:26,200 و یا پس نگاه کنید. 1034 00:46:26,200 --> 00:46:26,490 >> [پخش ویدئو] 1035 00:46:26,490 --> 00:46:26,745 >> ، با سلام، Binky. 1036 00:46:26,745 --> 00:46:27,000 از خواب بیدار. 1037 00:46:27,000 --> 00:46:29,296 این زمان برای تفریح ​​اشاره گر است. 1038 00:46:29,296 --> 00:46:30,680 >> چه خبر؟ 1039 00:46:30,680 --> 00:46:31,980 اطلاعات در مورد اشاره گر؟ 1040 00:46:31,980 --> 00:46:34,010 اوه، goodie. 1041 00:46:34,010 --> 00:46:37,220 >> خوب، برای شروع، من حدس می زنم ما رفتن به نیاز به یک زن و شوهر اشاره گر. 1042 00:46:37,220 --> 00:46:37,930 >> OK را بزنید. 1043 00:46:37,930 --> 00:46:41,650 این کد دو اشاره گر اختصاص که می تواند به اعداد صحیح اشاره می کنند. 1044 00:46:41,650 --> 00:46:43,760 >> خوب، خوب، من این دو اشاره گر را ببینید. 1045 00:46:43,760 --> 00:46:45,850 اما به نظر نمی رسد به اشاره به هر چیزی. 1046 00:46:45,850 --> 00:46:46,490 >> که درست است. 1047 00:46:46,490 --> 00:46:48,630 در ابتدا، اشاره گرها نمی کنند اشاره به هر چیزی. 1048 00:46:48,630 --> 00:46:51,700 چیزهایی را که به نقطه نامیده می شوند pointees، و راه آنها را 1049 00:46:51,700 --> 00:46:52,850 گام جداگانه. 1050 00:46:52,850 --> 00:46:53,740 >> اوه، راست، راست. 1051 00:46:53,740 --> 00:46:54,500 من می دانستم که. 1052 00:46:54,500 --> 00:46:56,270 pointees جدا هستند. 1053 00:46:56,270 --> 00:46:58,553 پس چگونه می توانم pointee به شما اختصاص؟ 1054 00:46:58,553 --> 00:46:59,480 >> OK را بزنید. 1055 00:46:59,480 --> 00:47:03,707 خوب، این کد اختصاص یک عدد صحیح جدید pointee، و این بخش مجموعه X 1056 00:47:03,707 --> 00:47:05,520 برای اشاره به آن است. 1057 00:47:05,520 --> 00:47:06,760 >> ، با سلام، به نظر می رسد که بهتر است. 1058 00:47:06,760 --> 00:47:08,520 پس این کار را انجام چیزی. 1059 00:47:08,520 --> 00:47:09,530 >> OK را بزنید. 1060 00:47:09,530 --> 00:47:14,110 من dereference X اشاره گر به ذخیره شماره 42 به pointee آن. 1061 00:47:14,110 --> 00:47:17,660 برای این ترفند، من سحر و جادو من نیاز گرز غیر مرجع. 1062 00:47:17,660 --> 00:47:20,695 >> شما گرز جادویی هرگاه؟ 1063 00:47:20,695 --> 00:47:22,632 آه، فوق العاده است. 1064 00:47:22,632 --> 00:47:24,620 >> این همان چیزی است که کد به نظر می رسد مانند. 1065 00:47:24,620 --> 00:47:27,526 من فقط راه اندازی تعداد، و - 1066 00:47:27,526 --> 00:47:28,250 >> هی، نگاه کنید. 1067 00:47:28,250 --> 00:47:29,680 آن وجود دارد. 1068 00:47:29,680 --> 00:47:34,520 در پس انجام dereference X شرح زیر به فلش برای دسترسی به pointee آن. 1069 00:47:34,520 --> 00:47:36,690 در این مورد، برای ذخیره 42 در آن وجود دارد. 1070 00:47:36,690 --> 00:47:40,890 هی، سعی کنید با استفاده از آن برای ذخیره شماره 13 از طریق اشاره گر دیگر، Y. 1071 00:47:40,890 --> 00:47:42,125 >> OK را بزنید. 1072 00:47:42,125 --> 00:47:46,810 من فقط در اینجا به y و بدست آوردن شماره 13 راه اندازی شده است. 1073 00:47:46,810 --> 00:47:50,890 و سپس عصا را هرگاه و فقط - 1074 00:47:50,890 --> 00:47:52,430 ایست! 1075 00:47:52,430 --> 00:47:53,030 >> اوه، هی. 1076 00:47:53,030 --> 00:47:54,610 که کار نمی کند. 1077 00:47:54,610 --> 00:47:58,200 بگو، Binky، من فکر نمی کنم هرگاه Y ایده خوبی است، 1078 00:47:58,200 --> 00:48:01,370 چون راه اندازی pointee است گام جداگانه است. 1079 00:48:01,370 --> 00:48:03,460 و من فکر نمی کنم که ما تا به حال آن را انجام داد. 1080 00:48:03,460 --> 00:48:03,810 >> -هووم. 1081 00:48:03,810 --> 00:48:05,160 خوب نقطه. 1082 00:48:05,160 --> 00:48:07,410 >> آره، ما Y اشاره گر اختصاص داده است. 1083 00:48:07,410 --> 00:48:10,045 اما ما آن را هرگز به اشاره به pointee. 1084 00:48:10,045 --> 00:48:10,490 >> -هووم. 1085 00:48:10,490 --> 00:48:12,170 بسیار هوشیار. 1086 00:48:12,170 --> 00:48:13,790 >> با سلام، شما به دنبال خوب وجود دارد، Binky. 1087 00:48:13,790 --> 00:48:16,920 آیا می توانم به شما به طوری که y نقاط به آن را تعمیر به pointee همان x را؟ 1088 00:48:16,920 --> 00:48:17,810 >> مطمئنا. 1089 00:48:17,810 --> 00:48:20,300 من گرز جادویی من خواهید استفاده انتساب اشاره گر. 1090 00:48:20,300 --> 00:48:22,240 >> این است که برای رفتن به یک مشکل مثل قبل؟ 1091 00:48:22,240 --> 00:48:22,665 >> بدون. 1092 00:48:22,665 --> 00:48:24,300 این می کند pointees ها دست نزنید. 1093 00:48:24,300 --> 00:48:27,880 این فقط تغییر یک اشاره گر به اشاره به همان چیزی که به عنوان یکی دیگر. 1094 00:48:27,880 --> 00:48:28,970 >> اوه، من می بینم. 1095 00:48:28,970 --> 00:48:31,730 Y به همان محل به عنوان *. 1096 00:48:31,730 --> 00:48:32,450 پس صبر کنید. 1097 00:48:32,450 --> 00:48:33,490 Y ثابت است. 1098 00:48:33,490 --> 00:48:34,630 این یک pointee. 1099 00:48:34,630 --> 00:48:36,520 بنابراین شما می توانید سعی کنید گرز هرگاه دوباره 1100 00:48:36,520 --> 00:48:39,200 برای ارسال بیش از 13. 1101 00:48:39,200 --> 00:48:39,840 >> OK را بزنید. 1102 00:48:39,840 --> 00:48:41,570 در اینجا می رود. 1103 00:48:41,570 --> 00:48:42,870 >> با سلام، در آن نگاه کنید. 1104 00:48:42,870 --> 00:48:44,320 هرگاه آثار Y. 1105 00:48:44,320 --> 00:48:47,020 و از آنجا که اشاره گرها به اشتراک گذاری که یک pointee، آنها 1106 00:48:47,020 --> 00:48:48,585 هر دو 13. 1107 00:48:48,585 --> 00:48:49,040 >> آره. 1108 00:48:49,040 --> 00:48:49,670 به اشتراک گذاری. 1109 00:48:49,670 --> 00:48:50,380 هر چیز دیگری. 1110 00:48:50,380 --> 00:48:52,290 بنابراین می خواهیم مکان های سوئیچ در حال حاضر؟ 1111 00:48:52,290 --> 00:48:52,970 >> اوه، نگاه کنید. 1112 00:48:52,970 --> 00:48:54,150 ما از زمان هستید. 1113 00:48:54,150 --> 00:48:55,200 >> اما - 1114 00:48:55,200 --> 00:48:57,060 >> فقط به یاد داشته باشید سه قوانین اشاره گر. 1115 00:48:57,060 --> 00:49:00,100 شماره یک، ساختار اصلی است که شما باید یک اشاره گر است. 1116 00:49:00,100 --> 00:49:02,170 و آن را بیش از به pointee. 1117 00:49:02,170 --> 00:49:04,160 اما اشاره گر و pointee را جدا هستند. 1118 00:49:04,160 --> 00:49:06,460 و خطا شایع است راه اندازی یک اشاره گر است، اما به 1119 00:49:06,460 --> 00:49:08,540 فراموش توجه pointee. 1120 00:49:08,540 --> 00:49:12,460 >> شماره دو، هرگاه اشاره گر شروع می شود در اشاره گر و پس از آن 1121 00:49:12,460 --> 00:49:14,570 فلش بیش از برای دسترسی به pointee آن. 1122 00:49:14,570 --> 00:49:18,640 همانطور که همه ما می دانیم، این فقط کار می کند pointee، که می شود به 1123 00:49:18,640 --> 00:49:19,790 رد شماره یک. 1124 00:49:19,790 --> 00:49:23,670 >> شماره سه، انتساب اشاره گر طول می کشد یک اشاره گر و تغییرات آن را به نقطه را به 1125 00:49:23,670 --> 00:49:25,850 pointee به عنوان یکی دیگر از اشاره گر. 1126 00:49:25,850 --> 00:49:27,840 بنابراین پس از انتساب، دو اشاره گر 1127 00:49:27,840 --> 00:49:29,430 اشاره به همان pointee. 1128 00:49:29,430 --> 00:49:31,600 گاهی اوقات که به اشتراک گذاری نامیده می شود. 1129 00:49:31,600 --> 00:49:33,430 و این همه وجود دارد به آن، واقعا. 1130 00:49:33,430 --> 00:49:33,840 شرکت خداحافظ خداحافظ. 1131 00:49:33,840 --> 00:49:34,300 >> [END پخش ویدئو] 1132 00:49:34,300 --> 00:49:36,940 >> دیوید مالان: بنابراین بیشتر در مورد اشاره گر، بیشتر در مورد Binky هفته آینده. 1133 00:49:36,940 --> 00:49:38,190 ما به شما در روز دوشنبه را ببینید. 1134 00:49:38,190 --> 00:49:42,187