>> ПРЕДСЕДНИК 1: Хајде да напише програм који пита корисника за именима и
куће три ученика.
Сада, за чување тих имена и куће можемо да користимо, шта, шест променљивих.
Три жице за именима, и други три жице за куће,
али ми већ знамо да можемо да очисти да код помоћу низова уместо,
на пример низ величине 3 за три имена, и још низ
величина 3 за куце.
Али испоставило се да можемо да почистим ово даље и даље, и заправо задржати оне
имена и куће заједно, тако да се име ученика и његова или њена кућа
се некако енкапсулиран, тако да говори, у исте променљиве.
>> Да бисте то урадили, међутим, морамо да се изјасни наше тип података, наша врста у Ц,
да аутори нису нужно Ц Мислим година раније.
Да бисте то урадили можемо да користимо кључну реч типедеф, заједно са
друга кључна реч струцт.
Хајде да погледамо.
Унутар струцтс.х, већ сам сам стечен започео
укључујући ЦС50 библиотеке.
Ја поред ћу да куцате типедеф струцт, а затим коврџава браце.
Унутар структуре попунити, ја ћу да прецизира да ће ученик имати
стринг зове име, а други стринг зове кућа.
Идем да онда затворим витичасте заграде, и одредите да име
овај нови тип података биће ученик.
Другим речима, преко овог синтаксе имају И прогласио нови тип података моје
да није постојао пре тренутак, и унутар овог типа података су два податка
поља или чланови података, једна се зове име, један зове кућа, од којих оба
су типа стринг.
>> Хајде да сада користе ову врсту у стварном програму.
У струцтс0.ц, ја сам слично стечен сам већ почео са неким
Предложени број, а ја сам сада ће користити ове податке
укуцајте студент, као што следи.
Ја ћу прво да се изјасни низ типа студент, ја ћу
позовите низа студенте -
множина -
и ја ћу навести да ће његова величина бити три, који, обавештење, је вредност
константни СТУДЕНТИ -
у свим главним градовима -
да сам проглашена овде, раније у датотеци.
Хајде да сада поновити у том тројицом студенти, и питати корисника за
њихова имена и куће.
>> за инт добијем 0, и је мање од тога константа, и + +.
А сада унутар тела за ово петља, ја ћу да одштампате нешто
као име ученика.
Ја онда ћу стварно добити да Име ученика навођењем
ученика у заграде и.
Другим речима желим студенту и-ти у низ позвао студенте, али сада
Желим да се на тај и-ти ученик име, а да би то урадили, ја ћу да користим
. оператер, како би се на специфична област унутар струцт.
Тако сам одредите студената изједначи и име. добија повратну вредност ГетСтринг ().
У међувремену, ја ћу да одштампате нешто слично, рекавши ученик
кућа, а сада ћу навести да студенти кућа поље и-тог
ће добити повратну вредност још један позив да ГетСтринг ().
>> Сада хајде да урадимо нешто са ове три имена и куће ученика,
нешто једноставно попут штампе сваки у једној реченици.
за инт добијем 0, опет сам је мање од студенти, и + +, иф "% с је у% с.
косих н ", а сада пусти ме да прикључите вредности та два поља,
студенте у заграде и име, зарез., студенти изједначи И кућа, близу.
заграда, тачка и зарез.
>> И сад ја треба да урадим још једну ствар.
На дну ове датотеке, треба да ослободили меморију која је додељена
иза кулиса од ГетСринг (), који наравно позива маллоц, како би се
доделити меморију за гудаче типови корисника.
Али то је једноставан.
за инт добијем 0, и је мање од студенти, и + +, а унутар тела
ово за петљу, ја једноставно ћу пружају бесплатну студената конзолу и име.,
и бесплатна студенти изједначи ја кућу..
>> Сада, ми смо јасно користи три петље за у овом програму, када сам стварно
могао је само користио један, али то је само ради демонстрација, тако да
можемо да наведемо у три различита кораци шта радимо.
Ми смо прво добијају име и кућу за сваки од ученика, онда смо
одштампа име и кућу за сваки од три ученика, а
онда ћемо ослободити меморију користи сваки од ученика.
Али сигурно могли смо комбиновати ово у један већи за петљу.
>> Хајде да сада спасити, саставити, и покренете овај програм.
чине Структуре 0. / Структуре 0, ученик име, хајде да обезбеди Давида, он ће живети
у Дому Матхер, име ученика, да кажу Лаурен, она ће живети у Леверетт
Кућа, име ученика, Роб, он ће живи у Киркланд Хоусе.
И заиста, Давид је у Матхер, Лорен је у Леверетт,
и Роб је у Киркланд.