qidao123.com技术社区-IT企服评测·应用市场

标题: C++结构体介绍 [打印本页]

作者: 我可以不吃啊    时间: 5 天前
标题: C++结构体介绍
结构体的界说

在C++中,结构体(struct)是一种用户界说的数据类型,答应将不同类型的数据组合在一起。结构体的界说利用struct关键字,后跟结构体名称和一对花括号{},花括号内包罗成员变量的声明。
  1. struct Person {
  2.     std::string name;
  3.     int age;
  4.     double height;
  5. };
复制代码

结构体的实例化

结构体界说后,可以像基本数据类型一样声明结构体变量。结构体变量的成员可以通过点运算符.访问。
  1. Person person1;
  2. person1.name = "Alice";
  3. person1.age = 25;
  4. person1.height = 1.68;
复制代码

结构体的初始化

结构体变量可以在声明时举行初始化,利用花括号{}列出成员变量的初始值。
  1. Person person2 = {"Bob", 30, 1.75};
复制代码

结构体与函数

结构体可以作为函数的参数和返回值。通过传递结构体变量,可以在函数中操作结构体的成员。
  1. void printPerson(const Person& p) {
  2.     std::cout << "Name: " << p.name << ", Age: " << p.age << ", Height: " << p.height << std::endl;
  3. }
  4. Person createPerson(const std::string& name, int age, double height) {
  5.     Person p = {name, age, height};
  6.     return p;
  7. }
复制代码

结构体与指针

结构体指针可以通过箭头运算符->访问结构体成员。结构体指针常用于动态内存分配和函数参数传递。
  1. Person* ptr = &person1;
  2. std::cout << "Name: " << ptr->name << std::endl;
复制代码

结构体与数组

结构体可以用于界说数组,数组中的每个元素都是一个结构体变量。
  1. Person people[3] = {
  2.     {"Alice", 25, 1.68},
  3.     {"Bob", 30, 1.75},
  4.     {"Charlie", 35, 1.80}
  5. };
复制代码

结构体与类

在C++中,结构体与类(class)非常相似,主要区别在于默认的访问控制。结构体的成员默认是public,而类的成员默认是private。
  1. class Employee {
  2. public:
  3.     std::string name;
  4.     int id;
  5. };
复制代码

结构体的嵌套

结构体可以嵌套界说,即一个结构体可以包罗另一个结构体作为其成员。
  1. struct Address {
  2.     std::string city;
  3.     std::string street;
  4. };
  5. struct Employee {
  6.     std::string name;
  7.     int id;
  8.     Address address;
  9. };
复制代码

结构体与团结体

结构体与团结体(union)不同,团结体的全部成员共享同一块内存,而结构体的每个成员都有独立的内存空间。
  1. union Data {
  2.     int i;
  3.     double d;
  4.     char c;
  5. };
复制代码

结构体的应用场景

结构体常用于表现复杂的数据结构,如链表、树、图等。结构体还可以用于封装数据,提高代码的可读性和可维护性。
  1. struct Node {
  2.     int data;
  3.     Node* next;
  4. };
复制代码

通过以上介绍,可以了解到C++中结构体的基本概念、利用方法以及应用场景。结构体是C++中一种非常灵活且强大的工具,能够有效地构造和处置惩罚复杂的数据。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4