原文: https://www.programiz.com/cpp-programming/structure

在本文中,您将学习 C++ 编程中的结构。 它是什么,如何定义它并在程序中使用它。

结构是一个单一名称下不同数据类型的变量的集合。 它与相似,两者都保存不同数据类型的数据集合。

例如:您想存储有关某个人的一些信息:他/她的姓名,公民编号和薪水。 您可以轻松创建不同的变量namecitNosalary,以分别存储这些信息。

但是,将来,您将需要存储有关多人的信息。 现在,您需要为每个人的每个信息创建不同的变量:name1citNo1salary1name2citNo2salary2

您可以轻松地看到代码看起来有多大和混乱。 另外,由于变量之间不存在任何关系(信息),因此这将是一项艰巨的任务。

更好的方法是使用单个名称Person收集所有相关信息,并将其用于每个人。 现在,代码看起来也更加简洁,易读且高效。

以单个名称Person收集的所有相关信息是一个结构。


如何在 C++ 编程中声明结构?

struct关键字定义结构类型,后跟标识符(结构名称)。

然后,在花括号内,可以声明该结构的一个或多个成员(在花括号内声明变量)。 例如:

  1. struct Person
  2. {
  3. char name[50];
  4. int age;
  5. float salary;
  6. };

在此,定义具有三个成员的结构Personnameagesalary

创建结构时,不会分配内存。

结构定义只是创建变量的蓝图。 您可以将其想象为数据类型。 当您如下定义整数时:

  1. int foo;

int指定变量foo仅可容纳整数元素。 同样,结构定义仅指定结构变量在定义时所具有的属性。

注意:请记住以分号(;)结尾的声明


如何定义结构变量?

声明结构Person如上所述。 您可以将结构变量定义为:

  1. Person bill;

在此,定义类型为结构Person的结构变量bill

定义结构变量后,仅编译器会分配所需的内存。

考虑到您使用的是 32 位还是 64 位系统,float的内存为 4 字节,int的内存为 4 字节,char的内存为 1 字节。

因此,为结构变量bill分配了 58 个字节的内存。


如何访问结构的成员?

使用点(.运算符可以访问结构变量的成员。

假设您要访问结构变量billage,并将其分配为 50。 您可以使用以下代码执行此任务:

  1. bill.age = 50;

示例:C++ 结构

C++ 程序,用于将数据分配给结构变量的成员并显示它。

  1. #include <iostream>
  2. using namespace std;
  3. struct Person
  4. {
  5. char name[50];
  6. int age;
  7. float salary;
  8. };
  9. int main()
  10. {
  11. Person p1;
  12. cout << "Enter Full name: ";
  13. cin.get(p1.name, 50);
  14. cout << "Enter age: ";
  15. cin >> p1.age;
  16. cout << "Enter salary: ";
  17. cin >> p1.salary;
  18. cout << "\nDisplaying Information." << endl;
  19. cout << "Name: " << p1.name << endl;
  20. cout <<"Age: " << p1.age << endl;
  21. cout << "Salary: " << p1.salary;
  22. return 0;
  23. }

输出

  1. Enter Full name: Magdalena Dankova
  2. Enter age: 27
  3. Enter salary: 1024.4
  4. Displaying Information.
  5. Name: Magdalena Dankova
  6. Age: 27
  7. Salary: 1024.4

在此,声明具有三个成员nameagesalary的结构Person

main()函数的内部,定义了结构变量p1。 然后,要求用户输入信息,并显示用户输入的数据。


您还应该查看与这些结构相关的教程: