商城网站设计,设计师应该看的网站,网站开发详细设计文档,怎样创建网站或网页一、结构体(struct) C/C 数组允许定义可存储相同类型数据项的变量#xff0c;但是结构体是 C 中另一种用户自定义的可用的数据类型#xff0c;它允许存储不同类型的数据项。 结构体用于表示一条记录#xff0c;假设现在想要跟踪图书馆中书本的动态#xff0c;可能需要跟踪每…一、结构体(struct) C/C 数组允许定义可存储相同类型数据项的变量但是结构体是 C 中另一种用户自定义的可用的数据类型它允许存储不同类型的数据项。 结构体用于表示一条记录假设现在想要跟踪图书馆中书本的动态可能需要跟踪每本书的下列属性
Title 标题Author 作者Subject 类目Book ID 书的 ID 如果传统的定义变量会非常散乱这时候结构体派上了用场。
二、定义结构 在 C 中struct 语句用于定义结构体structure。 结构体是一种用户自定义的数据类型用于将不同类型的数据组合在一起。与类class类似结构体允许你定义成员变量和成员函数。 为了定义结构必须使用 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; 或者其他有效的变量定义。在结构定义的末尾最后一个分号之前可以指定一个或多个结构变量这是可选的。下面是声明一个结构体类型 Books变量为 book
struct Books
{char title[50];char author[50];char subject[100];int book_id;
} book;
结构体优点
简单数据封装适合封装多种类型的简单数据通常用于数据的存储。轻量级相比 class结构体语法更简洁适合小型数据对象。面向对象支持支持构造函数、成员函数和访问权限控制可以实现面向对象的设计。 结构体的各个部分详细介绍 struct 关键字用于定义结构体它告诉编译器后面要定义的是一个自定义类型。 成员变量成员变量是结构体中定义的数据项它们可以是任何基本类型或其他自定义类型。在 struct 中这些成员默认是 public可以直接访问。 成员函数结构体中也可以包含成员函数这使得结构体在功能上类似于类。成员函数可以操作结构体的成员变量提供对数据的封装和操作。 访问权限与 class 类似你可以在 struct 中使用 public、private 和 protected 来定义成员的访问权限。在 struct 中默认所有成员都是 public而 class 中默认是 private。
三、访问结构成员 为了访问结构的成员我们使用成员访问运算符.。成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号。 strcpy(s1, s2)将字符串 s2 复制到字符串 s1 中。s1 必须有足够的空间来存储 s2。返回值s1。 下面的实例演示了结构的用法
#include iostream
#include cstringusing namespace std;// 声明一个结构体类型 Books
struct Books
{char title[50];char author[50];char subject[100];int book_id;
};int main( )
{Books Book1; // 定义结构体类型 Books 的变量 Book1Books Book2; // 定义结构体类型 Books 的变量 Book2// Book1 详述strcpy( Book1.title, C 教程);strcpy( Book1.author, Runoob); strcpy( Book1.subject, 编程语言);Book1.book_id 12345;// Book2 详述strcpy( Book2.title, CSS 教程);strcpy( Book2.author, Runoob);strcpy( Book2.subject, 前端技术);Book2.book_id 12346;// 输出 Book1 信息cout 第一本书标题 : Book1.title endl;cout 第一本书作者 : Book1.author endl;cout 第一本书类目 : Book1.subject endl;cout 第一本书 ID : Book1.book_id endl;// 输出 Book2 信息cout 第二本书标题 : Book2.title endl;cout 第二本书作者 : Book2.author endl;cout 第二本书类目 : Book2.subject endl;cout 第二本书 ID : Book2.book_id endl;return 0;
}
实例中定义了结构体类型 Books 及其两个变量 Book1 和 Book2。当上面的代码被编译和执行时它会产生下列结果 四、typedef 关键字
下面是一种更简单的定义结构的方式可以为创建的类型取一个别名。例如
typedef struct Books
{char title[50];char author[50];char subject[100];int book_id;
}Books;现在可以直接使用 Books 来定义 Books 类型的变量而不需要使用 struct 关键字。下面是实例
Books Book1, Book2;