C++结构体(struct)

一、定义与声明

1.先定义结构体类型再单独进行变量定义

struct Student
{
    int Code;
    char Name[20];
    char sex;
    int age;
};

struct Student Stu;
struct Student StuArray[20];
struct Student *pStru;
复制代码

结构体类型是struct Student,因此,struct 和 student都不能省略。

2. 紧跟在结构体类型说明之后进行定义

struct Student
{
    int code;
    char name[20];
    char sex;
    int age;
}Stu, StuArray[20], *pStu;
复制代码

这种情况下,后面还可以继续定义结构体变量。

3. 在说明一个无名结构体变量的同时直接进行定义

struct
{
    int code;
    char name[20];
    char sex;
    int age; 
}Stu, Stu[10], *pStu;
复制代码

这种情况下,之后不能再定义其他变量。

4. 使用typedef说明一个结构体变量之后再用新类名来定义变量

typedef struct
{
    int code;
    char name[20];
    char sex;
    int age;
}student;

student Stu, Stu[10], *pStu;
复制代码

student是一个具体的结构体类型,唯一标识,不用再加struct

5. 使用new动态创建结构体变量

使用new动态创建结构体变量时,必须是结构体指针类型。

访问时,普通结构体变量使用成员变量访问符"."指针类型的结构体变量使用的成员变量访问符为“->"

注意:动态创建结构体变量使用后不能忘记delete

#include <iostream>

using namespace std;

struct Student
{
    int code;
    char name[20];
    char sex;
    int age;
}Stu, StuArray[10], *pStu;

int main()
{
    Student *s = new Student(); // Student *s = new Student;
    
    s->code = 1;
    cout << s->code;
    
    delete s;
    return 0;
}
复制代码

注意:放在函数里面定义的,只有这个函数里面才能访问。

二、结构体构造函数

三种结构体初始化方法

1. 利用结构体自带的默认构造函数

2. 利用带参数的构造函数

3. 利用默认无参的构造函数

三、结构体嵌套

一个结构体可以嵌套在另一个结构体中。

struct Costs
{
    double wholesale;
    double retail;
};

struct Item
{
    string partNum;
    string description;
    Costs pricing;
}widget;
复制代码

嵌套结构体访问的方式

widget.partnum = "1234A";
widget.description = "Iron";
widget.pricing.wholesale = 100.0;
widget.pricing.retail = 150.0;
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享