2 00:00:00,000 --> 00:00:02,760 >> Выступоўца 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 што аўтары З не абавязкова думаю гадоў таму. 14 00:00:42,660 --> 00:00:45,630 Для гэтага мы можам выкарыстоўваць ключавое слова ЬурейеЕ, разам з 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 Я побач збіраюцца ўвесці ЬурейеЕ структуры, а затым фігурная дужка. 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 стандартны код, і я зараз збіраецеся выкарыстоўваць гэтыя дадзеныя 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, я менш чым канстанта, I + +. 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 студэнты дужкі I. 47 00:02:17,290 --> 00:02:21,550 Іншымі словамі я хачу г-ю студэнта ў масіў называецца студэнты, але цяпер 48 00:02:21,550 --> 00:02:25,340 Я хачу, каб на што я-я студэнцкая імя, а для гэтага, я збіраюся выкарыстоўваць 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 дом, і цяпер я збіраюся паказаць што я-я студэнты дом поле 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, зноў я менш студэнты, я + +, Е "% ы ў% с. 57 00:03:07,580 --> 00:03:12,600 касая рыса п ", а цяпер дазвольце мне падключыць значэння гэтых двух палёў, 58 00:03:12,600 --> 00:03:19,055 студэнты дужкі я. назва, коска, студэнты дужкі I. дом, побач 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 (), якая Вядома выклікае Таноса, каб 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 і бясплатных студэнты дужкі I. дом. 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 Але, вядома, мы, магчыма, сумясціць гэта ў адзін вялікі цыкл. 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 у Mather House, імя студэнта, давайце сказаць Ларэн, яна будзе жыць у Леверетта 78 00:04:31,580 --> 00:04:36,590 Дом, імя студэнта, Роб, ён будзе жыць у Kirkland House. 79 00:04:36,590 --> 00:04:39,440 І на самай справе, Давід у Mather, Ларэн ў Леверетта, 80 00:04:39,440 --> 00:04:40,810 і Роб знаходзіцца ў Kirkland. 81 00:04:40,810 --> 00:04:43,425