1. 程式人生 > >簡述結構體struct

簡述結構體struct

style eof 表達 ger 方式 飛機 分號 指針 int

結構體聽上去就覺得專業性很強,硬梆梆的,不夠友好。咱們換個說法,其實它就是一“機票”。對,“飛機票”的格式。


呃,一般的寫法是這樣的:


struct Ticket{ (“機票”這種類型約定首字母大寫)

char name[20] (乘客姓名)

char airline[10] (航班)

int takeoff (起飛時間)

int arrive (到達時間)

(還有一些亂七八糟的信息,略)

}passenger1,passenger2; (“乘客1、乘客2”變量名約定全部小寫。註意分號

)


然後,對“乘客1、乘客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 (最後這個“->

”稱為“指向運算符”,指針變量專屬哦!)


簡述結構體struct