结构体属于用户自定义的数据类型,允许用户存储不同的数据类型。
struct 结构体名 {结构体成员列表};
struct Student {
string name;
int age;
int score;
};
struct Student student;
student.age = 18;
student.name = "张三";
student.score = 690;
在结构定义的末尾,最后一个分号之前,您可以指定一个或多个结构变量,这是可选的。
struct Student {
string name;
int age;
int score;
}s1,s2;
将自定义的结构体放入到数组中。
struct 结构体名 数组名[元素个数] = {{},{},{}}
struct Student stuArr[3] = {
{"张三",18,100},
{"李四",28,99},
{"王五",38,110}
};
stuArr[2].name = "赵六";
通过指针访问结构体中的成员。利用操作符“->”可以通过结构体指针访问结构体属性。
#include <iostream>
#include <cstring>
using namespace std;
void printBook( struct Books *book );
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
};
int main( )
{
Books Book1; // 定义结构体类型 Books 的变量 Book1
Books 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 的地址来输出 Book1 信息
printBook( &Book1 );
// 通过传 Book2 的地址来输出 Book2 信息
printBook( &Book2 );
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;
}
#include <iostream>
#include <cstring>
using namespace std;
void printBook( struct Books book );
// 声明一个结构体类型 Books
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
};
int main( )
{
Books Book1; // 定义结构体类型 Books 的变量 Book1
Books 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 信息
printBook( Book1 );
// 输出 Book2 信息
printBook( Book2 );
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 struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
}Books;
然后可以直接使用 Books 来定义 Books 类型的变量,而不需要使用 struct 关键字。
Books Book1, Book2;