简述结构体struct

结构体听上去就觉得专业性很强,硬梆梆的,不够友好。咱们换个说法,其实它就是一“机票”。对,“飞机票”的格式。

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了凤凰免费建站欢迎大家使用!

呃,一般的写法是这样的:

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
文章出自:http://ybzwz.com/article/pcgjdo.html