Виступаючий 1: Давайте напишемо програму, яка запитує у користувача імена і будинку трьох студентів. Тепер, щоб зберегти ці імена і вдома ми могли б використовувати, що, шість змінних. Три рядки для імен, а інший три рядки для будинків, але ми вже знаємо, що ми можемо очистити що код по замість використання масивів, наприклад масив розміру 3 для три імені, а інший масив Розмір 3 для будинків. Але, виявляється, ми можемо очистити це ще далі, і насправді тримати тих, імена і вдома разом, так що Ім'я студента і його або її будинок якось інкапсульовані, так сказати, в тій же змінної. Щоб зробити це, тим не менш, ми повинні оголосити наш власний тип даних, наш власний тип в C, що автори С не обов'язково думаю років тому. Для цього ми можемо використовувати ключове слово ЬурейеЕ, поряд з інша структура ключовими словами. Давайте поглянемо. Усередині structs.h, я вже отримали розпочата включаючи бібліотеку CS50. Я поруч збираються ввести ЬурейеЕ структури, а потім фігурна дужка. Всередині структури, я збираюся вказати, що студент повинен мати рядок називається ім'я, а інший рядок називається будинок. Я збираюся потім закриваю фігурні дужки, і вказати, що ім'я цей новий тип даних повинен бути студентом. Іншими словами, за допомогою цього синтаксису мати я заявив новий тип даних самостійно що не існувало деякий час тому, і всередині цього типу даних дві дані поля або елементи даних, одна називається ім'я, одна називається будинок, обидва з яких мають тип рядка. Давайте тепер використовувати цей тип в реальній програмі. У structs0.c, я ж отримав сам починав уже з деякими стандартний код, і я зараз збираєтеся використовувати ці дані введіть студента, таким чином. Я спочатку збирається оголосити Масив типу студента, я буду подзвонити студентів масиву - множинне - і я буду вказувати, що його розмір буде три, який, зауважте, є значенням постійні студентів - у всіх столицях - що я заявив тут, раніше у файлі. Давайте тепер перебору цих трьох студенти, і запитувати у користувача їх імена і вдома. для міжнар я отримую 0, я менше ніж константа, I + +. А тепер всередині тіла цього для цикл, я збираюся роздрукувати щось як ім'я студента. Я то при переході насправді отримати, що Ім'я студента, вказавши студенти дужки I. Іншими словами я хочу г-у студента в масив називається студенти, але тепер Я хочу, щоб на що я-я студентська ім'я, а для цього, я збираюся використовувати . оператор, для того, щоб отримати по крайней конкретній області всередині структури. Так що я вказати студенти дужки я. Назва отримує значення, що повертається GetString (). Тим часом, я збираюся роздрукувати щось подібне, кажучи студента будинок, і тепер я збираюся вказати що я-я студенти будинок поле повинні отримати значення, що повертається інший виклик GetString (). Тепер давайте зробимо що-небудь з цими трьома Імена і вдома студентів, щось просте, як друку кожен в реченні. для міжнар я отримую 0, знову я менше студенти, я + +, Е "% и в% с. коса риса п ", а тепер дозвольте мені підключити значення цих двох полів, студенти дужки я. назва, кома, студенти дужки I. будинок, поруч Хлопець, крапка з комою. А тепер мені потрібно зробити ще одну річ. У нижній частині цього файлу, мені потрібно звільнити пам'ять, яка була виділена за лаштунками GetSring (), яка Звичайно викликає Танос, щоб виділити пам'ять для рядків користувач вводить. Але це просто. для міжнар я отримую 0, я менше студенти, я + + і всередині тіла це цикл, я просто збираюся забезпечити вільний студентів кронштейн я. ім'я, і безкоштовних студенти дужки I. будинок. Тепер, ми чітко використовується три для петель у цій програмі, коли насправді я міг би просто використовувати один, але це тільки заради демонстрації, так що ми можемо вказати в трьох різних кроки, що саме ми робимо. Ми спочатку отримати ім'я і будинок для кожного зі студентів, ми потім роздрукувавши ім'я і будинок для кожен з трьох студентів, і потім ми збираємося, щоб звільнити пам'ять використовується кожним із студентів. Але, звичайно, ми, можливо, поєднати це в один великий цикл. Давайте тепер зберегти, скомпілювати, і запустити цю програму. роблять Структури 0. / Структури 0, студента назвати, давайте забезпечити Давида, він буде жити в Mather House, ім'я студента, давайте сказати Лорен, вона буде жити в Леверетт Будинок, ім'я студента, Роб, він буде жити в Kirkland House. І справді, Давид в Mather, Лорен в Леверетт, і Роб знаходиться в Kirkland.