企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# C++ 结构 > 原文: [https://www.programiz.com/cpp-programming/structure](https://www.programiz.com/cpp-programming/structure) #### 在本文中,您将学习 C++ 编程中的结构。 它是什么,如何定义它并在程序中使用它。 结构是一个单一名称下不同数据类型的变量的集合。 它与[类](/cpp-programming/object-class "C++ class")相似,两者都保存不同数据类型的数据集合。 **例如**:您想存储有关某个人的一些信息:他/她的姓名,公民编号和薪水。 您可以轻松创建不同的变量`name`,`citNo`,`salary`,以分别存储这些信息。 但是,将来,您将需要存储有关多人的信息。 现在,您需要为每个人的每个信息创建不同的变量:`name1`,`citNo1`,`salary1`,`name2`,`citNo2`,`salary2` 您可以轻松地看到代码看起来有多大和混乱。 另外,由于变量之间不存在任何关系(信息),因此这将是一项艰巨的任务。 更好的方法是使用单个名称`Person`收集所有相关信息,并将其用于每个人。 现在,代码看起来也更加简洁,易读且高效。 以单个名称`Person`收集的所有相关信息是一个结构。 * * * ## 如何在 C++ 编程中声明结构? `struct`关键字定义结构类型,后跟标识符(结构名称)。 然后,在花括号内,可以声明该结构的一个或多个成员(在花括号内声明变量)。 例如: ```cpp struct Person { char name[50]; int age; float salary; }; ``` 在此,定义具有三个成员的结构`Person`:`name`,`age`和`salary`。 创建结构时,不会分配内存。 结构定义只是创建变量的蓝图。 您可以将其想象为数据类型。 当您如下定义整数时: ```cpp int foo; ``` `int`指定变量`foo`仅可容纳整数元素。 同样,结构定义仅指定结构变量在定义时所具有的属性。 **注意**:请记住以分号(`;`)结尾的声明 * * * ## 如何定义结构变量? 声明结构`Person`如上所述。 您可以将结构变量定义为: ```cpp Person bill; ``` 在此,定义类型为结构`Person`的结构变量`bill`。 定义结构变量后,仅编译器会分配所需的内存。 考虑到您使用的是 32 位还是 64 位系统,`float`的内存为 4 字节,`int`的内存为 4 字节,`char`的内存为 1 字节。 因此,为结构变量`bill`分配了 58 个字节的内存。 * * * ## 如何访问结构的成员? 使用**点(`.`)**运算符可以访问结构变量的成员。 假设您要访问结构变量`bill`的`age`,并将其分配为 50。 您可以使用以下代码执行此任务: ```cpp bill.age = 50; ``` * * * ## 示例:C++ 结构 C++ 程序,用于将数据分配给结构变量的成员并显示它。 ```cpp #include <iostream> using namespace std; struct Person { char name[50]; int age; float salary; }; int main() { Person p1; cout << "Enter Full name: "; cin.get(p1.name, 50); cout << "Enter age: "; cin >> p1.age; cout << "Enter salary: "; cin >> p1.salary; cout << "\nDisplaying Information." << endl; cout << "Name: " << p1.name << endl; cout <<"Age: " << p1.age << endl; cout << "Salary: " << p1.salary; return 0; } ``` **输出** ```cpp Enter Full name: Magdalena Dankova Enter age: 27 Enter salary: 1024.4 Displaying Information. Name: Magdalena Dankova Age: 27 Salary: 1024.4 ``` 在此,声明具有三个成员`name`,`age`和`salary`的结构`Person`。 在`main()`[函数](/cpp-programming/function "C++ functions")的内部,定义了结构变量`p1`。 然后,要求用户输入信息,并显示用户输入的数据。 * * * 您还应该查看与这些结构相关的教程: * [如何将结构传递给函数?](/cpp-programming/structure-function "C++ pass structures to function") * [如何在结构中使用指针?](/cpp-programming/structure-pointer "C++ pointers to structures")