結構體聽上去就以爲專業性很強,硬梆梆的,不夠友好。我們換個說法,其實它就是一「機票」。對,「飛機票」的格式。數組
呃,通常的寫法是這樣的:ide
struct Ticket{ (「機票」這種類型約定首字母大寫)spa
char name[20] (乘客姓名)指針
char airline[10] (航班)it
int takeoff (起飛時間)class
int arrive (到達時間)變量
(還有一些亂七八糟的信息,略)引用
}passenger1,passenger2; (「乘客一、乘客2」變量名約定所有小寫。注意分號)di
而後,對「乘客一、乘客2」錄入對應的姓名啥的,就能夠用了。能夠繼續添加新乘客,而後出票。若是後面跟的變量名比較多,能夠不用緊跟在struct的「}」屁股後面去定義,好比像下面這樣另取一行:時間
struct Ticket passenger1,passenger2;
上面兩種是最經常使用的寫法,其餘的表達方式就別管他了,吃飽了撐着的人才會去記。
接下來是想得到乘客1的「到達時間」怎麼作?「passenger1.arrive」,就像VB裏取屬性同樣,專業說法稱爲「引用」。如何初始化所有乘客信息呢?「passenger1={「Lining」,"MF3678",1600,1900};」。
結構體數組就是一種應付許多「乘客」的一種策略。20個乘客寫做「passenger[20]」,passenger[1]至關於「乘客1」。顯然,在「passenger[1]」裏面包含了「機票」上所應有的所有信息。有了數組這個抽象的東西,就不用逐個去定義struct變量了。
結構體指針,把結構體看成一種變量類型,按指針變量進行操做。一開始不習慣,摸熟了腦子就轉過彎來了。仍是以「機票」爲例:
struct Ticket passenger1; (聲明結構體變量)
struct Ticket *point; (聲明結構體指針變量point)
point=&passenger1;(取passenger1地址)
而後有如下等價形式:
passenger1.name = (*point).name = point->name (最後這個「->」稱爲「指向運算符」,指針變量專屬哦!)