C++中的结构体


如果你想了解有关C++中结构体数组的相关内容,可以看我的另一篇文章:
C++中的结构体数组


一、结构体简介

1、结构体是什么?

假设要存储有关篮球运动员的信息,则可能需要存储他(她)的姓名、工资、身高、体重、平均得分、命中率、助攻次数等。希望有一种数据结构可以将所有这些信息存储在一个单元中。数组虽然可以存储多个元素,但是这些元素的类型必须相同,不能满足需求。C++中的结构体(struct)可以满足这项需求。
在C++中,结构体是一种用户自定义的数据类型,可以用于存储多个不同类型的数据成员。

2、如何创建结构体

结构体的创建可以分为三步:声明(Declaration)、定义(Definition)和实例化(Instantiation)。

2.1 结构体的声明(Declaration)

结构体的声明指的是告诉编译器有这样一个结构体的存在,但不包含具体的成员变量和定义。声明结构体只是为了让编译器知道这个结构体的名称和将来会被使用。
结构体的声明示例:

struct Person;

2.2 结构体的定义(Definition)

结构体的定义包括声明的内容,并且为结构体分配内存,定义其具体的成员变量。
结构体的定义示例:

struct Person {
    std::string name;
    int age;
    float height;
};

其中struct是结构体声明的关键字,Person是结构体的名称,std::string name; int age; float height;是结构体的成员变量,因此这个结构体有三个成员变量。

2.3 结构体的实例化(Instantiation)

结构体的实例化是通过声明结构体变量来创建具体的实例,以便在程序中使用该结构体类型的数据。
结构体的实例化示例:

Person person1;  // 创建一个Person类型的变量person1

在创建结构体变量的时候,习惯性省略struct关键字,以下两种写法都对:

struct Person person1; 
Person person1; 

结构体是用户自定义的一种数据类型,peron1是由结构体类型Person创建的,因此称为结构体变量。类比int a; int是数据类型,a是变量。

3、访问成员变量

可以使用成员运算符.来访问结构体中的成员,即:

person1.name = "Alice";

4、结构体的初始化

使用成员运算符.来访问类中的成员,使用等号对其赋值,即为成员变量的初始化,即:

person1.name = "Alice";

对所有成员变量进行初始化,即为结构体变量的初始化,即:

person1.name = "Alice";
person1.age = 30;
person1.height = 1.65;

5、输出结构体成员变量

输出结构体成员变量的值时,使用成员运算符.来访问类中的成员,和其他普通变量一样输出:

// 输出结构体成员变量的值
std::cout << "Name: " << person1.name << ", Age: " << person1.age << ", Height: " << person1.height << std::endl;

示例

创建结构体的完整示例:

#include <iostream>
#include <string>
//结构体的声明
struct Person;
int main() {
    // 在定义之后直接实例化结构体变量并赋值
    Person person1;
    person1.name = "Bob";
    person1.age = 28;
    person1.height = 1.8;

    // 输出结构体成员变量的值
    std::cout << "Name: " << person1.name << ", Age: " << person1.age << ", Height: " << person1.height << std::endl;

    return 0;
}
// 结构体的定义
struct Person {
    std::string name;
    int age;
    float height;
};

结构体的声明类似于函数的声明,如果结构体的使用和定义是在同一个文件中,并且使用是在定义之后,也可以不进行声明。(这里的使用就是结构体的实例化)。
无需声明的创建结构体的完整示例:

#include <iostream>
#include <string>

// 结构体的定义
struct Person {
    std::string name;
    int age;
    float height;
};

int main() {
    // 在定义之后直接实例化结构体变量并赋值
    Person person1;
    person1.name = "Bob";
    person1.age = 28;
    person1.height = 1.8;

    // 输出结构体变量的值
    std::cout << "Name: " << person1.name << ", Age: " << person1.age << ", Height: " << person1.height << std::endl;

    return 0;
}


如果你想了解有关C++中结构体数组的相关内容,可以看我的另一篇文章:
C++中的结构体数组

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值