这是基本语法系列的最后一文,以后将围绕面向对象和应用领域的相关专题,话不多说,开始这最后的基础。
数据结构
C++ 数组允许定义可存储相同类型数据项的变量,而且数组的数据项在物理上是顺序存储的。但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项,并且可以实现物理上随机存储。
定义结构
使用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; 或者其他有效的变量定义。object_names 在结构定义的末尾,最后一个分号之前,可以指定一个或多个结构变量,这是可选的。
结构成员访问
使用成员访问运算符(.) 访问结构成员
结构作为函数参数
结构作为函数参数时,传参方式与其他类型的变量或指针类似
指向结构的指针
定义指向结构的指针,方式与定义指向其他类型变量的指针相似:
//假设已经定义名为Books的结构,struct关键字可以省略。
struct Books *struct_pointer;
指向结构的指针使用 -> 运算符访问结构的成员
typedef 关键字
typedef struct type_name {
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
.
.
}structTypeName;
type_name 是结构体类型的名称,member_type1 member_name1 是标准的变量定义,比如 int i; 或者 float f; 或者其他有效的变量定义,structTypeName 是结构类型的别名 。
可以直接使用 structTypeName 来定义 type_ name 结构类型的变量,而不需要使用 struct 关键字:
Books Book1, Book2;
也可以使用 typedef 关键字来定义非结构类型:
typedef long int *pint32;
pint32 x, y, z;