22结构体类型

简介: 22结构体类型

C++入门——60s从0到1

结构体类型

 

当我们需要描述一个实体的多个属性时,结构体是一种非常有用的数据类型。在C++中,我们可以使用结构体来定义自己的数据类型,从而更好地组织和管理数据。

 

本篇文章将详细介绍C++中的结构体类型,包括结构体的定义、成员变量的访问、结构体对象的创建和初始化、结构体指针的使用、结构体嵌套和结构体继承等内容。

 

结构体的定义

 

结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。在C++中,结构体的定义通常包含关键字struct,后跟结构体名和成员列表。下面是一个简单的示例:

 

struct Person {

   string name;

   int age;

   float height;

};

 

在上面的示例中,我们定义了一个名为Person的结构体类型,它包含三个成员变量:name、age和height。这些成员变量的数据类型分别为string、int和float。

 

成员变量的访问

 

我们可以通过点号运算符来访问结构体的成员变量。下面是一个示例:

 

Person p1 = {"Tom", 20, 1.75};

cout << "Name: " << p1.name << endl;

cout << "Age: " << p1.age << endl;

cout << "Height: " << p1.height << endl;

 

在上面的示例中,我们创建了一个名为p1的结构体对象,并初始化了它的成员变量。然后我们通过点号运算符访问了结构体的成员变量,并输出了它们的值。

 

结构体对象的创建和初始化

 

我们可以使用以下语法来创建一个结构体对象:

 

struct Person p1 = {"Tom", 20, 1.75};

 

在上面的示例中,我们使用关键字struct来声明一个名为p1的结构体对象,并使用花括号{}初始化了它的成员变量。注意,花括号{}中的值必须与结构体的成员变量的顺序相对应。

 

除了使用花括号{}进行初始化外,我们还可以单独对每个成员变量进行初始化。下面是一个示例:

 

struct Person {
    string name;
    int age;
    float height;
};
 
int main() {
    Person p1 = {"Tom", 20}; // 对name和age进行初始化,height的值为默认值0.0f
    p1.height = 1.75f; // 对height进行单独初始化
    cout << "Name: " << p1.name << endl;
    cout << "Age: " << p1.age << endl;
    cout << "Height: " << p1.height << endl;
    return 0;
}

 

在上面的示例中,我们对结构体进行了单独的初始化。首先我们创建了一个名为p1的结构体对象,并对name和age进行了初始化。由于height没有显式地进行初始化,因此它的值为默认值0.0f。然后我们又对height进行了单独的初始化。最后我们输出了结构体的成员变量的值。

 

结构体指针的使用

 

我们可以使用指针来访问结构体的成员变量和成员函数。下面是一个示例:

struct Person {
    string name;
    int age;
    float height;
};
 
int main() {
    // 通过指针访问结构体的成员变量和成员函数
    Person *ptr = &p1; // 将指针指向结构体对象p1
    ptr->display(); // 通过指针调用display()函数
    cout << "Age: " << ptr->age << endl; // 通过指针访问age成员变量
    return 0;
}

 

在上面的示例中,我们首先定义了一个名为Person的结构体类型,并在其中添加了一个名为display的成员函数。然后我们创建了一个名为p1的结构体对象,并通过指针ptr指向它。最后我们通过指针调用了结构体的成员函数和访问了成员变量的值。需要注意的是,在使用指针访问结构体的成员时需要使用箭头运算符->。

目录
相关文章
|
7月前
|
存储 C#
C#数据类型之结构体介绍
C#数据类型之结构体介绍
|
存储 Linux C++
结构体类型的定义和初始化
结构体类型的定义和初始化
|
存储 C++
32.【C/C++ 结构体全类型 (详解)】(二)
32.【C/C++ 结构体全类型 (详解)】
72 0
|
存储 编译器 C++
32.【C/C++ 结构体全类型 (详解)】(一)
32.【C/C++ 结构体全类型 (详解)】
78 0
|
7月前
|
存储 编译器 Linux
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
|
6月前
|
编译器 Linux C语言
浅谈结构体
浅谈结构体
44 1
|
7月前
|
安全
C learning_15 结构体类型的声明、结构体初始化、结构体成员访问、结构体传参
C learning_15 结构体类型的声明、结构体初始化、结构体成员访问、结构体传参
|
7月前
|
C++
C++程序中的结构体类型
C++程序中的结构体类型
78 1
|
7月前
结构体类型操作
自定义一个结构体类型的变量,其成员包括学号、姓名、年龄、性别,并将其类型声明为student,然后用该类型定义一个stu1的变量,进行赋值操作,并输出其值。
63 1
|
7月前
|
存储 C++
[C++] 结构体Struct类型和变量定义
[C++] 结构体Struct类型和变量定义
133 0