Выступоўца 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.