📅  最后修改于: 2023-12-03 14:59:51.614000             🧑  作者: Mango
在C++中,结构是一种用户定义的数据类型,它允许您组合不同类型的数据成员。结构和类的主要区别在于,结构的默认访问修饰符是public,而类的默认访问修饰符是private。
结构使用关键字“struct”声明,其语法如下:
struct [结构名] {
[成员1数据类型] [成员1名称];
[成员2数据类型] [成员2名称];
...
} [结构变量名];
下面是一个简单的实例:
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
double height;
};
int main() {
Person p1;
p1.name = "John";
p1.age = 25;
p1.height = 1.8;
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Height: " << p1.height << endl;
return 0;
}
输出:
Name: John
Age: 25
Height: 1.8
结构可以作为函数参数传递,例如:
void printPerson(Person p) {
cout << "Name: " << p.name << endl;
cout << "Age: " << p.age << endl;
cout << "Height: " << p.height << endl;
}
int main() {
Person p1;
p1.name = "John";
p1.age = 25;
p1.height = 1.8;
printPerson(p1);
return 0;
}
输出:
Name: John
Age: 25
Height: 1.8
结构指针可以用来访问结构中的成员。例如:
Person *p2 = &p1;
p2->name = "Mike";
p2->age = 30;
p2->height = 1.75;
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Height: " << p1.height << endl;
输出:
Name: Mike
Age: 30
Height: 1.75
其中,“->”是结构指针访问成员的运算符。
结构也可以用于数组的定义。例如:
Person pArray[3];
结构中也可以包含函数,称为“结构体函数”或“成员函数”。例如:
struct Rectangle {
int width;
int height;
int getArea() {
return width * height;
}
};
int main() {
Rectangle r1;
r1.width = 4;
r1.height = 5;
cout << "Area: " << r1.getArea() << endl;
return 0;
}
输出:
Area: 20
在上面的例子中,getArea()是一个结构体函数,它返回结构中成员width和height的乘积。
结构是C++中非常强大的功能之一。它允许您组合不同类型的数据成员,可以作为函数参数传递,也可以定义为数组。结构中还可以包含函数,使其更加灵活多样。