编辑这个页面须要登录或更高权限!

C++ 结构体(struct)

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

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

例如:您要存储有关某个人的一些信息:其姓名,身份证号码和薪水。您可以轻松创建不同的变量name, citNo, salary来分别存储这些信息。

但是,将来,您可能希望存储有关多个人的信息。现在,您需要为每个人的每个信息创建不同的变量:name1, citNo1, salary1, name2, citNo2, salary2

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

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

用一个单独的名字Person收集的所有相关信息就是一个结构体。

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

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

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

struct Person
{
    char name[50];
    int age;
    float salary;
};

这里定义结构体Person,其具有三个成员:name,age和salary。

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

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

int foo;

int指定变量foo只能接纳整数元素。 同样,结构定义仅指定结构变量在定义时所拥有的属性。

注意: 切记要以分号(;)结束结构体的声明

如何定义结构体变量?

一旦你像上面那样声明了一个结构体 Person。你可以定义一个结构变量如下:

Person bill;

这里定义了一个结构变量bill,它的类型是结构体Person。

定义了结构体变量后,编译器才分配所需的内存。

考虑到您具有32位或64位系统,float的内存为4字节,int的内存为4字节,而char的内存为1字节。

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

如何访问结构体的成员?

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

假设您要访问结构变量bill的成员属性age并给其分配值50。您可以使用以下代码执行此任务:

bill.age = 50;

示例:C ++结构

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

#include <iostream>
using namespace std;

struct Person
{
    char name[50];
    int age;
    float salary;
};

int main()
{
    Person p1;
    
    cout << "输入姓名: ";
    cin.get(p1.name, 50);
    cout << "输入年龄: ";
    cin >> p1.age;
    cout << "输入工资: ";
    cin >> p1.salary;

    cout << "\n显示信息:" << endl;
    cout << "姓名: " << p1.name << endl;
    cout <<"年龄: " << p1.age << endl;
    cout << "工资: " << p1.salary;

    return 0;
}

输出结果

输入姓名: 张小三
输入年龄: 22
输入工资: 12200

显示信息:
姓名: 张小三
年龄: 22
工资: 12200

在这里,声明一个具有三个成员name,age和salary的结构体。

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

您还可以查看这些与结构有关的教程: