1 00:00:00,000 --> 00:00:03,388 >> [موسیقی] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 داگ لوید: بسیار خوب. 4 00:00:06,020 --> 00:00:07,680 کار را تنها با متغیرهای بسیار سرگرم کننده است. 5 00:00:07,680 --> 00:00:09,500 اما اگر ما می خواهیم به کار با تعداد زیادی از متغیرها، 6 00:00:09,500 --> 00:00:12,760 اما ما نمی خواهید به یک دسته از نام های مختلف پرواز در اطراف کد ما؟ 7 00:00:12,760 --> 00:00:15,980 در این مورد، آرایه ها رفتن به می آیند در واقعا مفید است. 8 00:00:15,980 --> 00:00:19,510 آرایه داده بنیادی ساختار برای هر زبان برنامه نویسی 9 00:00:19,510 --> 00:00:20,260 که شما استفاده خواهد کرد. 10 00:00:20,260 --> 00:00:24,450 و آنها واقعا، واقعا مفید هستند، به ویژه، همانطور که خواهیم دید، در CS 50. 11 00:00:24,450 --> 00:00:27,870 >> ما با استفاده از آرایه به برگزاری مقدار از انواع داده های مشابه 12 00:00:27,870 --> 00:00:29,830 در مکان های حافظه به هم پیوسته. 13 00:00:29,830 --> 00:00:32,430 است که می گویند، آن را یک راهی که ما می توانید گروه 14 00:00:32,430 --> 00:00:35,430 یک دسته از اعداد صحیح با هم در حافظه و یا یک دسته از شخصیت 15 00:00:35,430 --> 00:00:38,270 و یا شناور در حافظه واقعا نزدیک به هم و کار 16 00:00:38,270 --> 00:00:41,930 با آنها را بدون نیاز به هر یک نام منحصر به فرد خود را، که می 17 00:00:41,930 --> 00:00:44,500 پس از در حالی که کمی دست و پا گیر. 18 00:00:44,500 --> 00:00:48,130 >> در حال حاضر، یک راه برای قیاس آرایه است که در مورد پست محلی خود فکر می کنم 19 00:00:48,130 --> 00:00:49,000 دفتر برای یک ثانیه. 20 00:00:49,000 --> 00:00:51,820 بنابراین دور قدم از برنامه نویسی و فقط چشمانت را ببند 21 00:00:51,820 --> 00:00:54,120 و تجسم در ذهن شما دفتر پست محلی خود را. 22 00:00:54,120 --> 00:00:57,160 معمولا، در اکثر پست دفاتر، یک بانک بزرگ وجود دارد 23 00:00:57,160 --> 00:01:00,490 جعبه های اداره پست بر روی دیوار. 24 00:01:00,490 --> 00:01:03,510 >> یک آرایه یک بلوک غول پیکر است حافظه به هم پیوسته، 25 00:01:03,510 --> 00:01:06,120 راه همان است که یک پست الکترونیکی بانک در اداره پست خود را 26 00:01:06,120 --> 00:01:11,230 یک فضای بزرگ در است دیوار اداره پست. 27 00:01:11,230 --> 00:01:15,750 آرایه به کوچک تقسیم شده است، عینا بلوک های اندازه از فضا، 28 00:01:15,750 --> 00:01:19,930 هر یک از آنها است که به نام یک عنصر، در راه همان است که دیوار از پست 29 00:01:19,930 --> 00:01:23,840 دفتر شده است را به کوچک تقسیم، عینا بلوک های اندازه از فضا، 30 00:01:23,840 --> 00:01:27,560 که ما یک جعبه PO. 31 00:01:27,560 --> 00:01:31,650 هر عنصر از آرایه می تواند ذخیره یک مقدار مشخصی از داده ها، 32 00:01:31,650 --> 00:01:37,540 فقط به عنوان هر یک از جعبه اداره پست قادر است برای نگهداری یک مقدار مشخصی از ایمیل. 33 00:01:37,540 --> 00:01:41,540 >> آنچه می تواند در هر یک از عناصر ذخیره شده آرایه متغیر از داده های مشابه است 34 00:01:41,540 --> 00:01:45,300 نوع، مانند int و یا کاراکتر، فقط مانند در صندوق پستی خود را، 35 00:01:45,300 --> 00:01:47,300 شما تنها می توانید متناسب با همه چیز از یک نوع مشابه، 36 00:01:47,300 --> 00:01:50,430 مانند نامه یا بسته های کوچک است. 37 00:01:50,430 --> 00:01:55,050 در نهایت، ما می توانید هر عنصر از دسترسی آرایه به طور مستقیم توسط عدد شاخص، 38 00:01:55,050 --> 00:01:59,770 فقط به عنوان ما می توانیم اداره پست ما دسترسی جعبه با دانستن شماره صندوق پستی خود را. 39 00:01:59,770 --> 00:02:02,750 امیدوارم، که قیاس کمک می کند تا سر خود را به شما 40 00:02:02,750 --> 00:02:05,540 اطراف این ایده از آرایه های analogizing به چیز دیگری 41 00:02:05,540 --> 00:02:08,400 که شما احتمالا می در حال حاضر آشنا با. 42 00:02:08,400 --> 00:02:13,182 >> در C، عناصر یک آرایه هستند نمایه شروع از 0، نه از 1. 43 00:02:13,182 --> 00:02:14,390 و این است که واقعا مهم است. 44 00:02:14,390 --> 00:02:18,530 و در واقع، این است که چرا ما در CS 50، و به همین دلیل اغلب دانشمندان کامپیوتر 45 00:02:18,530 --> 00:02:22,150 از 0 شمارش است، به دلیل آرایه C است 46 00:02:22,150 --> 00:02:24,660 نمایه سازی، که همیشه در 0 شروع می شود. 47 00:02:24,660 --> 00:02:28,730 بنابراین اگر یک آرایه متشکل از عناصر N، عنصر اول که آرایه 48 00:02:28,730 --> 00:02:32,960 است که در شاخص 0 واقع شده، و آخرین عنصر از آرایه 49 00:02:32,960 --> 00:02:36,610 در شاخص N منهای 1 واقع شده است. 50 00:02:36,610 --> 00:02:43,160 باز هم، اگر n عنصر در آن وجود دارد ما آرایه، آخرین شاخص N منهای 1 است. 51 00:02:43,160 --> 00:02:46,820 >> بنابراین اگر آرایه ما دارای 50 عناصر، عنصر اول است که در شاخص 0 واقع، 52 00:02:46,820 --> 00:02:51,060 و آخرین عنصر در شاخص 49 واقع شده است. 53 00:02:51,060 --> 00:02:53,940 متاسفانه یا خوشبختانه، بسته به دیدگاه خود را، 54 00:02:53,940 --> 00:02:56,170 C در اینجا بسیار ملایم است. 55 00:02:56,170 --> 00:02:59,480 این شما را از جلوگیری نمی کند خارج از مرزهای آرایه خود را رفتن. 56 00:02:59,480 --> 00:03:03,080 شما می توانید از منهای دسترسی 3 عنصر از آرایه خود را 57 00:03:03,080 --> 00:03:07,400 و یا عنصر 59 از آرایه خود را، اگر آرایه تو فقط 50 عنصر است. 58 00:03:07,400 --> 00:03:11,060 آن را برنامه خود را از متوقف نمی تدوین، اما در زمان اجرا، 59 00:03:11,060 --> 00:03:14,350 شما ممکن است یک برخورد گسل تقسیم بندی مخوف 60 00:03:14,350 --> 00:03:17,460 اگر شما شروع به دسترسی به حافظه که در خارج از مرزهای چه 61 00:03:17,460 --> 00:03:19,260 شما برنامه خود را به شما داده ام. 62 00:03:19,260 --> 00:03:21,250 به طوری که مراقب باشید. 63 00:03:21,250 --> 00:03:23,120 >> چه آرایه ای اعلامیه نگاه می کنید؟ 64 00:03:23,120 --> 00:03:26,940 چگونه کد ما یک آرایه را به وجود ما هر متغیر دیگر کد؟ 65 00:03:26,940 --> 00:03:31,250 از سه بخش وجود دارد به یک آرایه declaration-- یک نوع، نام، 66 00:03:31,250 --> 00:03:31,880 و یک اندازه. 67 00:03:31,880 --> 00:03:34,088 این است که بسیار شبیه به یک تعریف متغیر، که 68 00:03:34,088 --> 00:03:36,970 فقط یک نوع و یک اسم است، عنصر اندازه بودن 69 00:03:36,970 --> 00:03:39,860 مورد خاص برای یک آرایه، چرا که ما در حال گرفتن یک دسته از آنها 70 00:03:39,860 --> 00:03:41,830 همزمان. 71 00:03:41,830 --> 00:03:45,560 >> بنابراین نوع چه نوع متغیر است شما می خواهید هر عنصر از آرایه می شود. 72 00:03:45,560 --> 00:03:47,150 آن را می خواهم به آرایه ای از اعداد صحیح؟ 73 00:03:47,150 --> 00:03:49,010 پس از آن، نوع داده های خود را باید از نوع int است. 74 00:03:49,010 --> 00:03:51,760 آیا شما می خواهید آن را به یک مجموعه ای از دو برابر و یا شناور. 75 00:03:51,760 --> 00:03:54,545 نوع داده باید دو برابر باشد یا شناور. 76 00:03:54,545 --> 00:03:56,420 نام شما چیست می خواهید تماس بگیرید آرایه خود را. 77 00:03:56,420 --> 00:04:00,970 شما چه می خواهید به نام این غول بانک از اعداد صحیح یا شناور و یا کاراکتر 78 00:04:00,970 --> 00:04:03,250 و یا دو برابر، و یا هر دارید؟ 79 00:04:03,250 --> 00:04:04,700 شما چه می خواهید به آن پاسخ؟ 80 00:04:04,700 --> 00:04:06,110 توضیحی زیبا. 81 00:04:06,110 --> 00:04:08,610 >> در نهایت، اندازه، می رود که داخل براکت مربع، 82 00:04:08,610 --> 00:04:12,180 چگونه بسیاری از عناصر است که شما می توانید مانند آرایه خود را به باشد. 83 00:04:12,180 --> 00:04:13,530 چگونه بسیاری از اعداد صحیح می خواهید؟ 84 00:04:13,530 --> 00:04:15,570 چگونه بسیاری از شناور می خواهید؟ 85 00:04:15,570 --> 00:04:19,070 >> بنابراین برای مثال، اعضای هیات نمرات دانش آموز 40. 86 00:04:19,070 --> 00:04:26,020 این اعلام یک آرایه به نام دانشجو نمرات، که متشکل از 40 عدد صحیح. 87 00:04:26,020 --> 00:04:28,180 توضیحی زیبا، امیدوارم. 88 00:04:28,180 --> 00:04:29,330 در اینجا یک مثال دیگر. 89 00:04:29,330 --> 00:04:31,560 قیمت منوی دو 8. 90 00:04:31,560 --> 00:04:34,610 این باعث ایجاد یک آرایه به نام قیمت منو، که شامل 91 00:04:34,610 --> 00:04:38,300 از اتاق در حافظه برای هشت دو برابر است. 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> اگر شما فکر می کنم از هر عنصر آرایه ای از نوع داده از نوع، 94 00:04:45,750 --> 00:04:49,860 بنابراین برای مثال، یک عنصر از یک آرایه از نوع int، به همان شیوه شما 95 00:04:49,860 --> 00:04:52,770 را از هر فکر می کنم متغیر از نوع int، 96 00:04:52,770 --> 00:04:56,440 تمام عملیات آشنا که ما پیش از این در عملیات مورد بحث 97 00:04:56,440 --> 00:04:58,270 ویدیو حس را. 98 00:04:58,270 --> 00:05:01,620 بنابراین در اینجا، ما می تواند یک آرایه اعلام از Booleans می نام Truthtable، 99 00:05:01,620 --> 00:05:05,590 که متشکل از 10 اتاق برای Booleans می. 100 00:05:05,590 --> 00:05:09,650 >> و پس از آن، درست مثل ما فقط می تواند اختصاص یک مقدار را به هر متغیر دیگر از نوع 101 00:05:09,650 --> 00:05:13,470 بولی، ما می تواند چیزی می گویند مانند براکت Truthtable 102 00:05:13,470 --> 00:05:18,040 2، این است که چگونه ما نشان می دهد، کدام عنصر جدول درستی؟ 103 00:05:18,040 --> 00:05:20,350 عنصر سوم از جدول حقیقت، چرا که به یاد داشته باشید، 104 00:05:20,350 --> 00:05:21,800 ما در حال شمارش از 0. 105 00:05:21,800 --> 00:05:25,690 بنابراین این که چگونه ما نشان می دهد سومین عنصر از جدول درستی. 106 00:05:25,690 --> 00:05:28,680 Truthtable 2 برابر کاذب، درست مثل ما می تواند declare-- 107 00:05:28,680 --> 00:05:33,560 و یا ما می تواند اختصاص دهید، نه، هر متغیر نوع داده منطقی اشتباه است. 108 00:05:33,560 --> 00:05:35,050 >> ما همچنین می توانید آن را در شرایط استفاده کنید. 109 00:05:35,050 --> 00:05:39,000 اگر (truthtable 7 == درست است)، است که می گویند، 110 00:05:39,000 --> 00:05:42,370 اگر عنصر هشتم از Truthtable درست است، 111 00:05:42,370 --> 00:05:46,760 شاید ما می خواهید برای چاپ یک پیام به کاربر، تابع () printf ("TRUE! N")؛ 112 00:05:46,760 --> 00:05:50,290 که باعث می شود ما می گویند Truthtable 10 برابر است، درست است؟ 113 00:05:50,290 --> 00:05:53,590 خوب، من می توانم، اما آن را بسیار خطرناک است، زیرا به یاد داشته باشید، 114 00:05:53,590 --> 00:05:56,260 ما یک آرایه از 10 Booleans می. 115 00:05:56,260 --> 00:06:02,340 به طوری که بالاترین شاخص که کامپایلر به ما داده است 9 است. 116 00:06:02,340 --> 00:06:06,010 >> این برنامه کامپایل، اما اگر چیز دیگری در حافظه 117 00:06:06,010 --> 00:06:09,110 وجود دارد که در آن ما انتظار Truthtable 10 برای رفتن، 118 00:06:09,110 --> 00:06:13,980 ما می تواند یک گسل تقسیم رنج می برند. ما ممکن است دور با آن، اما به طور کلی، 119 00:06:13,980 --> 00:06:14,710 بسیار خطرناک است. 120 00:06:14,710 --> 00:06:19,759 پس چه من در اینجا انجام C قانونی است، اما نه لزوما بهترین حرکت کند. 121 00:06:19,759 --> 00:06:22,300 حالا، وقتی شما اعلام و مقداردهی اولیه آرایه ای به طور همزمان، 122 00:06:22,300 --> 00:06:23,960 در واقع وجود دارد بسیار نحو خاص است که شما 123 00:06:23,960 --> 00:06:26,250 می توانید استفاده کنید برای پر کردن آرایه با ارزش شروع آن است. 124 00:06:26,250 --> 00:06:30,130 این می تواند دست و پا گیر برای به دست آوردن آرایه اندازه 100، 125 00:06:30,130 --> 00:06:33,430 و پس از آن باید بگویم، عنصر 0 این برابر. عنصر 1 این برابر. 126 00:06:33,430 --> 00:06:34,850 عنصر 2 برابر است. 127 00:06:34,850 --> 00:06:36,370 نقطه چیست، درست است؟ 128 00:06:36,370 --> 00:06:39,470 >> اگر آن را به یک آرایه های کوچک، شما چیزی شبیه به این است. 129 00:06:39,470 --> 00:06:44,360 بولی truthtable 3 برابر باز آکولاد و سپس کاما 130 00:06:44,360 --> 00:06:48,060 جدا کردن لیستی از عناصر که شما می خواهید در آرایه قرار دهید. 131 00:06:48,060 --> 00:06:50,520 پس از آن نقطه و ویرگول آکولاد را ببندید. 132 00:06:50,520 --> 00:06:53,910 این باعث ایجاد یک مجموعه ای از اندازه سه نام Truthtable، 133 00:06:53,910 --> 00:06:56,090 با عناصر نادرست، درست است، و درست است. 134 00:06:56,090 --> 00:06:59,270 و در واقع، نمونه نحو من در اینجا است 135 00:06:59,270 --> 00:07:03,350 دقیقا همان انجام نحو عنصر منحصر به فرد زیر کلیک کنید. 136 00:07:03,350 --> 00:07:09,380 این دو روش از برنامه نویسی را تولید همان آرایه دقیق. 137 00:07:09,380 --> 00:07:11,740 >> به طور مشابه، ما می تواند تکرار بیش از همه از عناصر 138 00:07:11,740 --> 00:07:15,400 از یک آرایه با استفاده از یک حلقه، که، در واقع، بسیار شدت توصیه می شود 139 00:07:15,400 --> 00:07:16,790 در خانه ورزش. 140 00:07:16,790 --> 00:07:20,720 چگونه یک آرایه را ایجاد می کنید از 100 اعداد صحیح، که در آن 141 00:07:20,720 --> 00:07:23,477 هر عنصر از آرایه شاخص های آن است؟ 142 00:07:23,477 --> 00:07:26,560 بنابراین برای مثال، ما باید یک آرایه از 100 اعداد صحیح، و در عنصر اول، 143 00:07:26,560 --> 00:07:27,790 ما می خواهیم به قرار دادن 0. 144 00:07:27,790 --> 00:07:29,810 در عنصر دوم، ما می خواهیم به قرار دادن 1. 145 00:07:29,810 --> 00:07:33,319 در عنصر سوم، ما می خواهیم برای قرار دادن 2؛ و غیره و غیره. 146 00:07:33,319 --> 00:07:35,360 که واقعا خوب در خانه ورزش برای انجام این کار. 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> در اینجا، به نظر نمی مانند بیش از حد تغییر کرده است. 149 00:07:40,220 --> 00:07:44,170 اما توجه کنید که در بین براکت، این زمان، 150 00:07:44,170 --> 00:07:45,830 من در واقع حذف کرده ام تعداد. 151 00:07:45,830 --> 00:07:48,000 اگر شما در حال استفاده از این مسئله نمونه های ویژه 152 00:07:48,000 --> 00:07:50,380 نحو برای ایجاد یک آرایه، شما در واقع نمی 153 00:07:50,380 --> 00:07:53,491 نیاز به نشان دادن سایز از آرایه از قبل. 154 00:07:53,491 --> 00:07:55,740 کامپایلر به اندازه کافی هوشمند است می دانم که شما در واقع 155 00:07:55,740 --> 00:07:58,980 می خواهید یک آرایه از اندازه 3، چون شما را سه عنصر 156 00:07:58,980 --> 00:08:00,640 در سمت راست علامت مساوی. 157 00:08:00,640 --> 00:08:04,140 اگر چهار قرار داده بود، آن را با توجه به شما یک جدول حقیقت اندازه چهار. 158 00:08:04,140 --> 00:08:06,270 و غیره و غیره. 159 00:08:06,270 --> 00:08:09,380 >> آرایه ها به یک محدود نمی بعد، که بسیار سرد است. 160 00:08:09,380 --> 00:08:12,000 شما در واقع می تواند به عنوان بسیاری از specifiers در سمت به عنوان شما می خواهید. 161 00:08:12,000 --> 00:08:16,470 بنابراین برای مثال، اگر شما می خواهید برای ایجاد یک هیئت مدیره برای بازی جنگی، که، 162 00:08:16,470 --> 00:08:20,910 اگر شما تا به حال بازی، یک بازی است که است با گیره بر روی 10 با 10 شبکه بازی، 163 00:08:20,910 --> 00:08:22,450 شما می توانید از یک آرایه مثل این ایجاد کنید. 164 00:08:22,450 --> 00:08:26,030 شما می توانید بولی می گویند جنگی مربع براکت 10 165 00:08:26,030 --> 00:08:29,590 بسته های مربع مستطیلی براکت براکت براکت بسته 10 مربع است. 166 00:08:29,590 --> 00:08:32,710 >> و پس از آن، شما می توانید انتخاب کنید به تفسیر این را در ذهن خود را به عنوان یک 10 167 00:08:32,710 --> 00:08:35,576 با 10 شبکه از سلول. 168 00:08:35,576 --> 00:08:37,409 در حال حاضر، در واقع، در حافظه، واقعا فقط 169 00:08:37,409 --> 00:08:42,440 باقی می ماند یک عنصر 100، آرایه تک بعدی. 170 00:08:42,440 --> 00:08:46,070 و این، در واقع، می رود برای اگر شما سه بعد یا چهار یا پنج. 171 00:08:46,070 --> 00:08:49,420 این واقعا فقط می کند ضرب همه از indices-- 172 00:08:49,420 --> 00:08:51,130 یا همه از اندازه specifiers-- با هم، 173 00:08:51,130 --> 00:08:53,480 و شما فقط یک یک بعدی مجموعه ای از که اندازه. 174 00:08:53,480 --> 00:08:57,090 >> اما از نظر سازمان و تجسم و درک انسان، 175 00:08:57,090 --> 00:08:59,240 می توان آن را بسیار ساده تر برای کار با یک شبکه 176 00:08:59,240 --> 00:09:02,980 اگر شما در حال کار بر روی یک بازی مانند تیک تاک پا و یا جنگی، 177 00:09:02,980 --> 00:09:05,179 یا چیزی شبیه به آن. 178 00:09:05,179 --> 00:09:06,970 این یک انتزاع بزرگ است، به جای داشتن 179 00:09:06,970 --> 00:09:09,340 در مورد یک تیک تاک پا فکر می کنم هیئت مدیره به عنوان یک خط از نه 180 00:09:09,340 --> 00:09:13,810 مربع و یا یک هیئت مدیره کشتی جنگی به عنوان یک خط از 100 مربع است. 181 00:09:13,810 --> 00:09:16,010 10 با 10 شبکه و یا یک سه توسط سه شبکه است که احتمالا 182 00:09:16,010 --> 00:09:17,225 بسیاری آسان تر به درک. 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> در حال حاضر، چیزی واقعا در مورد آرایه مهم است. 185 00:09:22,280 --> 00:09:25,950 ما می توانیم هر فرد درمان عنصر از آرایه به عنوان یک متغیر است. 186 00:09:25,950 --> 00:09:27,700 ما که قبلا دیدم هنگامی که ما اختصاص شد 187 00:09:27,700 --> 00:09:32,240 ارزش واقعی به Booleans می خاصی و یا آزمایش آنها را در شرطی. 188 00:09:32,240 --> 00:09:35,960 اما ما می توانیم کل درمان نیست به عنوان متغیرهای آرایه خود را دارند. 189 00:09:35,960 --> 00:09:41,760 ما نمی توانیم، برای مثال، اختصاص یک آرایه به یک آرایه با استفاده از انتساب 190 00:09:41,760 --> 00:09:42,930 اپراتور. 191 00:09:42,930 --> 00:09:44,640 آن را قانونی نمی C. 192 00:09:44,640 --> 00:09:47,920 >> اگر ما به، می خواهم برای example-- چه ما را در این مثال انجام 193 00:09:47,920 --> 00:09:50,200 می شود برای کپی کردن یک آرایه را به دیگری. 194 00:09:50,200 --> 00:09:53,810 اگر ما می خواهیم به انجام این کار، ما در واقع نیاز به استفاده از یک حلقه برای کپی کردن بیش از 195 00:09:53,810 --> 00:09:56,550 هر عنصر منحصر به فرد در یک زمان. 196 00:09:56,550 --> 00:09:58,700 من می دانم که زمان کمی مصرف است. 197 00:09:58,700 --> 00:10:04,022 >> بنابراین برای مثال، اگر ما این چند حال خط کد، که این کار؟ 198 00:10:04,022 --> 00:10:05,230 خب، نه، آن را، درست است؟ 199 00:10:05,230 --> 00:10:07,860 از آنجا که ما در حال تلاش برای اختصاص دادن غذا به نوار. 200 00:10:07,860 --> 00:10:09,860 که رفتن به کار، چرا که آن را یک آرایه، 201 00:10:09,860 --> 00:10:13,130 و ما فقط توصیف که که قانونی C. نیست 202 00:10:13,130 --> 00:10:15,580 >> در عوض، اگر ما می خواهیم کپی مطالب از مواد غذایی 203 00:10:15,580 --> 00:10:18,070 را در نوار، آن چیزی است که ما در حال تلاش برای انجام در اینجا، 204 00:10:18,070 --> 00:10:19,970 ما می خواهیم یک نحو مثل این نیاز دارند. 205 00:10:19,970 --> 00:10:24,170 ما یک حلقه for است که می رود از J برابر با 0 تا 5 است، 206 00:10:24,170 --> 00:10:28,390 و ما افزایش J در هر تکرار از حلقه و عناصر اختصاص شبیه به آن. 207 00:10:28,390 --> 00:10:33,360 این در نوار نتیجه هم یکی، دو، سه، چهار، پنج، 208 00:10:33,360 --> 00:10:36,730 اما ما باید به آن این کار بسیار آهسته عنصر توسط عنصر راه، 209 00:10:36,730 --> 00:10:40,009 به جای تنها کپی کردن کامل آرایه. 210 00:10:40,009 --> 00:10:42,050 در برنامه نویسی دیگر زبان، آنهایی که مدرن تر، 211 00:10:42,050 --> 00:10:45,610 شما می توانید، در واقع، انجام درست که ساده برابر نحو. 212 00:10:45,610 --> 00:10:49,620 اما C، متاسفانه، ما مجاز به انجام این کار. 213 00:10:49,620 --> 00:10:52,026 >> در حال حاضر، یکی دیگر وجود دارد چیزی که من می خواهم به ذکر 214 00:10:52,026 --> 00:10:54,650 در مورد آرایه که می تواند یک کمی کمی مشکل اولین بار شما 215 00:10:54,650 --> 00:10:55,990 کار با آنها. 216 00:10:55,990 --> 00:10:59,860 ما در یک ویدیو مورد بحث در مورد دامنه متغیر، 217 00:10:59,860 --> 00:11:04,940 که اکثر متغیرها در C، هنگامی که شما پاسخ آنها در توابع، توسط ارزش منتقل می شود. 218 00:11:04,940 --> 00:11:08,620 آیا شما به یاد داشته باشید آنچه در آن به معنی به تصویب چیزی با ارزش؟ 219 00:11:08,620 --> 00:11:12,570 این بدان معنی است که ما در حال ساخت یک کپی از متغیر که در حال در گذشت. 220 00:11:12,570 --> 00:11:16,290 تابع پذیرنده، تابع که دریافت متغیر، 221 00:11:16,290 --> 00:11:17,730 کند خود متغیر نیست. 222 00:11:17,730 --> 00:11:20,850 این می شود محلی خود را دارد کپی از آن برای کار با. 223 00:11:20,850 --> 00:11:24,070 >> آرایه ها، البته، انجام این قاعده پیروی نمی کنند. 224 00:11:24,070 --> 00:11:27,600 در عوض، آنچه ما این با ارجاع عبور. 225 00:11:27,600 --> 00:11:31,360 پذیرنده واقع را دریافت آرایه. 226 00:11:31,360 --> 00:11:34,207 آن دریافت نمی آن کپی محلی خود از آن. 227 00:11:34,207 --> 00:11:36,040 و اگر شما فکر می کنم در مورد آن، این را حس می کند. 228 00:11:36,040 --> 00:11:39,750 اگر آرایه واقعا بزرگ هستند، آن زمان و تلاش بسیار زیادی طول می کشد 229 00:11:39,750 --> 00:11:44,470 برای ایجاد یک کپی از آرایه ای از 100 یا 1،000 یا 10،000 عناصر، 230 00:11:44,470 --> 00:11:48,290 که آن را به ارزش آن را برای یک نیست عمل به دریافت یک کپی از آن، 231 00:11:48,290 --> 00:11:51,037 انجام برخی از کار با آن، و پس از آن فقط با کپی انجام شود؛ 232 00:11:51,037 --> 00:11:53,120 لازم نیست به آن را حلق آویز در اطراف دیگر. 233 00:11:53,120 --> 00:11:54,710 >> از آنجا که برخی از آرایه بزرگ و سنگین، 234 00:11:54,710 --> 00:11:56,001 ما فقط آنها را با مرجع منتقل می کند. 235 00:11:56,001 --> 00:12:01,210 ما فقط اعتماد که تابع به، هیچ چیز را پاره کند. 236 00:12:01,210 --> 00:12:03,010 پس از آن در واقع آرایه را دریافت کنید. 237 00:12:03,010 --> 00:12:05,290 آن کپی محلی خود را از آن دریافت کنید. 238 00:12:05,290 --> 00:12:07,170 >> بنابراین به چه معنی است، سپس، هنگامی که پذیرنده 239 00:12:07,170 --> 00:12:08,970 دستکاری عناصر آرایه؟ 240 00:12:08,970 --> 00:12:10,780 چه اتفاقی می افتد؟ 241 00:12:10,780 --> 00:12:13,210 در حال حاضر، ما براق بیش از این که چرا دقیقا 242 00:12:13,210 --> 00:12:15,320 اتفاق می افتد، به همین دلیل آرایه توسط مرجع تصویب 243 00:12:15,320 --> 00:12:17,810 و هر چیز دیگری است با مقدار منتقل. 244 00:12:17,810 --> 00:12:20,470 اما من به شما قول، ما بازگشت و شما پاسخ می دهد 245 00:12:20,470 --> 00:12:23,750 این در یک ویدیو بعد. 246 00:12:23,750 --> 00:12:28,110 >> در اینجا یکی بیشتر ورزش برای شما قبل از ما بسته بندی همه چیز در آرایه ها. 247 00:12:28,110 --> 00:12:31,400 دسته از کد اینجا، که به خصوص سبک خوب، 248 00:12:31,400 --> 00:12:33,400 فقط من که نکته است. 249 00:12:33,400 --> 00:12:36,660 هیچ نظری در اینجا وجود دارد، را که در شکل خیلی بد است. 250 00:12:36,660 --> 00:12:39,750 اما آن را فقط به این دلیل من می خواستم به قادر به جا همه چیز بر روی صفحه نمایش. 251 00:12:39,750 --> 00:12:44,360 >> در بالا، شما می توانید ببینید که من آن را دو اظهارنامه تابع برای مجموعه ای از آرایه 252 00:12:44,360 --> 00:12:45,820 و مجموعه ای از نوع int است. 253 00:12:45,820 --> 00:12:49,680 مجموعه ای آرایه ظاهرا طول می کشد یک آرایه از چهار عدد صحیح را به عنوان ورودی آن است. 254 00:12:49,680 --> 00:12:52,767 و مجموعه ای از نوع int ظاهرا طول می کشد تنها یک عدد صحیح به عنوان ورودی آن است. 255 00:12:52,767 --> 00:12:54,350 اما هر دو آنها یک خروجی ندارد. 256 00:12:54,350 --> 00:12:57,689 خروجی، بازگشت تایپ می کنید، از هر یک از درجه اعتبار ساقط است. 257 00:12:57,689 --> 00:12:59,480 در اصلی، ما یک چند خط کد. 258 00:12:59,480 --> 00:13:02,730 ما یک متغیر عدد صحیح اعلام به نام و اختصاص آن ارزش 10. 259 00:13:02,730 --> 00:13:07,080 ما اعلام می کنیم مجموعه ای از چهار عدد صحیح به نام B و اختصاص عناصر 0، 1، 260 00:13:07,080 --> 00:13:08,730 2 و 3 بود. 261 00:13:08,730 --> 00:13:12,190 پس از آن، ما باید یک تماس به مجموعه int و یک تماس به مجموعه آرایه. 262 00:13:12,190 --> 00:13:15,910 تعاریف آرایه تعیین و تنظیم INT پایین هستند، در پایین. 263 00:13:15,910 --> 00:13:17,640 >> و به این ترتیب، دوباره، من به شما این سوال را بپرسید. 264 00:13:17,640 --> 00:13:20,770 چه می شود چاپ در اینجا در پایان از اصلی؟ 265 00:13:20,770 --> 00:13:23,020 یک دگروال چاپی وجود دارد. من هستم چاپ کردن دو عدد صحیح. 266 00:13:23,020 --> 00:13:28,010 من چاپ کردن محتویات یک و محتویات B مربع براکت 0. 267 00:13:28,010 --> 00:13:29,880 مکث ویدیو اینجا و یک دقیقه. 268 00:13:29,880 --> 00:13:35,482 شما می توانید کشف کردن آنچه که این تابع را در پایان نسخه قابل چاپ؟ 269 00:13:35,482 --> 00:13:38,190 امیدوارم، اگر شما به یاد تمایز بین ارزش های عبور 270 00:13:38,190 --> 00:13:41,680 و عبور از مرجع، این مشکل این بود برای شما بیش از حد روی حیله و تزویر است. 271 00:13:41,680 --> 00:13:44,130 و پاسخ شما را پیدا کرده اند این است. 272 00:13:44,130 --> 00:13:47,660 اگر شما واقعا مطمئن نیست به چرا که این مورد، یک دوم، 273 00:13:47,660 --> 00:13:50,620 رفتن به عقب، بررسی آنچه من فقط بحث در مورد آرایه های عبور 274 00:13:50,620 --> 00:13:53,450 توسط مرجع، در مقابل عبور سایر متغیرها با ارزش، 275 00:13:53,450 --> 00:13:56,680 و امیدوارم، آن را به حس کمی بیشتر. 276 00:13:56,680 --> 00:13:59,760 >> من داگ لوید هستم، و این CS50 است. 277 00:13:59,760 --> 00:14:01,467