声明
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
};
为了访问结构的成员,我们使用成员访问运算符(.)。
结构作为函数参数
- 可以把结构作为函数参数,传参方式与其他类型的变量或指针类似。
{
Books Book1; // 定义结构体类型 Books 的变量 Book1
Books Book2; // 定义结构体类型 Books 的变量 Book2
// Book1 详述
strcpy( Book1.title, "C++ 教程");
strcpy( Book1.author, "Runoob");
strcpy( Book1.subject, "编程语言");
Book1.book_id = 12345;
// 输出 Book1 信息
printBook( Book1 );
return 0;
}
void printBook( struct Books book )
{
cout << "书标题 : " << book.title <<endl;
cout << "书作者 : " << book.author <<endl;
cout << "书类目 : " << book.subject <<endl;
cout << "书 ID : " << book.book_id <<endl;
}
指向结构的指针
- 定义指向结构的指针
struct Books *struct_pointer;
- 指向相应地址
struct_pointer = &Book1;
- 使用该指针访问结构的成员,必须使用
->
运算符
struct_pointer->title;
- 重写上一个示例
{
Books Book1; // 定义结构体类型 Books 的变量 Book1
Books Book2; // 定义结构体类型 Books 的变量 Book2
// Book1 详述
strcpy( Book1.title, "C++ 教程");
strcpy( Book1.author, "Runoob");
strcpy( Book1.subject, "编程语言");
Book1.book_id = 12345;
// 输出 Book1 信息
printBook(& Book1 );
return 0;
}
void printBook( struct Books *book )
{
cout << "书标题 : " << book->title <<endl;
cout << "书作者 : " << book->author <<endl;
cout << "书类目 : " << book->subject <<endl;
cout << "书 ID : " << book->book_id <<endl;
}
typedef
- 可以使用typdef为创建的结构类型定义一个别名
typedef struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
}Books;
Books Book1, Book2;//直接使用 _Books_ 来定义 _Books_ 类型的变量,而不需要使用 struct 关键字。
- 在C++中,当你声明了一个
struct
类型后,你可以直接使用这个类型来定义变量 - 在C语言中,如果不使用
typedef
关键字给结构体起一个别名,需要使用struct
关键字来定义变量
struct Books Book1;