>> 揚聲器1：讓我們寫一個程序， 提示輸入名稱和用戶
房子的三名學生。
現在，為了存儲這些名字和房子 我們可以使用，什麼的，六個變量。
三個字符串的名稱，和另一 三根弦的房子，
但我們已經知道，我們可以清理 該代碼使用數組代替，
例如大小為3的數組 三個名字，而另一個數組
大小3的房子。
但事實證明，我們可以清理它 進一步的是，居然讓那些
名稱和房屋在一起，使一個 學生的姓名以及他或她的房子
以某種方式封裝，所以 說話，到同一個變量。
>> 要做到這一點，不過，我們需要聲明 我們自己的數據類型，我們自己的類型在C中，
將c的作者並不一定 想起多年前。
要做到這一點，我們可以使用關鍵字 的typedef，隨著
其它關鍵字struct。
讓我們一起來看看。
裡面structs.h的，我已經 得到由開始
包括CS50庫。
我接下來要輸入typedef結構， 然後一個大括號。
裡面的結構的，我要去 指定學生必須有一個
叫名字的字符串，而另一個 字符串被稱為房子。
我打算再關閉我的花括號， 並指定名稱
這個新的數據類型應為學生。
換句話說，通過這個語法有我 宣布我自己的一個新的數據類型
根本不存在剛才和 這種數據類型的內部有兩個數據
字段或數據成員，一個叫名字， 一個叫房子，這兩者
為string類型。
>> 現在，讓我們使用這種類型的 在實際的程序。
在structs0.c，我已經得到了類似 我已經開始與一些
樣板代碼，而且我現在 要使用該數據
學生類型，如下所示。
我首先要聲明一個 學生類型數組，我會
調用數組的學生 -
複數 -
我會指定它的大小將 三種，其中，通知，很值
不斷的學生 -
在所有的首都 -
我已經聲明了這裡， 前面的文件中。
現在讓我們遍歷這三個 學生，並提示用戶
他們的名字和房屋。
>> 對於int我得到0，i小於 較恆定的，我+ +。
而現在這個體內的內 環，我要打印出來的東西
像學生的名字。
我當時要去真正享受 通過指定學生的姓名
學生支架I。
換句話說，我想第i個學生 在被稱為學生的陣列，但現在
我想獲得在該第i個學生 名，而要做到這一點，我將使用
本。運營商，以獲得在一個 該結構的特定領域內。
所以我指定學生支架I。名稱 得到的GetString的返回值（）。
同時，我要打印出來 類似的東西，說學生
房子，現在我要指定 即第i個學生家場
將得到的返回值 另一個電話給GetString（）。
>> 現在，讓我們做一些與這三個 學生的姓名和房屋，
一些簡單的像印刷 每出一個句子。
對於int我得到0，我再次小於 學生，我+ +的printf“％s是在％s。
反斜杠N“，現在讓我插上 這兩個字段的值，
學生支架I。名，逗號， 學生支架I。房子，靠近
括號，分號。
>> 現在我需要做的一件事。
在這個文件的底部，我需要 釋放分配的內存
在幕後GetSring（），這 當然調用malloc，為了
為字符串分配內存 用戶類型。
但是，這很簡單。
對於int我得到0，i小於 生，我+ +，和在體內
這個for循環，我只是要 免費提供學生支架我。名字，
和免費的學生支架I。房子。
>> 現在，我們已經清楚地使用了三個for循環 這個程序中，當我真的
可以只使用一種，但這是 只是用於演示的緣故，使
我們可以在三個不同的指定 步驟究竟我們正在做的。
我們首先得到一個名字和一所房子 每個學生，我們則
打印出的名稱和房子 每三個學生，而且
那麼我們要釋放內存 使用的每個學生。
但可以肯定，我們可能已經結合本 成一個較大的for循環。
>> 現在，讓我們保存，編譯， 並運行此程序。
使結構0/0結構，學生的 名字，讓我們提供大衛，他就住
在奧美樓，學生的姓名，讓我們 勞倫說，她會住在萊弗里特
房子，學生的姓名，羅布，他會 住在柯克蘭樓。
事實上，大衛是在奧美， 勞倫是萊弗里特，
和Rob在柯克蘭。