C++ 数据结构

C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。

定义结构

为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

struct type_name {
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
. .
} object_names;

type_name 是结构体类型的名称,member_type1 member_name1 是标准的变量定义,比如 int i; 或者 float f; 或者其他有效的变量定义。在结构定义的末尾,最后一个分号之前,您可以指定一个或多个结构变量,这是可选的。

访问结构成员

使用成员访问运算符(.)。成员访问运算符是结构变量名称和要访问的结构成员之间的一个句号。

结构作为函数参数

您可以把结构作为函数参数,传参方式与其他类型的变量或指针类似。

指向结构的指针

定义指向结构的指针,方式与定义指向其他类型变量的指针相似,如下所示:

struct Books *struct_pointer;

现在,可以在上述定义的指针变量中存储结构变量的地址。为了查找结构变量的地址,请把 & 运算符放在结构名称的前面,如下所示:

struct_pointer = &Book1;

为了使用指向该结构的指针访问结构的成员,必须使用 -> 运算符,如下所示:

struct_pointer->title;

typedef 关键字

下面是一种更简单的定义结构的方式,可以为创建的类型取一个"别名"。例如:

typedef struct
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
}Books;

现在,可以直接使用 Books 来定义 Books 类型的变量,而不需要使用 struct 关键字。

Books Book1, Book2;

可以使用 typedef 关键字来定义非结构类型,如下所示:

typedef long int *pint32;
 
pint32 x, y, z;

x, y 和 z 都是指向长整型 long int 的指针。

posted @ 2017-09-11 16:00  sxpdy  阅读(271)  评论(0编辑  收藏  举报