>> SPEAKER 1: اجازه دهید به یک برنامه بنویسید که سپس از کاربر برای اسامی و
خانه ها از سه دانشجو.
در حال حاضر، به ذخیره آن نام ها و خانه ها ما می تواند شش متغیر استفاده کنید، چه،.
سه رشته ها برای نام، و دیگر سه رشته برای خانه ها،
اما ما در حال حاضر می دانیم که ما می توانیم پاک کردن که کد با استفاده از آرایه ها به جای آن،
به عنوان مثال آرایه ای از اندازه 3 برای سه نام، و مجموعه ای دیگر از
اندازه 3 برای خانه.
اما معلوم است که ما می توانیم این را پاک بیشتر هنوز هم، و در واقع آن را نگه دارید
نام ها و خانه های با هم، به طوری که نام و نام خانوادگی دانش آموز و خانه خود را
به نحوی محصور شده، پس به صحبت می کنند، به متغیر است.
>> برای این کار، هر چند، ما نیاز به اعلام نوع داده ها خود ما، از نوع خود ما را در C،
که نویسنده از C لزوما نمی از سال پیش فکر می کنم.
برای این کار ما می توانیم کلمه کلیدی استفاده typedef، همراه با
دیگر ساختار کلمه کلیدی.
بیایید نگاهی به.
داخل structs.h، من در حال حاضر بدست آغاز شده توسط
از جمله کتابخانه CS50.
من بعد از رفتن به نوع ساختار typedef، و سپس یک آکولاد.
در داخل این ساختار، من قصد دارم مشخص است که یک دانش آموز باید یک
رشته نام نام، و دیگر رشته به نام خانه.
من قصد دارم پس از آکولاد را می بندم، و مشخص است که به نام
این نوع داده جدید باید دانشجویی باشد.
به عبارت دیگر، از طریق این نحو من اعلام کرد یک نوع داده جدید از خود من
که وجود نداشت یک لحظه پیش، و در داخل این نوع داده ها دو داده
زمینه ها و یا اعضای داده ها، یکی به نام نام، یکی به نام خانه، که هر دو
از نوع رشته می باشد.
>> بیایید به این نوع استفاده در یک برنامه واقعی.
در structs0.c، من به همین شکل بدست خودم در حال حاضر با برخی آغاز شده
کد boilerplate، و من در حال حاضر قصد استفاده از این داده ها
نوع دانش آموز، به شرح زیر است.
من برای اولین بار رفتن به اعلام آرایه ای از نوع دانشجویی، من
دانشجویان آرایه -
جمع -
و من مشخص کنید که اندازه آن خواهد بود سه، که، توجه، است ارزش
دانش آموزان ثابت -
در تمام مراکز -
که من اعلام کرده ام تا در اینجا، پیش از آن در فایل.
اجازه دهید در حال حاضر بیش از سه تکرار دانش آموزان، و به کاربر برای
نام ها و خانه های خود.
>> برای من بین المللی دریافت 0، من کمتر است از ثابت، من + +.
و در حال حاضر در داخل بدن از این برای حلقه، من قصد دارم به نسخه قابل چاپ کردن چیزی
مانند نام دانشجو.
من پس از رفتن به واقع دریافت که نام دانش آموز را بوسیله
دانش آموزان من براکت.
به عبارت دیگر من می خواهم دانشجویی i ام در آرایه به نام دانش آموزان، اما در حال حاضر
من می خواهم که در آن i ام دانش آموز را دریافت کنید نام، و برای انجام این کار، من قصد دارم به استفاده از
است. اپراتور، به منظور در دریافت در داخل زمینه خاص از ساختار.
بنابراین من مشخص دانش آموزان براکت من. نام می شود مقدار بازگشتی از GetString ().
در همین حال، من قصد دارم به نسخه قابل چاپ کردن چیزی مشابه، گفت: دانش آموز
خانه، و در حال حاضر من قصد دارم مشخص که زمینه خانه دانشجویان i ام
باید مقدار بازگشتی دریافت تماس دیگر به GetString ().
>> حالا اجازه دهید چیزی را انجام دهید با این سه نام ها و خانه های دانش آموزان،
چیزی ساده مانند چاپ هر یک در یک جمله.
اینترنت من 0، دوباره من کمتر از است دانش آموزان، من + +، چون printf "٪ s در٪ s است.
بک اسلش نفر "، و اکنون اجازه دهید به من برق وصل کردن ارزش های این دو حوزه،
دانش آموزان براکت من. نام، کاما، دانش آموزان من براکت. خانه، نزدیک
پرانتز، نقطه و ویرگول بدین.
>> و در حال حاضر من نیاز به انجام یک چیز بیشتر.
در انتهای این فایل، من به نیاز آزاد کردن حافظه است که اختصاص داده شد
پشت صحنه های GetSring ()، که البته خواستار malloc، به منظور
اختصاص دادن حافظه برای رشته انواع کاربر.
اما این به آن بسیار ساده است.
برای من بین المللی دریافت 0، من کمتر از است دانش آموزان، من + +، و در داخل بدن
این حلقه، من به سادگی رفتن به دانش آموزان رایگان براکت من. نام،
و دانش آموزان رایگان من براکت. خانه.
>> در حال حاضر، ما به روشنی استفاده می شود سه حلقه در این برنامه، هنگامی که واقعا من
می تواند فقط استفاده از یک است، اما این فقط به خاطر تظاهرات، به طوری که
ما می توانیم در سه مجزا مشخص مراحل آنچه که دقیقا ما انجام می دهیم.
ما برای اولین بار در حال گرفتن یک نام و یک خانه برای هر یک از دانش آموزان، ما پس از آن هستید
چاپ نام و خانه هر یک از سه دانش آموزان، و
پس از آن ما قصد داریم به آزاد کردن حافظه استفاده شده توسط هر یک از دانش آموزان است.
اما قطعا ما می تونستیم ترکیب این به حلقه for یکی بزرگتر است.
>> بیایید نجات دهد، تدوین، و اجرای این برنامه است.
ایجاد ساختارها 0 / ساختمانها 0، دانش آموز نام، اجازه دهید دیوید ارائه، او به زندگی می کنند
در ماتر مجلس، نام دانشجو، اجازه دهید می گویند لورن، او را در Leverett زندگی می کنند
مجلس، نام دانشجو، راب، او به در و Kirkland خانه زندگی می کنند.
و در واقع، دیوید است در مادر، لورن در Leverett،
و راب در و Kirkland است.