C++ 结构体 (struct)
C++ 结构体
C++ 结构体是一种将多个相关的变量组合在一起的方式。
结构体中的每个变量都被称为结构体的成员。
与数组不同,结构体可以包含许多不同的数据类型(如 int、string、bool 等)。
创建结构体
要创建一个结构体,请使用 struct 关键字并在花括号内声明其每个成员。
声明后,指定结构体的变量名(在下面的实例中为 myStructure):
struct { // 结构体声明
int myNum; // 成员(int 变量)
string myString; // 成员(string 变量)
} myStructure; // 结构体变量
访问结构成员
要访问结构体的成员,请使用点语法 (.):
实例
将数据分配给结构体的成员并打印它:
// 创建一个名为 myStructure 的结构体变量
struct {
int myNum;
string myString;
} myStructure;
// 为 myStructure 的成员赋值
myStructure.myNum = 1;
myStructure.myString = "Hello World!";
// 打印 myStructure 的成员
cout << myStructure.myNum << "\n";
cout << myStructure.myString << "\n";
一个结构体用于多个变量
您可以使用逗号 (,) 在多个变量中使用一个结构体:
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 << "\n";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "\n";
命名结构体
通过给结构体命名,您可以将其视为一种数据类型。这意味着您可以在程序的任何位置、任何时间使用此结构体创建变量。
要创建命名结构体,将结构体的名称放在 struct 关键字之后:
struct myDataType { // 这个结构体被命名为 "myDataType"
int myNum;
string myString;
};
要声明使用该结构体的变量,请使用结构体的名称作为变量的数据类型:
myDataType myVar;
实例
使用一个结构体来表示两辆车:
// 声明一个名为 "car" 的结构体
struct car {
string brand;
string model;
int year;
};
int main() {
// 创建一个 car 结构体并将其存储在 myCar1 中;
car myCar1;
myCar1.brand = "BMW";
myCar1.model = "X5";
myCar1.year = 1999;
// 创建另一个 car 结构体并将其存储在 myCar2 中;
car myCar2;
myCar2.brand = "Ford";
myCar2.model = "Mustang";
myCar2.year = 1969;
// 打印结构体的成员
cout << myCar1.brand << " " << myCar1.model << " " << myCar1.year << "\n";
cout << myCar2.brand << " " << myCar2.model << " " << myCar2.year << "\n";
return 0;
}
挑战任务
创建一个结构体来表示一个学生。它应该包含以下成员:
name(string)age(int)grade(char)
然后:
- 创建一个该结构体的变量。
- 为其成员赋值。
- 将这些值打印到屏幕。
预期输出
Name: Liam Age: 35 Grade: A
解决方案
#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 << "\n";
cout << "Age: " << s1.age << "\n";
cout << "Grade: " << s1.grade << "\n";
return 0;
}