2 00:00:00,000 --> 00:00:02,760 >> SPEAKER 1: اجازه دهید به یک برنامه بنویسید که سپس از کاربر برای اسامی و 3 00:00:02,760 --> 00:00:04,700 خانه ها از سه دانشجو. 4 00:00:04,700 --> 00:00:08,840 در حال حاضر، به ذخیره آن نام ها و خانه ها ما می تواند شش متغیر استفاده کنید، چه،. 5 00:00:08,840 --> 00:00:12,260 سه رشته ها برای نام، و دیگر سه رشته برای خانه ها، 6 00:00:12,260 --> 00:00:16,560 اما ما در حال حاضر می دانیم که ما می توانیم پاک کردن که کد با استفاده از آرایه ها به جای آن، 7 00:00:16,560 --> 00:00:20,220 به عنوان مثال آرایه ای از اندازه 3 برای سه نام، و مجموعه ای دیگر از 8 00:00:20,220 --> 00:00:22,110 اندازه 3 برای خانه. 9 00:00:22,110 --> 00:00:25,870 اما معلوم است که ما می توانیم این را پاک بیشتر هنوز هم، و در واقع آن را نگه دارید 10 00:00:25,870 --> 00:00:30,520 نام ها و خانه های با هم، به طوری که نام و نام خانوادگی دانش آموز و خانه خود را 11 00:00:30,520 --> 00:00:34,940 به نحوی محصور شده، پس به صحبت می کنند، به متغیر است. 12 00:00:34,940 --> 00:00:39,095 >> برای این کار، هر چند، ما نیاز به اعلام نوع داده ها خود ما، از نوع خود ما را در C، 13 00:00:39,095 --> 00:00:42,660 که نویسنده از C لزوما نمی از سال پیش فکر می کنم. 14 00:00:42,660 --> 00:00:45,630 برای این کار ما می توانیم کلمه کلیدی استفاده typedef، همراه با 15 00:00:45,630 --> 00:00:47,200 دیگر ساختار کلمه کلیدی. 16 00:00:47,200 --> 00:00:48,160 بیایید نگاهی به. 17 00:00:48,160 --> 00:00:50,650 داخل structs.h، من در حال حاضر بدست آغاز شده توسط 18 00:00:50,650 --> 00:00:52,560 از جمله کتابخانه CS50. 19 00:00:52,560 --> 00:00:57,640 من بعد از رفتن به نوع ساختار typedef، و سپس یک آکولاد. 20 00:00:57,640 --> 00:01:01,370 در داخل این ساختار، من قصد دارم مشخص است که یک دانش آموز باید یک 21 00:01:01,370 --> 00:01:04,960 رشته نام نام، و دیگر رشته به نام خانه. 22 00:01:04,960 --> 00:01:08,430 من قصد دارم پس از آکولاد را می بندم، و مشخص است که به نام 23 00:01:08,430 --> 00:01:11,420 این نوع داده جدید باید دانشجویی باشد. 24 00:01:11,420 --> 00:01:15,550 به عبارت دیگر، از طریق این نحو من اعلام کرد یک نوع داده جدید از خود من 25 00:01:15,550 --> 00:01:19,910 که وجود نداشت یک لحظه پیش، و در داخل این نوع داده ها دو داده 26 00:01:19,910 --> 00:01:24,270 زمینه ها و یا اعضای داده ها، یکی به نام نام، یکی به نام خانه، که هر دو 27 00:01:24,270 --> 00:01:25,630 از نوع رشته می باشد. 28 00:01:25,630 --> 00:01:27,690 >> بیایید به این نوع استفاده در یک برنامه واقعی. 29 00:01:27,690 --> 00:01:30,210 30 00:01:30,210 --> 00:01:34,090 در structs0.c، من به همین شکل بدست خودم در حال حاضر با برخی آغاز شده 31 00:01:34,090 --> 00:01:36,999 کد boilerplate، و من در حال حاضر قصد استفاده از این داده ها 32 00:01:36,999 --> 00:01:39,100 نوع دانش آموز، به شرح زیر است. 33 00:01:39,100 --> 00:01:42,450 من برای اولین بار رفتن به اعلام آرایه ای از نوع دانشجویی، من 34 00:01:42,450 --> 00:01:43,920 دانشجویان آرایه - 35 00:01:43,920 --> 00:01:44,630 جمع - 36 00:01:44,630 --> 00:01:49,360 و من مشخص کنید که اندازه آن خواهد بود سه، که، توجه، است ارزش 37 00:01:49,360 --> 00:01:50,880 دانش آموزان ثابت - 38 00:01:50,880 --> 00:01:51,890 در تمام مراکز - 39 00:01:51,890 --> 00:01:54,930 که من اعلام کرده ام تا در اینجا، پیش از آن در فایل. 40 00:01:54,930 --> 00:01:58,280 اجازه دهید در حال حاضر بیش از سه تکرار دانش آموزان، و به کاربر برای 41 00:01:58,280 --> 00:02:00,050 نام ها و خانه های خود. 42 00:02:00,050 --> 00:02:05,422 >> برای من بین المللی دریافت 0، من کمتر است از ثابت، من + +. 43 00:02:05,422 --> 00:02:08,600 و در حال حاضر در داخل بدن از این برای حلقه، من قصد دارم به نسخه قابل چاپ کردن چیزی 44 00:02:08,600 --> 00:02:11,470 مانند نام دانشجو. 45 00:02:11,470 --> 00:02:14,890 من پس از رفتن به واقع دریافت که نام دانش آموز را بوسیله 46 00:02:14,890 --> 00:02:17,290 دانش آموزان من براکت. 47 00:02:17,290 --> 00:02:21,550 به عبارت دیگر من می خواهم دانشجویی i ام در آرایه به نام دانش آموزان، اما در حال حاضر 48 00:02:21,550 --> 00:02:25,340 من می خواهم که در آن i ام دانش آموز را دریافت کنید نام، و برای انجام این کار، من قصد دارم به استفاده از 49 00:02:25,340 --> 00:02:30,160 است. اپراتور، به منظور در دریافت در داخل زمینه خاص از ساختار. 50 00:02:30,160 --> 00:02:37,100 بنابراین من مشخص دانش آموزان براکت من. نام می شود مقدار بازگشتی از GetString (). 51 00:02:37,100 --> 00:02:40,310 در همین حال، من قصد دارم به نسخه قابل چاپ کردن چیزی مشابه، گفت: دانش آموز 52 00:02:40,310 --> 00:02:45,410 خانه، و در حال حاضر من قصد دارم مشخص که زمینه خانه دانشجویان i ام 53 00:02:45,410 --> 00:02:49,480 باید مقدار بازگشتی دریافت تماس دیگر به GetString (). 54 00:02:49,480 --> 00:02:52,350 >> حالا اجازه دهید چیزی را انجام دهید با این سه نام ها و خانه های دانش آموزان، 55 00:02:52,350 --> 00:02:56,230 چیزی ساده مانند چاپ هر یک در یک جمله. 56 00:02:56,230 --> 00:03:07,580 اینترنت من 0، دوباره من کمتر از است دانش آموزان، من + +، چون printf "٪ s در٪ s است. 57 00:03:07,580 --> 00:03:12,600 بک اسلش نفر "، و اکنون اجازه دهید به من برق وصل کردن ارزش های این دو حوزه، 58 00:03:12,600 --> 00:03:19,055 دانش آموزان براکت من. نام، کاما، دانش آموزان من براکت. خانه، نزدیک 59 00:03:19,055 --> 00:03:21,290 پرانتز، نقطه و ویرگول بدین. 60 00:03:21,290 --> 00:03:23,020 >> و در حال حاضر من نیاز به انجام یک چیز بیشتر. 61 00:03:23,020 --> 00:03:26,600 در انتهای این فایل، من به نیاز آزاد کردن حافظه است که اختصاص داده شد 62 00:03:26,600 --> 00:03:30,290 پشت صحنه های GetSring ()، که البته خواستار malloc، به منظور 63 00:03:30,290 --> 00:03:32,500 اختصاص دادن حافظه برای رشته انواع کاربر. 64 00:03:32,500 --> 00:03:35,720 اما این به آن بسیار ساده است. 65 00:03:35,720 --> 00:03:42,610 برای من بین المللی دریافت 0، من کمتر از است دانش آموزان، من + +، و در داخل بدن 66 00:03:42,610 --> 00:03:48,670 این حلقه، من به سادگی رفتن به دانش آموزان رایگان براکت من. نام، 67 00:03:48,670 --> 00:03:52,300 و دانش آموزان رایگان من براکت. خانه. 68 00:03:52,300 --> 00:03:55,620 >> در حال حاضر، ما به روشنی استفاده می شود سه حلقه در این برنامه، هنگامی که واقعا من 69 00:03:55,620 --> 00:03:58,800 می تواند فقط استفاده از یک است، اما این فقط به خاطر تظاهرات، به طوری که 70 00:03:58,800 --> 00:04:02,850 ما می توانیم در سه مجزا مشخص مراحل آنچه که دقیقا ما انجام می دهیم. 71 00:04:02,850 --> 00:04:06,120 ما برای اولین بار در حال گرفتن یک نام و یک خانه برای هر یک از دانش آموزان، ما پس از آن هستید 72 00:04:06,120 --> 00:04:08,900 چاپ نام و خانه هر یک از سه دانش آموزان، و 73 00:04:08,900 --> 00:04:11,910 پس از آن ما قصد داریم به آزاد کردن حافظه استفاده شده توسط هر یک از دانش آموزان است. 74 00:04:11,910 --> 00:04:15,310 اما قطعا ما می تونستیم ترکیب این به حلقه for یکی بزرگتر است. 75 00:04:15,310 --> 00:04:18,650 >> بیایید نجات دهد، تدوین، و اجرای این برنامه است. 76 00:04:18,650 --> 00:04:26,850 ایجاد ساختارها 0 / ساختمانها 0، دانش آموز نام، اجازه دهید دیوید ارائه، او به زندگی می کنند 77 00:04:26,850 --> 00:04:31,580 در ماتر مجلس، نام دانشجو، اجازه دهید می گویند لورن، او را در Leverett زندگی می کنند 78 00:04:31,580 --> 00:04:36,590 مجلس، نام دانشجو، راب، او به در و Kirkland خانه زندگی می کنند. 79 00:04:36,590 --> 00:04:39,440 و در واقع، دیوید است در مادر، لورن در Leverett، 80 00:04:39,440 --> 00:04:40,810 و راب در و Kirkland است. 81 00:04:40,810 --> 00:04:43,425