Выступающий 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.