簡述結構體struct

結構體聽上去就以爲專業性很強,硬梆梆的,不夠友好。我們換個說法,其實它就是一「機票」。對,「飛機票」的格式。數組


呃,通常的寫法是這樣的: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 (最後這個「->」稱爲「指向運算符」,指針變量專屬哦!)

相關文章
相關標籤/搜索