C++ 结构体(struct)
C++ 结构体
结构体(也称 struct)是一种将多个相关变量分组到一个地方的方法。
结构体中的每个变量都称为该结构体的一个成员。
与数组不同,结构体可以包含多种不同的数据类型:int、string、bool 等。
创建结构体
要创建结构体,请使用 struct 关键字,并在花括号内声明其每个成员。
声明之后,指定结构体变量的名称(在下面的示例中为myStructure):
struct { // 结构声明
int myNum; // 成员(整型变量)
string myString; // 成员(字符串变量)
}
myStructure; // 结构变量
访问结构体成员
要访问结构体的成员,请使用点语法(."):
示例
为结构体的成员赋值并打印数据:
// 创建一个名为 myStructure 的结构体变量
struct {
int myNum;
string myString;
} myStructure;
// v
myStructure.myNum = 1;
myStructure.myString = "Hello World!";
// 打印 myStructure 的成员
cout << myStructure.myNum << "
";
cout << myStructure.myString << "
";
亲自试一试 »
一个结构体用于多个变量
您可以使用逗号 (,) 将一个结构体用于多个变量:
struct {
int myNum;
string myString;
} myStruct1, myStruct2, myStruct3; // 多个结构变量用逗号分隔
此示例展示了如何在两个不同的变量中使用同一个结构体:
示例
使用一个结构体表示两辆车:
struct {
string brand;
string model;
int year;
} myCar1, myCar2; // 我们可以在这里用逗号分隔添加变量
// 将数据放入第一个结构体中
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;
// 将数据放入第二个结构体中
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;
// 打印结构构件
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "
";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "
";
亲自试一试 »
命名结构
通过给结构体命名,您可以将其视为数据类型。这意味着您可以在程序的任何位置、任何时间使用此结构体创建变量。
要创建命名结构体,请将结构体的名称紧跟在 struct 关键字之后:
struct car { // 该结构现在被命名为 "car"
string
brand;
string model;
int year;
};
要声明一个使用该结构体的变量,请使用该结构体的名称作为变量的数据类型:
car myCar1;
现在,您可以使用 `car` 作为数据类型在任何地方重用该结构体:
示例
使用一个结构体表示两辆车:
// 声明一个名为"car"的结构体
struct car {
string brand;
string model;
int year;
};
int main() {
// 创建一个汽车结构并将其存储在 myCar1 中;
car myCar1;
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;
// 创建另一个汽车结构并将其存储在 myCar2 中;
car myCar2;
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;
// 打印结构构件
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "
";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "
";
return 0;
}
亲自试一试 »
挑战任务
创建一个结构体来表示一名学生。它应该包含以下成员:
name(string)age(int)grade(char)
然后:
- 创建结构体的一个变量。
- 为其成员赋值。
- 将值打印到屏幕上。
预期输出
Name: Liam
Age: 35
Grade: A
Solution
#include <iostream>
#include <string>
using namespace std;
struct student {
string name;
int age;
char grade;
};
int main() {
student s1;
s1.name = "John";
s1.age = 35;
s1.grade = 'A';
cout << "Name: " << s1.name << "
";
cout << "Age: " << s1.age << "
";
cout << "Grade: " << s1.grade << "
";
return 0;
}
亲自试一试 »

